nginx运行php的终极方法,可避免许多不必要的坑

栏目: PHP · 发布时间: 5年前

内容简介: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的终极方法,可避免许多不必要的坑

此生必看的科学实验-水知道答案

《了凡四训》详解之改过之法

印光大师十念法(胡小林主讲第1集)

精神病为什么治不好

百病之源


以上所述就是小编给大家介绍的《nginx运行php的终极方法,可避免许多不必要的坑》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

CSS实战手册(第2版)

CSS实战手册(第2版)

[美] David Sawyer McFarland / 俞黎敏 / 电子工业出版社 / 2010-6 / 69.80元

本书从介绍最基本的CSS知识开始,到建立用于打印网页的CSS和改进你的CSS习惯的最佳实践。将关于CSS的选择器、继承、层叠、格式化、边距、填充、边框、图片、网站导航、表格、表单、浮动布局、定位网页上的元素,以及用于打印网页的CSS等技术通过逐步地讲解与教程串联了起来。每章内容从简单到复杂,一步一步地建立起一个完整的教程示例,并在每章都会详细讨论一些技巧、最佳实践和各浏览器之间一致性的兼容问题及如......一起来看看 《CSS实战手册(第2版)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具