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)
规规矩矩的办事是基本
先在 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
文件夹和php71
。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 利用服务启动的情况下无法使用 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
进程突然就没了。
Windows 下手动配置 Nginx 及 PHP-CGI 多进程开机自启方法相关推荐
- CentOS7下安装配置zookeeper集群及设置开机自启
1.在做zookeeper集群之前需要有至少三台centos机器或虚拟机 一.Zookeeper原理简介 ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程 ...
- windows下手动配置ipv6地址
在XP,2003等早期版本中,ipv6地址在"网络连接"的属性配置里是无法手工配置的,只能使用netsh配置.配置方法如下: 首先,安装IPV6协议,ipv6 install 第二 ...
- python开发工具及环境配置_python_在windows下安装配置python开发环境及Ulipad开发工具...
最近开始学习Python,在网上寻找一下比较好的IDE.因为以前用C#做开发的,用Visual Studio作为IDE,鉴于用惯了VS这么强大的IDE,所以对IDE有一定的依赖性. Python的ID ...
- mysql 手动配置服务器_Win7系统下手动配置Apache+PHP+MySQL环境WEB服务器 -电脑资料...
本来想学学php,于是就想搭建web服务器和sql环境,结果浪费掉了不少时间, 大致的总结下,也算是长个记性. 使用的安装包分别是httpd-2.2.22-win32-x86-no_ssl .msi, ...
- Windows下HVR配置基础环境变量
Windows下HVR配置基础环境变量: HVR_HOME :HVR的安装目录 HVR_CONFIG :HVR的配置路径 HVR_TMP :HVR的TMP路径 上面的三个环境变量,在Windows下 ...
- windows下彻底关闭nginx服务
windows下彻底关闭nginx服务 在nginx目录下打开cmd窗口 运行命令:start nginx 启动nginx服务 运行命令:nginx -s stop 停止nginx服务 运行命令:ng ...
- windows下delf配置:delf环境(二)
windows下delf配置:基础环境(一) windows下delf配置:delf环境(二) 一.delf基础package 1.1.安装tf-Slim cd c:\dlenv git clone ...
- windows下apache配置虚拟主机的两个方法
windows下apache配置虚拟主机方法一: 对httpd.conf进行设置: 1.注释以下三行 #ServerAdmin #ServerName #DocumentRoot 2.去掉mod_pr ...
- Linux服务器下安装配置Nginx的教程
这篇文章主要介绍了Linux服务器下安装配置Nginx服务器的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 Nginx("engine x")是一款 ...
最新文章
- 【开源】博客园文章编辑器4.0版发布
- SSHFD:IBM提出的单阶段人体跌倒检测网络
- ros的密码忘记解决方法
- httpClient 超时时间设置
- java实现支付宝支付完整过程(沙箱测试环境,下篇整合ssm)
- 将用户添加到sudoers_在CentOS系统中将用户添加到Sudoers文件的方法
- 使用Java泛型的模板方法模式示例
- 3.1_ 6_ 基本分页存储管理的基本概念
- python实现rpc框架_使用Python实现RPC框架
- 人工智能诗歌写作平台_人工智能教作文,只写出二类文,人类语文老师稳赢
- Java 工厂模式学习
- java restclient 调用_restclient 访问 springmvc java工程接口
- 用jQuery实现.net 2.0 treeview客户端无刷新操作的实例
- 个人技术博客的选择:CSDN、博客园、简书、知乎专栏、Github、新浪、个人建站等?
- java-IO流-在文件中数据内容的插入问题
- BaseQuickAdapter 条目复用问题
- 转:长篇小说《七月七日晴》(超感人的)(续)
- 智科模式识别期末大课设:多种方法对数据集进行手写数字识别(数据集:MINIST)
- CVE-2022-22916
- 一个极简单的基于STM32的精确PWM脉冲计数
热门文章
- 我的Linux虚拟机的安装过程
- 我的世界1.7.2java_我的世界JAVA版1.7.2
- Navicat在同步表结构的时候报错:1062
- 面向对象期末任务第二阶段
- 终于找到了Visual Studio.net 2003完整高速下载
- 专精特新企业培育措施及优惠政策有哪些,补贴20-100万
- java 自动发qq消息_用java写的乞丐版QQ微信自动信息发送工具
- 分享一个非常有用的HTML5+CSS3响应式图片案例
- AGV调度、AGV调度系统、AGV小车调度、AGV小车调度系统、搬运小车调度、搬运小车调度系统、slam车调度、slam调度系统、调度、调度系统
- 2021-2027中国汽车后视镜市场现状及未来发展趋势