win32service は Windows 限定の拡張モジュールです。サービスコントロールマネージャと 連携してサービスの開始・停止・登録・解除を行ったり、PHP スクリプトを サービスとして実行させる機能を提供します。
Windows NT、Windows 2000、Windows XP あるいは Windows Server 2003 が必要です。Windows NT 系の Windows に対応しています。
http://snaps.php.net/win32/ から php_win32service.dll がダウンロード可能です。 PHP のバージョンに一致する PECL_X_X フォルダを選択します。
php_win32service.dll を extension_dir にコピーします。
php.ini で拡張モジュールを読み込みます。
extension=php_win32service.dll
Example#1 PHP スクリプトをサービスとして登録する
<?php
win32_create_service(array(
'service' => 'dummyphp', # サービスの名前
'display' => 'sample dummy PHP service', # 説明
'params' => 'c:\path\to\script.php run', # スクリプトへのパスとパラメータ
));
?>
Example#2 サービスの登録を解除する
<?php
win32_delete_service('dummyphp');
?>
Example#3 サービスとして実行する
<?php
if ($argv[1] == 'run') {
win32_start_service_ctrl_dispatcher('dummyphp');
while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
# ここに実際の作業内容を書きます。
# 1 回のループに 30 秒以上かからないように心がけてください。
}
}
?>
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。