みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPバックグランド処理について

初めて、質問させて頂きます。
コミュニティーサイトを運営しているのですが、登録メンバーが増えてきてメール送信の処理に時間がかかるようになってきました。


現在は、MYSQLのDBから 条件に会った人のアドレスを検出させて
whileのループでmail関数で送信しています。

$result=mysql_query("**************");
while($value = mysql_fetch_array($result)){
$MAIL=$value["MAIL"];
mail($MAIL,$sbj,$msg,$header,"-fmail@mail.com");
}

バックグラウンドで処理させる方法をインターネットで調べていたら
下記のURLにたどりつきました。
http://www.itboost.co.jp/phptips/view.php?fCID=21

呼び出しプログラムを mail.php
送信プログラムを send.php

とし、mail.phpから ある条件下で send.phpを実行させるために
system("send.php $1 $2 $3 $4 $5 > index.php &");
という感じにしてみましたが、うまくいきません。

パスの問題なのでしょうか?それとも根本的に間違っているのでしょうか?
解決策や、他の方法があれば教えてください。

お願いします。

環境:レンタルサーバ
OS Redhat Linux
Server Apache
DB MYSQL
PHP4.12

qmailは入っていません。

投稿日時 - 2002-09-27 11:41:18

QNo.367629

困ってます

質問者が選んだベストアンサー

>Perlの呼び出しは includeやrequireなどでも大丈夫なのでしょうか?

PHPのincludeやrequireではPerlは動作しません。
実行可能なPerlスクリプトを用意して、system関数で呼び出してください。
systemでは、shellしか動かないのではなく、shellから実行できるプログラムは全て動きます。
Perlスクリプト、Cプログラムなど。
PHPだけは、通常、Webサーバに依存しているため、shellから実行できないのです。

投稿日時 - 2002-10-05 16:17:12

お礼

ありがとうございました!!
大変参考になりました。

Perlで作ろうと思います。
ちなみに、変数は 普通に受け渡せるのでしょうか??

どちらにせよ挑戦してみようと思います。
本当にありがとうございました。

投稿日時 - 2002-10-12 15:52:43

ANo.3

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

レンタルサーバー業者に、コマンドライン版PHPが使えるかどうか、たずねてみてください。
使えないのであれば、No1の方の言われるとおりです。

投稿日時 - 2002-09-27 16:13:14

補足

あれれ。お礼の先が違ってる。。。汗

レンタルサーバー業者に問い合わせたところ、やはりPHP版はつかませんでした。こういう点でサーバー選びもできるのですね。

ありがとうございました。

投稿日時 - 2002-09-29 06:14:38

お礼

早速のお返事ありがとうございました。

やはりshellでしかできないのですね。
Perlでfork記述することにします。

Perlの呼び出しは includeやrequireなどでも大丈夫なのでしょうか?
ともかく挑戦してみます。ありがとうございました!!

投稿日時 - 2002-09-29 06:11:01

ANo.1

ご指摘のページには、どんな言語で書いてもかまいませんと書いてありますが、systen関数で呼び出すことができるのは、shell上で実行できるプログラムです。
通常のPHPのコンパイルでは、PHPファイルをこのように呼び出すことはできません。
(レンタルサーバということですので、無理かと思います。)
send.phpをPerlやCなどで記述してください。

投稿日時 - 2002-09-27 13:18:25

お礼

早速のお返事ありがとうございました。

やはりshellでしかできないのですね。
Perlでfork記述することにします。

Perlの呼び出しは includeやrequireなどでも大丈夫なのでしょうか?
ともかく挑戦してみます。ありがとうございました!!

投稿日時 - 2002-09-29 06:13:36

あなたにオススメの質問