转:http://www.phpip.com/program/2008/0423/php_1944.html
config.php
<?PHP
 /*
* 功能:利用PHP安装windows自动运行的服务
* 作者:LiangJQ
* 时间:2008年3月7日
*/
 
//定义服务名称
 define("_SERVICENAME", "PHP Service");
 
 
 //定义服务显示名称
 define("_SERVICEINFONAME", "Exsample PHP Service");
 
 
 //定义php.exe存放路径
 define("_PATH", "C:\wamp\php\php.exe");
 
 
 //定义所要执行的程序名称
 define("_PARAMS", "D:\\localhost\\Service\\win32_service.php");
 
 
 //定义程序分隔执行时间,单位:秒
 define("_SLEEP", 5);
 
?>
 
index.php
<?php
 /*
*        功能:利用PHP安装windows自动运行的服务
*        作者:LiangJQ
*        时间:2008年3月7日
*/
 
require_once "Config.php";
 
//查看服务状态
 $svcStatus=win32_query_service_status( _SERVICENAME );
 if($svcStatus == 1060){
         echo "服务 [ "._SERVICENAME." ] 未被安装";
 }else{
         echo "服务 [ "._SERVICENAME." ] 已经安装";
 
         echo " 服务状态:";
         switch($svcStatus['CurrentState']){
                 case 1: echo "未启动"; break;
                 case 4: echo "已启动"; break;
                 default: break;
         }
 
 }
 
echo '<ul>
   <li><a href="install_service.php">安装服务</a></li>
   <li><a href="uninstall_service.php">移除服务</a></li>
   <li><a href="start_service.php">开始服务</a></li>
   <li><a href="stop_service.php">停止服务</a></li>
   <li><a href="restart_service.php">重启服务</a></li>
</ul>
<p>';
 ?>
install_service.php
<?php
 /*
*        功能:利用PHP安装windows自动运行的服务
*        作者:LiangJQ
*        时间:2008年3月7日
*/
 
require_once "Config.php";
 
//注册服务
 $x = win32_create_service(array(
     'service' => _SERVICENAME,
         'display' => _SERVICEINFONAME,
     'path' => _PATH,
     'params' => _PARAMS,
         ));
 
 
 //启动服务
 win32_start_service( _SERVICENAME );
 
 
 if($x !== true){
         die('服务创建失败!');
 }else{
         die('服务创建成功!');
 }
 
?>
 
restart_service.php
<?php
 /*
*        功能:利用PHP安装windows自动运行的服务
*        简介:重启服务
*        作者:LiangJQ
*        时间:2008年3月7日
*/
 
require_once "Config.php";
 
//重启服务
 $svcStatus=win32_query_service_status( _SERVICENAME );
 if($svcStatus == 1060){
 
        echo "服务 [ "._SERVICENAME." ] 未被安装,请先安装";
 
 }else{
 
        if($svcStatus['CurrentState'] == 1){
 
                 $s=win32_start_service( _SERVICENAME );
 
                 if($s != 0){
                         echo "服务无法被启动,请重试!";
                 }else{
                         echo "服务已启动!";
                 }
 
         }else{
 
                 $s=win32_stop_service( _SERVICENAME );
 
                if($s != 0){
                         echo "服务正在执行,请重试!";
                 }else{
 
                         $s=win32_start_service( _SERVICENAME );
 
                         if($s != 0){
                                 echo "服务无法被启动,请重试!";
                         }else{
                                 echo "服务已启动!";
                         }
 
                 }
 
         }
 
}
 
?>
 
start_service.php
<?php
 /*
*        功能:利用PHP安装windows自动运行的服务
*        简介:启动服务
*        作者:LiangJQ
*        时间:2008年3月7日
*/
 
require_once "Config.php";
 
//启动服务
 $s=win32_start_service( _SERVICENAME );
 
if($s != 0){
         //1056
         echo "服务正在运行中!";
 }else{
         echo "服务已启动!";
 }
 ?>
 
stop_service.php
<?php
 /*
*        功能:利用PHP安装windows自动运行的服务
*        简介:停止服务
*        作者:LiangJQ
*        时间:2008年3月7日
*/
 
require_once "Config.php";
 
//停止服务
 $s=win32_stop_service( _SERVICENAME );
 
if($s != 0){
         //1062
         echo "服务未启动!";
 }else{
         echo "服务已停止!";
 }
 ?>
 
uninstall_service.php
<?php
 /*
*        功能:利用PHP安装windows自动运行的服务
*        简介:移除服务
*        作者:LiangJQ
*        时间:2008年3月7日
*/
 
require_once "Config.php";
 
//移除服务
 $removeService = win32_delete_service( _SERVICENAME );
 
switch($removeService)
 {
         case 1060: die('服务不存在!');break;
         case 1072: die('服务不能被正常移除!');break;
         case 0:die('服务已被成功移除!');break;
         default:die();break;
 }
 
?>
 
win32_service.php
<?php
 /*
*        功能:利用PHP安装windows自动运行的服务
*        简介:自动执行程序
*        作者:LiangJQ
*        时间:2008年3月7日
*/
 
require_once "Config.php";
 
//检测服务是否存在
 if (!win32_start_service_ctrl_dispatcher( _SERVICENAME )) {
 die("没有发现正在运行的 [ "._SERVICENAME." ] 服务");
 }
 
 
 //如果运行中
 while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
 
        //写入文件
         for($i=1;$i<=1;$i++){
                 $b_file_path="D:\\localhost\\test.txt";
                 $f=fopen($b_file_path,'a+');
                 $msg='Dernier backup  correctement:'.date('y/m/d h:i:s');
                 fwrite($f,$msg."\r\n");
                 fclose($f);
                 sleep(1);
         }
 
}
 
 
 ?>
这个代码我在WIN7下运行在安装时就提示创建失败,环境没什么问题,php_win32service.dll这个文件我已经放在相关目录下,也在php.ini文件中添加了这个。。
如果创建成功 会在服务里面出现这个 服务名字,
现在对这块不熟,希望大家指点一下 。。