Windows 下手动配置 Nginx 及 PHP-CGI 多进程开机自启方法

  强迫症福利,像我这样的人除非懒到极致才会用 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
(也可以使用我编译的版本,支持带空格的路径:https://github.com/maxsky/xxfpm

规规矩矩的办事是基本
  1. 先在 D 盘或任意位置建立一个文件夹(一定不能有空格),例如 D:\WebDevEnvironment

  2. 依次创建 nginxphp56xxfpm(PHP 视版本命名,例如 PHP 7.1 则为 php71。)

  3. 将已下载的 Nginx 和 PHP 都扔到对应文件夹内,nginx 内包含 nginx.execonf 文件夹;php56 内包含 php-cgi.exeext 文件夹

  4. WinSW.NET4.exe 分别扔进 nginx 文件夹和 php71xxfpm 压缩包内 bin 文件夹里除了 xxfpm,将 xxfpm.exepthreadGC2.dll 扔进 xxfpm 文件夹

  5. nginx 内的 WinSW.NET4.exe 重命名为 nginx-server.exe,然后新建一个同名的 XML 文件 nginx-server.xml

  6. 编辑 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 利用服务启动的情况下无法使用 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>
    
  7. 保存 XML 文件,然后 Win+X,A 戳开管理员身份的 cmd,通过 d: && cd D:\WebDevEnvironment\nginx 命令进入 D:\WebDevEnvironment\nginx 文件夹,接着输入 nginx-server.exe install 并回车,服务就装好啦,Win+R 输入 services.msc 回车,进服务瞧一瞧,有的有的!

    已创建 Nginx 服务

  8. 进入 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

  9. Win + R 打开 service.msc 手动启动或直接管理员命令行 net start php-cgi && net start nginx-server 启动服务。通过任务管理器我们可以清楚的看到服务成功启动,现在不用担心 php-cgi.exe 进程突然就没了。
    成功启动服务

至天 CSDN认证博客专家 Max Sky PHPer
------------------------------------------------------------
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 点我我会动 设计师:白松林 返回首页