使用自動的に実行するPHPインストールサービスウィンドウ、PHPプログラムを定期的に更新された機能、自動的に実行され、長い時間のために達成することができますが、それはプロジェクトクラスのソースコードに直接使用することができます...


 

どのような Windowsサービス ? 

           Windowsサービスは、(すなわち、以前のNTサービス)あなたは長時間実行することができ、自分のWindowsセッションで実行可能なアプリケーションを作成することができますこれらのサービスは、コンピュータの起動時に、あなたが一時停止し、再起動することができます自動的に起動することができ、任意のユーザーインターフェイスを表示しません。これは、サーバー上で使用するためのサービスに最適です、または任意の時点で、同じコンピュータ上で作業を他のユーザーに影響を与えないようにするために、場合にあなたが長い時間のために機能を実行する必要があります。また、ログオンしているユーザーやコンピュータアカウントの既定のセキュリティコンテキストサービスを実行するために、特定のユーザーアカウントと異なる場合があります。""(Baiduの百科事典 

  • 単にあなたが長い時間のために、自動的に実行できることを意味し  、Windows上でPHPを。Q:私がするためにこれが重要なのですか?

 

 

用途は何ですか?

       ハッハッハ!これにより、我々はより多くのことを行うことができます。以下のような:PHPは、定期的にタスクを実行すると、データは自動的にように更新....とされます。

 

どのように達成するために?

    前提:

  1. が存在しなければならないのWindowsサーバまたはWindows PCマシン
  2. PHPランタイム環境を持っている必要がありますインストールする必要があります
  3. これは、PHPのインストールの下の\のext \ディレクトリになければなりませんphp_win32service.dllのファイル
  4. そこ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で再現

おすすめ

転載: blog.csdn.net/weixin_34399060/article/details/91708533