在上文中,咱們使用了nginx + php-cgi
來配置thinkphp
的運行環境,項目已成功運行,能夠很開心的開發php
項目了。php
可是也並非高枕無憂了,此時的項目環境存在着如下幾個問題:nginx
php-cgi
中止運行;這對不管是開發中的,仍是上線運行中的項目,都是一個阻礙,必需要克服;php.ini
修改沒法平滑重啓,每次修改php
配置,都得重啓php-cgi
;若是把nginx
和 php-cgi
註冊爲windows
系統服務,設置開機啓動;這樣nginx
和php-cgi
便能做爲系統服務,持續運行,而且在開機時就能隨系統一塊兒啓動;而後在windows
任務管理器中就能對nginx
服務和php-cgi
服務進行管理。git
把nginx
和 php-cgi
註冊爲windows
系統服務須要WinSW
和xxfpm
的支持;因此,咱們首先要來下載這兩個程序,下載地址以下:github
下載選擇的時候根據本身的操做系統,選擇對應的安裝包便可;對於xxfpm
,直接下載就好,由於只有windows
版;thinkphp
對於WinSW
,針對不一樣的.net
版本,提供了不一樣的安裝包,這裏選擇.NET4
版本的就好;編程
而後,把下載好的文件解壓,以待下一步使用。windows
WinSW
是一個可用於包裝和管理做爲Windows
服務的自定義進程的工具,能夠對windows
中的服務程序進行管理(註冊、卸載、啓動、中止、重啓等操做),其本質上就是一個可執行的二進制文件,運行於windows
系統下。服務器
WinSW
對系統服務的管理功能和在windows任務管理器中的操做是同樣的;從2.x
開始WinSW
託管於github
平臺;在下載完成解壓後,其可執行的操做命令以下所示:工具
Windows
服務控制器中;Windows
服務控制器中卸載服務;命令的運行格式spa
命令須要在WinSW.exe
所在的目錄下才能執行,因爲WinSW
初始的名稱是WinSW.exe
,因此要在命令前加上進程名稱,好比:安裝服務的完整命令就是:winsw install
;(後綴.exe
是能夠省略的)
支持修更名稱
WinSW.exe
支持修更名稱,好比在nginx
中,其名稱可修改成:nginx-service.exe;
在php
中,名稱則可修改成php-cgi-service.exe
;
xml 配置文件
WinSW
的服務管理的配置功能須要xml文件來完成,每一個進程的xml文件的名稱須要和WinSW
進程的名稱同樣;若是WinSW.exe
修改爲了nginx-service.exe
,對應的xml
文件名稱就要修改成nginx-service.xml
。
WinSW
提供了初始的xml
文件示例,有mini
版和完整版,名稱分別是sample-minimal.xml
和sample-allOptions.xml
;WinSW xml
的示例文件以下:
xml 配置條目
Windows
內服務的ID
,這個值在系統中安裝的全部服務中必須是惟一的,而且應徹底由字母數字字符組成。Windows
服務管理器中。PATH
Windows
服務的啓動模式,默認值是Automatic
,它能夠是如下值之一:Boot,System,Automatic
或Manual
。Automatic
定義了啓動模式,則此布爾選項啓用延遲啓動模式。請注意,此啓動模式將不適用於早於Windows 7
和Windows Server 2008
的舊Windows
版本。ID
,可使用多個元素來指定多個依賴項。好比:<depend>Eventlog</depend><depend>W32Time</depend>
<logpath>日誌路徑</logpath>
WinSW
會在必要時用引號將每一個引號<argument>
引發來,所以請勿在引號中加引號,以免產生雙引號。在對WinSW
有了足夠的瞭解以後,就能夠開始着手開始把nginx
註冊爲Windows
服務。如下是詳細步驟:
1.把下載的WinSW.exe
複製到Nginx根目錄下,並重命名爲nginx-service.exe
;
2.在同級目錄下,新建一個xml
文件,命名爲nginx-service.xml
,在nginx-service.xml
文件中輸入如下內容,並保存;
3.在nginx-service.exe
所在的目錄下運行cmd
,依次輸入命令:
nginx-service.exe install
net start nginx-service.exe
至此,nginx-service.exe
不只成功註冊,還能成功運行。
註冊php-cgi
服務不只須要WinSW.exe
的支持,還須要xxfpm
的支持。所以,以前下載的xxfpm
即是在這裏使用的;註冊php-cgi
服務詳細步驟以下:
1.在下載的xxfpm
的bin
目錄下,有三個文件,分別是pthreadGC2.dll、xxfpm
和xxfpm.exe
,須要的是pthreadGC2.dll、xxfpm.exe
;
2.把pthreadGC2.dll、xxfpm.exe
複製到php
語言的根目錄下,與php-cgi.exe
同級;
3.把下載的WinSW.exe
複製到Nginx
根目錄下,並重命名爲php-cgi-service.exe
;
4.在同級目錄下,新建一個xml
文件,命名爲php-cgi-service.xml
,在php-cgi-service.xml
文件中輸入如下內容,並保存;
3.在php-cgi-service.exe
所在的目錄下運行cmd
,依次輸入命令:
php-cgi-service.exe install
net start php-cgi-service.exe
至此,php-cgi-service.exe
不只成功註冊,還能成功運行。對於nginx
,也可做相似的操做,將其安裝系統服務,實現開機自啓動。
完結,老夫雖不正經,但老夫一身的才華!關注我,獲取更多編程科技知識。