Nginx+Apache+PHP 服务安装
一. 安装 Nginx
yum install -y nginx
systemctl enable nginx
systemctl start nginx
systemctl stop nginx
systemctl restart nginx在 nginx.conf 文件中设置允许发布内容的最大许可(即上传文件大小限制)
client_max_body_size 2M二. 安装 Apache
yum install -y httpd
systemctl enable httpd
systemctl start httpd
systemctl stop httpd
systemctl restart httpd在 httpd.conf 中设置设置文件上传限制:
<IfModule mod_fcgid.c>
MaxRequestLen 10485760 # 10M = 10 * 1024 * 1024
LimitRequestBody 10485760
</IfModule>三. 安装 PHP
查看当前已安装的 PHP 包,如果存在则先卸载:
查看可安装的 PHP 包(以 PHP7 为例),如果没有则先更换rpm源:
安装 PHP7 及其扩展:
php.ini 文件中可能有用的配置
设置开机启动及日常启停
1. 修改启动权限
在某些特殊情况下,例如 PHP 代码调用较高权限的 Shell 命令时,需要以 root 身份启动 php-fpm,打开配置文件:
将以下内容中的 apache 改为 root:
由于 php 默认不允许以 root 身份运行,此时重启 php-fpm 应该会报错,所以还需修改启动脚本:
将其中 ExecStart 行增加 -R 参数,如下:
2. 与 Nginx 集成
查看 php-fpm 默认配置cat /etc/php-fpm.d/www.conf | grep -i 'listen =',若返回结果为listen = 127.0.0.1:9000,表明监听端口为9000,Nginx配置中的PHP解析请求转发到 127.0.0.0:9000 处理即可,通常无需特别处理。
3. 多个 php-fpm 主进程
找到php-fpm.d/www.conf,复制一份改名为例如api.conf,将其中[www]及listen = 127.0.0.1:9000改为[api]及listen = 127.0.0.1:9001,配置 nginx 中 proxy_pass 的端口为9001,重启 php-fpm 和 nginx。
在 Windows 下,同一 Nginx 的不同 Server 之间通过 curl 请求时会阻塞超时,原因是各 Server 共享 php-fpm 的 9000 端口,解决方法就是上述开启新端口供 Server 使用,但 CentOS 下不会出现这种情况,所以无需启动多个端口。
最后更新于
这有帮助吗?