私はソケットプログラミングに非常に慣れていませんが、phpを使用して多くのコーディングを行っています。私はいくつかのソケットサーバーのサンプルコードをテストし、ローカルホストで正常に動作しました。CLIを使用してサーバーを実行しています。しかし、私の懸念は、ホスティングサーバーでソケットサーバーの.phpファイルを実行するにはどうすればよいですか?ホスティングプロバイダーは通常、サーバーを実行するためにCLIへのアクセスを許可しますか?サーバーが常に実行されていることを確認するにはどうすればよいですか?ホスティングサーバーを再起動すると、サーバーはどうなりますか?サーバーがクラッシュした場合(理由は何であれ)、手動で実行する必要がありますか?誰かが助けることができますか?
2 に答える
あなたがホスティングサーバーについて話しているなら、私はあなたが共有ホスティングについて話していることを期待しています。その場合、なんとかサービスなどを実行しても安定させるのは難しいでしょう。少なくともVPSを使うことをお勧めします。そうすれば、バックグラウンドで実行し、再起動時に自動的に起動するだけでなく、ソフトウェアをインストールしてプロセスを確認し、失敗した場合は再起動することができます。
例:共有ホスティングでは、再起動の起動が機能するかどうかをテストすることはできません。
プロバイダーがsshアクセスを提供しているかどうかはわかりません。一部のプロバイダーはそれを行いますが、これは管理対象サーバーまたはルートサーバーです。
次に、CLIを介してスクリプトを実行できます。
サーバーをCLIで実行でき、十分な権限がある場合は、スクリプトをランレベルに挿入できます。そして、「シバン」と呼ばれるものがあります。これにより、スクリプトにphpインタープリターを直接指定し、以前はphpコマンドを使用せずにスクリプトを実行できます。
php test.php or /usr/bin/php testScript.php
test.phpを使用してスクリプトを直接実行するか、スクリプトにtestScriptのみの名前を付けることができます。
スクリプトを/usr/ local / bin (debianの場合)に置くと、 phpコマンドのようなコマンドで毎回スクリプトを実行できます。
編集:私は何かを忘れました。このソリューションでは、たとえば/etc/init.d/skeletonを/etc/init.d/runPHPSocketServerにコピーし、上部のスクリプト値を変更する必要があります。次に、それをランレベルに挿入できます。
#: testScript or runPHPSocketServer start
スクリプトが実行可能ディレクトリの下にある場合は、システムのランレベルにスクリプトを挿入できます。
#: update-rc.d runPHPSocketServer defaults
したがって、いくつかの解決策があることがわかりますが、ほとんどの解決策にはsshアクセスが必要です。