内容简介:php有许多开源项目比较好像,在自己的机器上用docker搭建了很多。每个docker都是跑了个apache,每个docker里面都有apache。这样好像有点浪费资源,而平时都是用nginx,所以研究了用nginx运行php
说明
php有许多开源项目比较好像,在自己的机器上用 docker 搭建了很多。
每个docker都是跑了个apache,每个docker里面都有apache。
这样好像有点浪费资源,而平时都是用nginx,所以研究了用nginx运行php
中间竟然碰到许多坑,而回过头来看,其实都很简单。
nginx运行 php 的原理
nginx不能解析php,要和php-fpm配置使用。nginx负责将php的请求转给php-fpm解析处理,然后返回响应结果
nginx运行php会遇到哪些坑
错误的提示有很多,最基本有"File not found"、"403"、"404"、"nginx no input file specified"等等
总之能试出许多错误。**而归结到底,只有一个根本原因“权限”**
而最好的方法是,直接把nginx和php-fpm设置为root用户运行
测试环境
|对象|版本|
|--|--|
| 操作系统 | fedora27 |
| nginx | 1.12.1 |
| php-fpm | php7 |
配置方法
* 安装nginx
yum install nginx
* 安装php-fpm
yum install php-fpm
经过上面两步, php-fpm会自动将nginx配置好,只要将php放到/usr/share/nginx/html目录就可以运行。但是我不想放在这个目录。
* 设置php-fpm以root用户运行
1.打开文件 /usr/lib/systemd/system/php-fpm.service 2.在ExecStart 最后面加上参数-R标识可以用root身份运行(php-fpm默认不能用root运行) (有可能改了php-fpm.server文件不能运行,请运行systemctl reload重新加载) [Unit] Description=The PHP FastCGI Process Manager After=syslog.target network.target [Service] Type=notify ExecStart=/usr/sbin/php-fpm --nodaemonize -R ExecReload=/bin/kill -USR2 $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target 3.打开文件/etc/php-fpm.d/www.conf 4.将修改user和group为root user=root group=root
* 设置nginx以root身份运行
1.打开/etc/nginx/nginx.conf 2.将user改为root
* 配置自己的php项目
将下面内容放到/etc/nginx/conf.d/目录下 server { listen 8080; server_name localhost; root /home/xxxxx; #改成自己的地址 index /_h5ai/public/index.php; #改成自己的php首页 include /etc/nginx/default.d/*.conf; #使用已经配置好的location location / { } }
排错方法
如果在配置过程中,遇到了错误。用什么方法调试呢?
* nginx调试方法
nginx的任务是把php的路径调对。可以先把php-fpm注释掉,专门调nginx,当能从浏览器下载php文件,说明配置正确。
* php-fpm调试方法
用命令运行php-fpm会有清晰的输出
/usr/sbin/php-fpm --nodaemonize -R
总结
nginx运行php总的说来很简单,由于权限问题,会导致遇到许多的坑。
实际很多情况下,都是给内部用,直接用root就可以。当然这样方法在正式环境不安全。
来源
以上所述就是小编给大家介绍的《nginx运行php的终极方法,可避免许多不必要的坑》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
响应式Web设计实践
[美] Tim Kadlec / 侯鸿儒 / 人民邮电出版社 / 2013-3-1 / 55.00元
随着各种各样的移动设备不断地涌现到使用者面前,Web设计的适应性已经成为设计师们所面临的最为艰巨的挑战。你设计出的网站不仅要在桌面计算机的大尺寸屏幕上可以为用户提供友好的UI和用户体验,同时在小尺寸屏幕上也应该可以提供一致的用户体验,并可以让用户能够在桌面大屏幕上和移动小屏幕上平滑切换,同时没有任何的不适应感觉。 本书作者是一位出色的开发者,在本书中,他将诸多技术和设计理念杂糅在一起,再辅以......一起来看看 《响应式Web设计实践》 这本书的介绍吧!