转: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文件中添加了这个。。
如果创建成功 会在服务里面出现这个 服务名字,
现在对这块不熟,希望大家指点一下 。。
win32_create_service是在什么扩展里的吧?
这个扩展要添加 要下载相关 dll 文件吗 ?
还是直接添加。。?
如果下载相关文件 。。在哪下载。?
我没有添加这个扩展。。
其系统我没有弑。。
我很纠结。。