現在、PHP を使用して V-Server (Debian 6.0.6 を実行) 用のスクリーン マネージャを構築しようとしています。
私のスクリプトはすでに実行中の画面を表示していますが、新しい画面の実行に失敗しました:
webstat.php:
exec('sudo -u root screen -ls',$result);
print_r($result);
sudoers に追加 (これが安全でないことはわかっていますが、テスト段階では簡単です):
www-data ALL=(ALL) NOPASSWD: ALL
新しい画面でPHPファイルを実行しようとしたコードは次のとおりです。
exec('sudo -u root screen -S screenId php /var/www/script.php parameter1=1',$result);
print_r($result);
これは「ターミナルに接続する必要があります。」と出力するだけですが、SSHを使用すると、このコマンドは完全に機能します。
次に、SSH コマンドについて読み、次のコマンドを試しました。
sudo -u root ssh -t root@box screen -S screenId php /var/www/script.php parameter1=1
そのコマンドは PuTTY を使用して機能しましたが、PHP でこのコマンドを使用すると、結果が得られず、新しい画面セッションが開始されます。
exec('sudo -u root ssh -t root@box screen -S screenId php /var/www/script.php parameter1=1',$result);
print_r($result);
V-Server で無効になっている機能はありません。PHP で呼び出す bash スクリプトを書きたくありません。PHP でコマンドを直接実行したいのです。
誰かがこの問題を解決する方法を知っているといいですね!