どのような Windowsサービス ?
Windowsサービスは、(すなわち、以前のNTサービス)あなたは長時間実行することができ、自分のWindowsセッションで実行可能なアプリケーションを作成することができます。これらのサービスは、コンピュータの起動時に、あなたが一時停止し、再起動することができます自動的に起動することができ、任意のユーザーインターフェイスを表示しません。これは、サーバー上で使用するためのサービスに最適です、または任意の時点で、同じコンピュータ上で作業を他のユーザーに影響を与えないようにするために、場合にあなたが長い時間のために機能を実行する必要があります。また、ログオンしているユーザーやコンピュータアカウントの既定のセキュリティコンテキストサービスを実行するために、特定のユーザーアカウントと異なる場合があります。""(Baiduの百科事典)
- 単にあなたが長い時間のために、自動的に実行できることを意味し 、Windows上でPHPを。Q:私がするためにこれが重要なのですか?
用途は何ですか?
ハッハッハ!これにより、我々はより多くのことを行うことができます。以下のような:PHPは、定期的にタスクを実行すると、データは自動的にように更新....とされます。
どのように達成するために?
前提:
- が存在しなければならないのWindowsサーバまたはWindows PCマシン
- PHPランタイム環境を持っている必要がありますインストールする必要があります
- これは、PHPのインストールの下の\のext \ディレクトリになければなりませんphp_win32service.dllのファイル
- そこphp.iniファイルの内部でオンにする必要があります 拡張子= php_win32service.dll このオプションは、
次のように、起動して実行(ああヘクタール以上の説明を参照)、最も重要なコードにしていない場合
<?
/**
* 利用PHP安装windows自动运行的服务
*
* Project: Tiwer Developer Framwork
* This is NOT a freeware, use is subject to license terms!
*
* Site: http://wgw8299.cnblogs.com
*
* $Id: WinService.class.php 258 2011-03-07 02:18:42Z wgw8299 $
*
* Copyright (C) 2007-2010 Tiwer Developer Team. All Rights Reserved.
*/
class WinService
{
/**
* 服务名称
*/
var name;
/**
* 定义服务名称
*/
var info_name;
/**
* 定义php.exe存放路径
*/
var path;
/**
* 定义所要执行的程序
*/
var params;
/**
* 定义程序分隔执行时间,单位:秒
*/
var sleep = 5;
/**
* 构造函数
*
* @access private
*
* @return void
*/
private function __construct() {
}
/**
* 安装服务
*
* @access public
*
* @return void
*/
public function install() {
/* 注册服务 */
$x = win32_create_service ( array (
'service' => $this->name,
'display' => $this->info_name,
'path' => $this->path,
'params' => $this->params,
)) ;
/* 启动服务 */
win32_start_service ( $this->name ) ;
if ( $x !== true ){
die ( '服务创建失败!' ) ;
} else {
die ( '服务创建成功!' ) ;
}
}
/**
* 卸载服务
*
* @access public
*
* @return void
*/
public function uninstall() {
/* 移除服务 */
$removeService = win32_delete_service( $this->name ) ;
switch ($removeService) {
case 1060: die ('服务不存在!' ) ; break ;
case 1072: die ('服务不能被正常移除! ' ) ; break ;
case 0: die ('服务已被成功移除!' ) ; break ;
default : die (); break ;
}
}
/**
* 重启服务
*
* @access public
*
* @return void
*/
public function restart() {
/* 重启服务 */
$svcStatus = win32_query_service_status( $this->name );
if ( $svcStatus == 1060 ) {
echo "服务[" . $this->name . "]未被安装,请先安装";
} else {
if ( $svcStatus['CurrentState'] == 1 ) {
$s = win32_start_service($this->name);
if ( $s != 0 ){
echo "服务无法被启动,请重试! ";
} else {
echo "服务已启动! ";
}
} else {
$s = win32_stop_service($this->name) ;
if ( $s != 0 ) {
echo " 服务正在执行,请重试! " ;
} else {
$s = win32_start_service( $this->name ) ;
if ( $s != 0 ){
echo "服务无法被启动,请重试! ";
} else {
echo "服务已启动! ";
}
}
}
}
}
/**
* 启动服务
*
* @access public
*
* @return void
*/
public function start() {
$s = win32_start_service(_SERVICENAME);
if ( $s != 0 ){
echo " 服务正在运行中! " ;
} else {
echo " 服务已启动! " ;
}
}
/**
* 停止服务
*
* @access public
*
* @return void
*/
public function stop() {
$s = win32_stop_service(_SERVICENAME );
if ( $s != 0 ){
echo " 服务未启动! " ;
} else {
echo " 服务已停止! " ;
}
}
}
?>
ます。https://my.oschina.net/tiwer/blog/199857で再現