但是,有時(shí)候可能需要讓PHP程序自動(dòng)執(zhí)行,雖然說(shuō)能通過(guò)添加php.exe文件作為啟動(dòng)項(xiàng),再配合參數(shù)進(jìn)行執(zhí)行,但是,這種方式需要管理員登錄桌面才行,有沒(méi)有一種方法能開(kāi)機(jī)自動(dòng)運(yùn)行呢,比如定時(shí)執(zhí)行特定任務(wù)。
php.exe文件本身也是無(wú)法通過(guò)服務(wù)的方式啟動(dòng)的,php-cgi.exe也不行,那么,如果能讓它們以服務(wù)的方式啟動(dòng),那問(wèn)題就能解決了。這里需要用到srvany.exe,通過(guò)將srvany.exe以服務(wù)的方式啟動(dòng),再通過(guò)srvany.exe調(diào)用php-cgi.exe,問(wèn)題就能得到解決。
接下來(lái)介紹一下具體的操作方法。
下載srvany.exe,解壓到c:\windows\srvany\srvany.exe
安裝 instsrv ServiceName C:\Windows\srvany\srvany.exe
卸載 instsrv ServiceName remove
安裝完畢后,我們需要對(duì)srvany.exe進(jìn)行配置,以便于能夠加載我們指定的程序,配置的方法是,開(kāi)始 - 運(yùn)行 - regedit,打開(kāi)注冊(cè)表,定位到下面的路徑。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
如果該服務(wù)名下沒(méi)有Parameters項(xiàng)目,則對(duì)服務(wù)名稱項(xiàng)目右擊新建項(xiàng),名稱為Parameters,然后定位到Parameters項(xiàng),新建以下幾個(gè)字符串值。
名稱 Application 值為你要作為服務(wù)運(yùn)行的程序地址。
名稱 AppDirectory 值為你要作為服務(wù)運(yùn)行的程序所在文件夾路徑。
名稱 AppParameters 值為你要作為服務(wù)運(yùn)行的程序啟動(dòng)所需要的參數(shù)。
如何需要同時(shí)運(yùn)行多個(gè)PHP文件,可以考慮使用vbs腳本啟動(dòng)多個(gè)php-cgi.exe進(jìn)程以解析多個(gè)文件,這樣就不用創(chuàng)建多個(gè)服務(wù)了。
如以下示例:
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,它的作用是調(diào)用php-cgi.exe解析多個(gè)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