0

phpでバックグラウンドプロセスを開始しようとしました。そのために、exec関数の下部に&を追加しましたが、数日後に機能しなくなりました。

基本的に

私がファイル1.phpを持っている場合:

<?php var_dump(exec('/home/2.php > /home/2.output 2>&1 &'));

そして、2.phpを次のようにファイルします。

<?php sleep(5); echo "Fill\n";

ファイル1.phpを実行すると、-1などではなく空の文字列が返されますが、コンソールを使用して1.phpを呼び出すと、正常に機能します。

php-cgi -eq -f /home/1.php

私は2.6.18-164.10.1.el5.028stab067.4でubuntu9.04を使用しています

4

2 に答える 2

1

さて、問題を解決しようとする悪夢の後、最後にubuntuを9から10に更新しました。これで問題は解決しました。Linuxの更新でphpが壊れると思います。それが再び発生した場合、おそらくvpsの再起動を開始します。

于 2010-07-20T20:36:05.387 に答える
0

/var/log/kern.log「監査」レベルのエラー メッセージを確認します。何らかの理由で exec が禁止されている可能性があります。

/home への書き込みが禁止されている可能性もあります。代わりに /tmp に書き込んでみますか?

于 2010-07-19T22:56:27.540 に答える