强迫症福利,像我这样的人除非懒到极致才会用 phpStudy 这样的一键式集成环境,但是用的时候也会去更换 MySQL/Nginx/PHP 版本,因为 PHP 和 MySQL 在集成环境里面大多是 x86 版,换成 x64 可以更科学的运行在 64 位系统上。另外手动配置可以让你能更了解这些组件的配置,至少为以后的优化、调整等有了一点基础。
OK,先入手这些玩意儿的压缩包
Nginx:http://nginx.org/en/download.html
PHP4Windows:http://windows.php.net/download/【请下载 NTS(Non Thread Safe 非线程安全)版】
下面这货是用来创建 Windows 自启服务的:
WinSW:https://github.com/kohsuke/winsw/releases【下载 .exe 文件即可,根据系统选择,Win 10 选择 .NET4 版本,以下选择 .NET2 版本】
xxfpm 用来开启 PHP-CGI 多进程
xxfpm:https://github.com/78/xxfpm
规规矩矩的办事是基本
先在 D 盘或任意位置建立一个文件夹(一定不能有空格),例如
D:\WebDevEnvironment
依次创建
nginx
、php56
、xxfpm
(PHP 视版本命名,例如 PHP 7.1 则为php71
。)将已下载的 Nginx 和 PHP 都扔到对应文件夹内,
nginx
内包含nginx.exe
和conf
文件夹;php56
内包含php-cgi.exe
和ext
文件夹将
WinSW.NET4.exe
分别扔进nginx
文件夹和php56
。xxfpm
压缩包内bin
文件夹里除了xxfpm
,将xxfpm.exe
和pthreadGC2.dll
扔进xxfpm
文件夹nginx
内的WinSW.NET4.exe
重命名为nginx-server.exe
,然后新建一个同名的 XML 文件nginx-server.xml
编辑
nginx-server.xml
文件,内容如下:<service> <!-- 服务 ID,命令行使用这个名字可以启动/停止服务 --> <id>nginx-server</id> <!-- 服务名称,可任意,为了方便建议和 ID 一致 --> <name>nginx-server</name> <!-- 服务描述,任意 --> <description>nginx-server.</description> <!-- 启动程序名称,不用修改 --> <executable>nginx.exe</executable> <!-- 停止服务时执行程序名称 --> <!-- 解释一下为何用 Win 的 taskkill 命令。因为 Nginx 在 Windows 下无法使用 nginx -s stop 或 nginx -s quiet 命令结束进程 --> <stopexecutable>taskkill</stopexecutable> <!-- 以下三行是 taskkill 的参数,不用修改 --> <stopargument>/F</stopargument> <stopargument>/IM</stopargument> <stopargument>nginx.exe</stopargument> <!-- 日志路径,将生成日志至 nginx/logs 目录 --> <logpath>logs</logpath> </service>
保存 XML 文件,然后 Win+X,A 戳开管理员身份的
cmd
,通过d: && cd D:\WebDevEnvironment\nginx
命令进入D:\WebDevEnvironment\nginx
文件夹,接着输入nginx-server.exe install
并回车,服务就装好啦,Win+R 输入services.msc
回车,进服务瞧一瞧,有的有的!进入
xxfpm
文件夹,将之前复制进来的WinSW.NET4.exe
重命名为PHP-CGI.exe
,然后创建同名的PHP-CGI.xml
文件,内容如下:<service> <id>PHP-CGI</id> <name>PHP-CGI</name> <description>PHP-CGI.</description> <executable>xxfpm.exe</executable> <!-- 启动参数 --> <startargument>"D:/WebDevEnvironment/php71/php-cgi.exe -c D:/WebDevEnvironment/php71/php.ini"</startargument> <startargument>-n</startargument> <!-- 启动进程数量,可修改,建议大于 1 --> <startargument>3</startargument> <startargument>-i</startargument> <!-- 监听IP,默认一般都用 127.0.0.1 --> <startargument>127.0.0.1</startargument> <startargument>-p</startargument> <!-- 监听端口,默认一般都用 9000 --> <startargument>9000</startargument> <!-- 停止参数 --> <stopexecutable>taskkill</stopexecutable> <stopargument>/F</stopargument> <stopargument>/IM</stopargument> <stopargument>xxfpm.exe</stopargument> <logpath>logs</logpath> </service>
如 Nginx 创建那样,通过命令行创建服务,注意这里是
PHP-CGI.exe install
Win + R
打开service.msc
手动启动或直接管理员命令行net start php-cgi && net start nginx-server
启动服务。通过任务管理器我们可以清楚的看到服务成功启动,现在不用担心php-cgi.exe
进程突然就没了。