网站首页php

Windows下的PHP7生产环境搭配

发布时间:2019-04-13 04:29:44编辑:slayer.hover阅读(4580)

    不少服务器仍然使用windows服务器,需要部署windows(7,8,10)+PHP7.2+Nginx+Mysql/Oracle。

    下载需要的文件: https://pan.baidu.com/s/1OIUEHBSyD8d-_KlHncNWRA, 提取码:9u64,

    把RunHiddenConsole.exe和xxfpm.exe放置于D:/webServer/wnmp目录,

    把PHP放置于D:/webServer/php7目录,

    把Nginx放置于D:/webServer/Nginx目录。

    1. 启动PHP7

    因为PHP在windows下没有PHP-fpm进程管理器, 使用命令行启动PHP-cgi后, 会莫名自动退出。

    解决办法是使用windows下的php-cgi进程管理器xxfpm,可用来做PHP的守护进程,保持永久在线。

    xxfpm需要用到pthreadGC2.dll, 把pthreadGC2.dll复制到system32(32位系统)或者SysWOW64(64位系统)目录下,

    执行:

        regsvr32 pthreadGC2.dll

    然后执行:

        D:/webServer/wnmp/RunHiddenConsole.exe D:/webServer/wnmp/xxfpm.exe 
            "D:/webServer/php7/php-cgi.exe -b 127.0.0.1:9000 -c D:/webServer/php7/php.ini" 
            -n 4 
            -i 127.0.0.1 
            -p 9000


    RunHiddenConsole.exe的作用是在执行完命令行脚本后可以自动关闭脚本,而从脚本中开启的进程不被关闭

    此命令的作用:使用xxfmp启动四个PHP进程,监听9000端口,当有PHP进程退出时会自动启动一个新的进程。


    2. 启动nginx,并将Nginx设置为Windows服务
    需要借助"Windows Service Wrapper"小工具:winsw-1.18-bin.exe
    下载该工具后,将其放在 Nginx安装目录下,并重命名为nginx-service.exe,创建配置文件nginx-service.xml。
    创建nginx-service.exe.config(为支持NET 4.0 runtime,默认只支持NET 2.0 runtime)
    文件结构如下:
    nginx-service.xml 内容如下:

    <service>
      <id>nginx</id>
      <name>Nginx Service</name>
      <description>High Performance Nginx Service</description>
      <logpath>D:\webServer\nginx\logs</logpath>
      <log mode="roll-by-size">
        <sizeThreshold>10240</sizeThreshold>
        <keepFiles>8</keepFiles>
      </log>
      <executable>D:\webServer\nginx\nginx.exe</executable>
      <startarguments>-p D:\webServer\nginx</startarguments>
      <stopexecutable>D:\webServer\nginx\nginx.exe</stopexecutable>
      <stoparguments>-p D:\webServer\nginx -s stop</stoparguments>
    </service>



    nginx-service.exe.config 内容如下:

    <configuration>
      <startup>
        <supportedRuntime version="v2.0.50727" />
        <supportedRuntime version="v4.0" />
      </startup>
      <runtime>
        <generatePublisherEvidence enabled="false"/> 
      </runtime>
    </configuration>



    在cmd中运行如下命令安装windows服务

        D:\webServer\nginx\nginx-service.exe install


    之后就可以在Windows服务面板中启动服务了,浏览器中就可以正常访问 http://localhost。



    ----------------------------------问题终结线------------------------------------------


    上述方案,在网站访问量大的时候,PHP还是会出现阻塞,出现网站打不开的现象。

    最终的解决方案:用phpstudy8里的apache+php。

评论