查看詳情

將PHP程序封裝成windows服務以便開機自動運行

PHP語言作為腳本語言,本身只是一個文本文件,是無法自動運行的,需要通過PHP安裝環境中的引擎進行解析、執行。

但是,有時候可能需要讓PHP程序自動執行,雖然說能通過添加php.exe文件作為啟動項,再配合參數進行執行,但是,這種方式需要管理員登錄桌面才行,有沒有一種方法能開機自動運行呢,比如定時執行特定任務。

php.exe文件本身也是無法通過服務的方式啟動的,php-cgi.exe也不行,那么,如果能讓它們以服務的方式啟動,那問題就能解決了。這里需要用到srvany.exe,通過將srvany.exe以服務的方式啟動,再通過srvany.exe調用php-cgi.exe,問題就能得到解決。


接下來介紹一下具體的操作方法。

下載srvany.exe,解壓到c:\windows\srvany\srvany.exe


安裝 instsrv ServiceName C:\Windows\srvany\srvany.exe 

卸載 instsrv ServiceName remove 


安裝完畢后,我們需要對srvany.exe進行配置,以便于能夠加載我們指定的程序,配置的方法是,開始 - 運行 - regedit,打開注冊表,定位到下面的路徑。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName 

如果該服務名下沒有Parameters項目,則對服務名稱項目右擊新建項,名稱為Parameters,然后定位到Parameters項,新建以下幾個字符串值。 


名稱 Application 值為你要作為服務運行的程序地址。 

名稱 AppDirectory 值為你要作為服務運行的程序所在文件夾路徑。 

名稱 AppParameters 值為你要作為服務運行的程序啟動所需要的參數。 


如何需要同時運行多個PHP文件,可以考慮使用vbs腳本啟動多個php-cgi.exe進程以解析多個文件,這樣就不用創建多個服務了。

如以下示例:

Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ChatServer\parameters]

"AppDirectory"="D:\\www\\chat\\"

"Application"="D:\\www\\chat\\wscript.exe"

"AppParameters"="D:\\www\\chat\\start_for_win.vbs"


至于start_for_win.vbs,它的作用是調用php-cgi.exe解析多個PHP文件,如下:

set objShell = CreateObject("Wscript.Shell")

objShell.Run "D:\PHP7\php.exe D:\www\chat\Applications\YourApp\start_register.php",0

objShell.Run "D:\PHP7\php.exe D:\www\chat\Applications\YourApp\start_gateway.php",0

objShell.Run "D:\PHP7\php.exe D:\www\chat\Applications\YourApp\start_businessworker.php",0


原創內容,轉載請注明出處:網站建設,APP開發,小程序開發請找江西居道科技有限公司,http://www.419003.tw

智能建站系統代理招商
所屬分類:文章中心??????Time:2020-09-09 14:41:46??????人氣:254
關閉
13517086454
球探足球比分app下载苹果 篮球胜分差推荐 BG真人和AG真人是真的么 陕西快乐10分钟开奖结果百宝 三分赛车6码选号技巧图片 招财鞭炮游戏 彩票刮刮乐收藏 韩国快乐8是谁开奖 山西11选5最大遗漏 澳洲幸运10开奖走势大小单双 三肖中特期期准黄大仙 篮球让分胜负分析方法 北京赛车pk10高手技术分享 免费水果老虎机游戏 王中王铁算四肖中特675555 黑龙江36选7彩票 竞彩篮球大小分301走势图