7

このマニュアルの指示に従って、WindowsServer2008にPHP5.4を使用してApache2.4を インストールしました。Apacheインストールマニュアル。現在、Apacheはサービスとして実行されています。

私のアプリケーションでは、バックグラウンドで実行するためにphpwebsocketスクリプトが必要です。私はそれを手動で実行しています:

php myscript.php

問題は、システム(apache)の再起動時にバックグラウンドスクリプトを自動的に開始する方法はありますか?

次のトピックを見つけましたが、Windows用のapache起動スクリプトがどこにあるのかわかりませんでした。

どんな助けでも大いに活用されるでしょう。

4

8 に答える 8

2

ここでの最善の方法は、Windows サービスの依存関係を使用することです。

php-websocket-server.cmd必要な環境設定 (ディレクトリへの変更、PATH の設定など) を含むファイルを、最後の行で作成します。

php myscript.php

Windows Server リソース キット ツールをインストールして、ユーザー定義サービスを取得srvanyおよびinstsrv作成します。次の手順で必要になるため、インストール パスをメモします。

cmdシェルを開き、次を実行します。

<path_to_resource_kit>\instsrv PHPWebSocketServer <path_to_resource_kit>\srvany.exe

次に、php-websocket-server.reg以下を含むファイルを作成します (環境の更新)。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PHPWebSocketServer\Parameters]
"Application"="c:\\path\\to\\php-websocket-server.cmd"

ダブルクリックしてインポートするか、regedit /s php-websocket-server.reg

cmdシェルに戻ります。

sc config Apache2.4 depend= PHPWebSocketServer

Apache2.4* サービスが php サービスに依存するようにします。これで、Apache が開始されると、php サービスが最初に起動されます。同様に、php サービスを停止すると、Apache も一緒に停止します。

*ハウツーは、サービスの名前が「Apache2.4」であることを示していますが、インストールで確認することをお勧めします。

于 2015-01-27T18:19:07.097 に答える
1

サービスとして実行する場合、起動スクリプトはありません。

他のプログラムをサービスとして実行できるようにするサービスの実装を実行し、(スクリプトを実行している) 新しいサービスを Apache サービスの依存関係にします。ただし、Apache の再起動時にスクリプトは再起動されません。

SrvStart を使用した 1 つの解決策と、 ServiceEx を使用た別の解決策。

おそらく、Apache をサービスとしてインストールせずに、起動/再起動スクリプトを編集し、上記の方法を使用して Apache をサービスとして実行します (Apache 独自のインストーラーを使用する代わりに)。

于 2013-02-06T08:07:09.033 に答える
1

.bat ファイルを作成します。たとえば、「myphp.bat」を含むpath/php myscript.php. パスが指定されていない場合は、php への正しいパスを含めます。

runmyphp.bat を含むバットファイルを作成します。

AT 00:00 /every:M,T,W,Th,F "cmd /c /path/myphp.bat"、ここでも正しいパスが含まれています。

次に、エクスプローラーを使用して runmyphp をスタートアップ フォルダーにドラッグし、システムの起動時に常に実行されるようにします。

Google の「windows at command」または「windows cron」で「at」コマンドの正しい構文をすべて取得できますが、現在、詳細な説明はこちらで確認できます。

于 2015-01-23T06:44:47.120 に答える
0

必要なすべてのプロセスをバッチ ファイルにまとめてRunAsServiceを使用する 少し調整することで、サービスが Apache よりも前に開始されるようにすることができます。

于 2015-01-26T03:44:58.970 に答える