这篇文章主要给介绍了关于在LNMP下提示File not found问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
前言

一般情况下每个虚拟主机就是一个网站,网站一般通过域名进行访问。最近在配置LNMP(Linux Nginx MariaDB Php-fpm)的时候遇到了1个问题:

访问网站首页始终提升File not found。

最终解决后总结一条就是: 网站根目录的权限问题。

起因

说说事情的起因。本人用的系统是Manjaro Linux系统。所以用一条命令装好LNMP环境: sudo pacman -S mariadb nginx php。刚开始,我把symfony项目放在我的家目录,也就是~/projects。然后我从symfony官方拷贝一份nginx的配置文件symfony.conf,放在了/etc/nginx/sites-available目录下,然后将root参数更改为/home/lrcn/projects/symfony/public,并更改了fastcgi_pass参数为unix:/run/php-fpm/php-fpm.sock。好,运行sudo nginx -t测试通过,然后重启nginx。

但问题来了,我在浏览器输入symfony.dev(添加1条hosts为127.0.0.1 symfony.dev)始终提示File not found。即使我将网站目录设置为777也不行!这个问题把我困扰了一天!真的是心都快爆炸了。最后我深呼吸一口气,然后思考这个问题。果然在找遍互联网资源后得到答案。

是这样解释的。PHP-FPM程序需要有一个用户和用户组来运行这个程序。这个用户和用户组对我的项目文件必须要有rx权限。有些目录还必须具有rwx权限,比如upload,log目录等等。Nginx程序同样需要一个用户,这个用户同样对于这个项目文件具有rx权限。

解决方法

由于我的nginx默认用户是http,所以我想把它改为nginx,并且把nginx加入www用户组。同时,我把php-fpm的用户改为www,用户组也改为www。

1)创建用户

sudo useradd -s /sbin/nologin www # 创建www用户,同时会自动创建www用户组sudo gpasswd -a nginx www # 把nginx用户加入到www用户组
2)修改配置文件

由于我这里只管文件权限相关的配置,其余配置自己还需要调整

grep “[;]” /etc/php/php-fpm.d/www.conf# 修改的时候只管修改user, group, listen.owner, listen.group,其余的都是默认配置[www]user = wwwgroup = wwwlisten = /run/php-fpm/php-fpm.socklisten.owner = wwwlisten.group = wwwlisten.mode = 0660pm = dynamicpm.max_children = 5pm.start_servers = 2pm.min_spare_servers = 1pm.max_spare_servers = 3# /etc/nginx/nginx.conf# 在第一行写入,其余的不变user nginx www;

3)修改项目文件权限

这一步我发现了一个很诡异的问题,如果我将网站目录放到lrcn用户的家目录的话,www用户始终无法访问这个项目文件,即使我把~/projects设置为了chown www:www ~/projects -R,但都不管用,运行测试命令sudo -u www stat ~/projects/symfony依旧提示没有权限。我想,应该是/home/lrcn目录的拥有者为lrcn,即使我将它子目录projects改为了www:www, 也是不能访问的。这合情合理。所以,我又将项目目录放在了/var/www目录下,然后运行sudo -u www stat /var/www, 得到了正常的结果:生辰八字起名字

[lrcn@lrcn-pc nginx]$ sudo -u www stat /var/www[sudo] lrcn 的密码: 文件:/var/www 大小:4096 块:8 IO 块:4096 目录设备:801h/2049d Inode:3671064 硬链接:3权限:(2775/drwxrwsr-x) Uid:( 1000/ lrcn) Gid:( 1001/ lrcn)最近访问:2017-12-10 00:40:04.274947995 +0800最近更改:2017-12-10 00:41:34.772321160 +0800最近改动:2017-12-10 10:51:15.811999323 +0800创建时间

