phpファイルで開始されたnetcat接続から値を取得しようとしていますが、次のように終了します。
localhost [127.0.0.1] 2000 (?) : Connection refused
理由はわかりませんが、Apacheユーザー(www-data)としてsshを実行するとうまく機能します。これは、私が行ったことです。
1)少し遅れて日付を提供する無限ループを開始します。
$ (while true; do nc -l -p 2000 -c "sleep 5; date"; done)&
2)機能しているかどうかを確認します。
$ su www-data
$ nc localhost 2000
Fri Oct 16 21:33:20 COT 2009
3)次のように/var/www/test.phpを作成します。
<pre><?php
exec('nc localhost 2000>>/var/www/dates.txt 2>>/var/www/errors.txt &');
?></pre>
4)ブラウザで実行します。
http://myserver.com/test.php
5)最後に、両方のtxtを確認します。日付は空であり(#2の応答のようなものはありません)、エラーには「接続が拒否されました」というエラーがあります。
サーバーは、DRBDとハートビートを備えたUbuntuServer9.04を実行するLAMPクラスターです。
私を夢中にさせているのは、このtest.phpが私のラップトップ(Ubuntuデスクトップ9.04のLAMP)でうまく機能し、サーバーのポートがすでに開いていてリッスンしているように見えることです。
$ netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:4743 0.0.0.0:* LISTEN 2326/openhpid
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3364/mysqld
tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN 9510/nc
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3470/apache2
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2320/sshd
tcp 0 0 127.0.0.1:3551 0.0.0.0:* LISTEN 2354/apcupsd
tcp6 0 0 :::22 :::* LISTEN 2320/sshd
これはプログラミング関連の質問だと思いますか?コメントなしで閉じない場合は、どうぞ。
よろしくお願いします!!!