php服务是自动启动的吗,利用PHP安装windows自动运行的服务,PHP程序可以实现长时间、自动运行、定时更新功能,直接可以用在项目中的类源代码...

这篇博客介绍了如何使用PHP在Windows环境下创建服务,使得PHP程序能够自动运行且在后台执行,例如定期执行任务或自动更新数据。通过调用php_win32service.dll扩展并使用WinService类,可以实现服务的安装、卸载、重启和控制。
摘要由CSDN通过智能技术生成

什么windows服务?

Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。》》(百度百科)

简单的说就是可以长时间、自动运行在Windows 上的PHP程序。 问:这对我来说重要吗?

31e84f423be65ca5c32ec72865e7fc07.png

有什么用?

哈哈哈!有了这个,我们就可以做更多的事了。如:定期执行一个PHP任务、自动更新数据....等等。

如何实现?

前提:

必须有一台Windows服务器 或者Windows PC机

必须安装得有PHP运行环境

必须在PHP 的安装目录的\ext\下有这个php_win32service.dll文件

必须有php.ini文件里面开启extension=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 " 服务已停止! " ;

}

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值