LNMP下提示File not found问题的解决方法相关推荐

  1. win7系统提示计算机内存不足,Win7系统下提示内存不足的原因及解决方法

    很多时候,我们在使用电脑的过程中遇到难题或是故障在所难免的.最近就有很多win7系统的用户表示,电脑系统老是提示"计算机内存不足,如要还原足够的内存以使程序正确工作,请保存文件,然后关闭或重 ...

  2. mkdir()提示No such file or directory错误的解决方法

    mkdir()提示No such file or directory错误的解决方法 参考文章: (1)mkdir()提示No such file or directory错误的解决方法 (2)http ...

  3. XP添加权限时提示:无法显示用户选项对话框的解决方法!

    症状: 打开共享权限添加用户无法打开 出现" 安全:无法显示用户选项对话(null)" 如图: 解决方法: 第一种方法是: 将别人WINDOWS SYSTEM32 文件夹下的ric ...

  4. warning: require(./admin.php),WordPress提示require_once() Failed opening required的解决方法

    本文实例讲述了WordPress提示require_once() Failed opening required的解决方法. 一.问题: 今天进我的wordpress发现提示require_once( ...

  5. Python3.5 win10环境下导入kera/tensorflow报错的解决方法

    这篇文章主要介绍了Python3.5 win10环境下导入keras/tensorflow报错的解决方法,较为详细的分析了Python3.5在win10环境下导入keras/tensorflow提示错 ...

  6. Eclipse2020安装了最新版本的JDK却无法打开,提示版本太老的完美解决方法

    Eclipse2020安装了最新版本的JDK却无法打开,提示版本太老的完美解决方法 温馨提示:此教程仅限于提前配置过变量的朋友们,没有配置变量的先去配个变量 相信有很多初学者,或者刚刚安装这个软件的朋 ...

  7. php显示无法找到该网页,window_Win8系统IE浏览器提示无法找到该网页的解决方法,  我们在浏览网页的时候, - phpStudy...

    Win8系统IE浏览器提示无法找到该网页的解决方法 我们在浏览网页的时候,有时会遇到"无法显示该网页"的故障,基本都是网络方面的问题.如果网络没问题的话,那就是电脑的故障了.而在W ...

  8. win10c语言错误,win10打开程序提示错误状态0xc0000020的原因和解决方法

    win10系统打开程序弹出"c:\xx\xxx.dll没有被指定在windows上运行,或者它包含错误.请尝试使用原始安装介质重新安装程序,或联系你的系统管理员或软件供应商以获取支持.错误状 ...

  9. 计算机中丢失xapofx1 5.dll,xapofx1 5 dll丢失怎么办_系统提示xapofx1 5 dll丢失的解决方法...

    最近有很多朋友都在反映xapofx1 5 dll丢失的问题,这是怎么一回事呢?xapofx1 5 dll丢失怎么办呢?别着急,今天小编就针对此问题,为大家带来系统提示xapofx1 5 dll丢失的解 ...

最新文章

  1. js 性能优化整理之 缓存变量
  2. 树与森林的存储、遍历和树与森林的转换
  3. 足坛绝代双骄全面数据对比,梅西30岁以后不如C罗?
  4. tomcat和idea都占用了8080_IDEA 启动tomcat 端口占用原因以及解决方法( 使用debug模式)...
  5. linux 设置中文版man手册
  6. 关于REST API设计的一些小经验
  7. java中Map有哪些实现类
  8. pycharm使用_后端开发使用pycharm的技巧
  9. 【转】C#实现SM2国密加密
  10. 生命游戏(game of life)
  11. 了解架构设计远远不够!一文拆解 Tomcat 高并发原理与性能调优
  12. 标准I/O缓冲:全缓冲、行缓冲、无缓冲
  13. python怎么播放音乐_Python实现在线音乐播放器
  14. (附源码)计算机毕业设计ssm宠物管理系统
  15. MATLAB主题设置配色方案
  16. 无意间看到这样一首歌 Take me to your heart
  17. 手机进程设置多少个最好_手机打开,开发者选项中的这4个设置,性能瞬间提升一倍,不卡顿...
  18. 和我一步步部署 kubernetes 集群
  19. shell 中的单行注释和多行注释
  20. SecureCRT常用文件操作命令

热门文章

  1. why-and-howto-calculate-your-events-per-second
  2. SharePoint:扩展DVWP - 第3部分:把DVWP的功能链接放在同一行中
  3. 定义系统消息 Specify system messages
  4. android编程用真机模拟,android编程的广播,模拟器可接受,但真机不可接受。
  5. ajax 前端怎么处理数据,如何使用ajax异步处理JSon数据
  6. mysql存json将utf8编码 去掉,MySQL对JSON类型UTF-8编码导致中文乱码探讨
  7. python多包运行_如何组织包含多个包的python项目,以便包中的每个文件仍然可以单独运行?...
  8. 公文字体字号标准2020_党政机关公文格式(收藏)
  9. python舵机控制程序_树莓派PWM控制舵机的两种方式
  10. JavaScript 函数参数