背景:

nginx是通过源码安装,php环境和php-fpm是通过apt-get自动安装。

以下记录下出现的几个问题及方法

一、访问php文件无法识别

安装nginx和fpm完成之后,通过在nginx的容器中添加一个php的测试页面为test.php,代码只写

<?php
phpinfo();
?>

其中通过页面访问方式如图所示

解决办法:

找到nginx的安装路径,找到nginx.conf,每个人的nginx安装目录位置不一样,我的nginx.conf在/usr/local/nginx/conf/下面。将已经注释掉对php的解析记录启用

location ~ \.php$ {
root html;
fastcgi_pass http://127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

但是因为我安装php-fpm是默认安装的,有进程,但是并无监听端口9000,此时如果nginx要这样子设置,页面是会报502错误。

所以正确方法最好是修改nginx.conf为下面的代码,通过soker的方式进行访问。

location ~ \.php$ {

fastcgi_pass unix:/run/php/php7.0-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

解释:fastcgi_pass unix的值并不是固定的,要根据自己的按照路径来。

需要与/etc/php/7.0/fpm/pool.d/www.conf  中listen的值保持一致。

二、nginx日志提示Permission denied

按照一的操作之后,本以为就算可以了,可是访问页面还是502错误。于是通过查看nginx的日志提示下面的错误

2019/02/18 17:23:36 [crit] 1745#0: *1 connect() to unix:/run/php/php7.0-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.83.1, server: localhost, request: "GET /phpinfo.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "192.168.83.130:8090"

从错误中可以看出Permission denied,意思是权限拒绝,意思是要访问run/php/php7.0-fpm.sock,但是权限不够被拒绝。

nginx和fpm的关系:

Nginx下php解释器使用最多的就是fastcgi。一般情况nginx把php请求转发给fastcgi管理进程处理,fastcgi管理进程选择cgi子进程进行处理,然后把处理结果返回给nginx。

在这个过程中就牵涉到两个用户,一个是nginx运行的用户,一个是php-fpm运行的用户。如果访问的是一个静态文件的话,则只需要nginx运行的用户对文件具有读权限或者读写权限。

而如果访问的是一个php文件的话,则首先需要nginx运行的用户对文件有读取权限,读取到文件后发现是一个php文件,则转发给php-fpm,此时则需要php-fpm用户对文件具有有读权限或者读写权限。

nginx和fpm的之间的关系可以参考更详细的解释    https://www.cnblogs.com/zrp2013/p/4183546.html

查看思路:

1、用命令:ps -ef| grep nginx查看nginx的拥有者

2、用命令;ps -ef| grep fpm查看php-fpm的拥有者

此时发现nginx的拥有者为nobody,php-fpm的拥有者为www-data,如遇到了nginx用户要访问php文件,则此时却是就没有了权限。

解决办法:将nginx的拥有者和fpm的拥有者保持一致,并添加权限可以访问

1、nginx的拥有者在/usr/local/nginx/conf下的开头查看,默认是注释掉,切用户为nobody

2、查看fpm的用户,在/etc/php/7.0/fpm/pool.d/www.conf查看

user和group的值即是用户fpm的值

listen.owner的值默认是注释的,也可以去掉注释,与上面保持一致、

以上都是将nginx和fpm的用户设置成了www-data。

3、给www-data赋予访问run/php/php7.0-fpm.sock 权限

chmod 0660 /run/php/php7.0-fpm.sock

chown www-data:www-data /run/php/php7.0-fpm.sock

最后把nginx和fpm都重启一遍,此时再访问,成功访问php页面

转载于:https://www.cnblogs.com/ly912790844/p/10399679.html

linux环境下nginx链接不上fpm相关推荐

  1. Linux环境下nginx安装配置--淘宝Tengine

    文章目录 前言 一.tengine是什么? 二.使用步骤 1.下载地址 2.解压 3.依赖安装 4.安装nginx 5.编译 6.启动 7.设置为系统服务 7.服务启动.停止.重启 总结 前言 随着公 ...

  2. Linux环境下Nginx不支持中文文件名解决办法

    当一个文件名称为中文时,或者下载一个的文件名称为中文时,会出现404. 解决办法:增加charset utf-8; nginx配置: server {listen 80;server_name www ...

  3. linux nginx 安装_艾编程基础教程:Linux 环境下 Nginx 安装

    #安装说明:Nginx 安装前需要提前安装相关命令和工具包: make 命令.gcc g++.pcre.zlib.openssl 1.安装 gcc g++ #ubuntu 环境下安装 apt-get ...

  4. linux下安装nginx tar包,Linux环境下Nginx的安装

    一.首先去官网下载Nginx的tar包 Nginx官方网站地址:http://nginx.org/en/download.html ps:下载速度感人 Nginx下载地址 下载完成之后,把它上传到服务 ...

  5. 在Linux环境下 nginx 部署vue打包项目

    nginx配置反向代理 nginx 常用命令: 在Nginx sbin目录下 cd /www/server/nginx/sbin ./nginx 启动 ./nginx -s reload 重启 ./n ...

  6. Linux环境下Nginx部署静态资源文件。

    操作环境: 阿里云服务器: Centos7.4 已安装过nginx 准备好静态资源文件. 部署静态资源文件 我把自己的静态资源文件放在了/usr/local/nginx/html下. dv文件夹中为静 ...

  7. Linux环境下 nginx配置按天生成日志

    在nginx.conf中如图位置加入以下配置: map $time_iso8601 $logdate {'~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd;default ...

  8. 编译高性能linux so库,关于如何在linux环境下生成a库和so库(改,附图)-Go语言中文社区...

    一般linux环境下的链接库分为a库和so库,分别表示静态链接库和动态链接库,其作用是把C程序编译好做成一种可执行链接文件,c主程序文件调用这些程序的函数接口是可以使用a库或so库,在主程序中只需要i ...

  9. win7 php 上传文件,在LNMP原来的基础上,win7环境下如何上传PHP文件到Linux环境下...

    首先,下载一个WINSCP客户端 连接主机后,上传文件到自己的保存目录 接着进入数据库添加我们的数据库 mysql -uroot -p  //这个是进入mysql的命令,但是要是你没有加  ln -s ...

最新文章

  1. JUnit测试类完成后事务是默认 回滚的。只能查询数据,不能增删改。
  2. 阿里云应用性能管理(APM)产品-应用实时监控服务(ARMS)技术解密 资料下载...
  3. Unity UI和引用的管理中心
  4. Application package 'AndroidManifest.xml' must have a minimum of 2 segments错误
  5. 强化学习应用于组合优化问题_如何将强化学习应用于现实生活中的计划问题
  6. matlab 小波中心频率,小波频域特性Matlab实现.pdf
  7. Ubuntu 16.04 使用useradd添加用户后没有家目录的解决方法
  8. 网络基础Cisco路由交换四
  9. HDU 2224 The shortest path
  10. sqlserver得到行号
  11. python scipy stats学习笔记
  12. python语言程序设计实践教程答案实验二_20192428 实验二《Python程序设计》实验报告...
  13. 计算机软件专业搞腾讯地图,腾讯地图电脑离线版
  14. 《算法竞赛入门经典2th》 习题 2-4 子序列的和
  15. github 安装浏览器导航插件Octotree
  16. 503 Service Temporarily Unavailable
  17. 经典指标:SAR算法和应用
  18. UITT私有化自动跟单系统
  19. 高可用服务设计之二:Rate limiting 限流与降级
  20. 根据目标检测结果裁剪bbox保存到本地,python,opencv

热门文章

  1. 生成验证码、模拟登录、手机号屏蔽
  2. MAC OS 苹果系统如何安装FileZilla上传程序
  3. 试题 算法训练 粘木棍 c++
  4. 在Python里应用Openscad实现3D建模(修改简化版)之3D螺纹建模初探2
  5. SadTalker: Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking
  6. 魔力宝贝手游版服务器维护,魔力宝贝手游3月20更新维护公告
  7. 04 面试题2-比较老
  8. android蓝牙传输文件时的文件格式限制及其解决方法
  9. 大数据成神之路(持续更新)
  10. 区块链相关数据报表_区块链数据服务 - BDS