コマンドラインを使用せずにこのようなチュートリアルに従うにはどうすればよいですか?コマンドラインなしでウェブソケットを設定する
http://www.flynsarmy.com/2012/02/php-websocket-chat-application-2-0/
私はWebSocketをを使用できるようにする必要がありますが、共有サーバーとコマンドラインへのアクセスなしを持っています。
ブラウザを閉じたときやスクリプトを実行しなくても、ブラウザからスクリプトを実行することはできません。
コマンドラインを使用せずにこのようなチュートリアルに従うにはどうすればよいですか?コマンドラインなしでウェブソケットを設定する
http://www.flynsarmy.com/2012/02/php-websocket-chat-application-2-0/
私はWebSocketをを使用できるようにする必要がありますが、共有サーバーとコマンドラインへのアクセスなしを持っています。
ブラウザを閉じたときやスクリプトを実行しなくても、ブラウザからスクリプトを実行することはできません。
PHPファイルを開き、ブラウザに一度アクセスしてください:
<?php shell_exec('nohup php /path/to/server.php 2>&1 > /dev/null &');?>
これはすべきことです。うまくいけば、あなたの共有ホスティングプロバイダは、execve()の呼び出しを可能にします。がんばろう!
ブラウザでServer.phpを実行してみます。ほとんどの場合、php-cliスクリプトもブラウザ上でうまく動作します(argv/argcなどのコマンドラインのみの機能を使用するまで)。他のブラウザの他のタブには、チュートリアルのスクリーンショットのような通常のURLを実行できます。
重要なことは、ソケットやその他の必要な拡張機能が有効かどうかを共有サーバーで確認してください。
@reboot nohup php /path/to/server.php 2>&1 >/dev/null &
また、あなたはそう単純に以下を作成し、今それを起動する必要があります:crontabファイルに次のジョブを追加、(それらのほとんどがそう)あなたの共有ホスティングプロバイダがcrontabファイルとcronジョブをサポートしていますと仮定
私は今までCRONの@reboot
指令について知らなかったので、@Octav Oの解決策がおそらくはるかに優れています。しかし、テスト中に、私は非常に便利な次のコード(Saran's websocket tutorialにある)が見つかりました。その後、server.php
と同じディレクトリにあるwebsocket_launch.sh
...
PID=`ps -aef | grep "server.php" | grep -v grep | awk '{print $2}'`
if [ -z $PID ]
then
#echo "Launching now"
nohup php server.php > error_log &
else
#echo "Running as PID $PID"
fi
として
保存するには、この... CRONで毎分シェルスクリプトを実行します。スクリプトはserver.phpが実行されているかどうかを確認し、実行していない場合は起動します。
これは本質的にスクリプトを常に開いている/接続を受け入れますか?私はcronジョブを実行して、そのスクリプトを実行することができますが、実際にはページのどこにでも 'crontab'とは言いません。私はそれがちょうどそれらが 'crontab'だと私はshell_execコマンドを実行することができますか?うまくいけば彼らがそのコマンドを許可していることを意味しますか? – maxhud
_nohup_を使用して_server.php_ファイルを起動すると、スクリプトは常に開いたままになり、接続を受け入れます。基本的に、以前に投稿された 'shell_exec()' PHPコードはあなたのソケットサーバーを起動します。共有ホストサーバーが再起動した場合、_server.php_ファイルを起動するために単にcronジョブを実行しました。 –
あなたの時間と解決に感謝します – maxhud