nginx 出现File not found.解决方案
出现这种问题可能是由于:
1.找不到文件,或者是路径出误
一般是`nginx.conf`配置文件里的`root` 路径不正确导致php-fpm在处理时无法找到这个php文件
2.进程用户
确认`/etc/nginx/nginx.conf`文件里的user 值是否与`/etc/php/8.0/fpm/pool.d/www.conf`文件里的`user、group`参数值是否一致
nginx.conf:
user www-data;
worker_processes auto;
www.conf:
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = www-data
group = www-data
3.目录权限问题
这个问题也是最坑爹的。一直没想到是目录权限问题,直到最后把root 目录指定为 `/var/www/html`,输入example.com才一切访问正常,才番然醒悟,哦!原来是目录权限问题。说白了就是www-data这个用户无法访问你指定的自定义目录。
说下我的解决过程,我先是用了这个命令,测试了下`www-data`对 `/var/www/html`目录的访问权限:
sudo -u www-data ls -l /var/www/html
结果一切正常,没有出现权限不足的提示。
我自定义的路径,是我的另一块`ntfs`格式的硬盘,挂载位于`/media/rain/rain/Code/`目录下。于是我尝试了下使用`sudo -u www-data ls -l /media/rain/rain/Code`,测试下访问权限,却提示“权限不足”。
原因出在哪里呢?我尝试给www-data访问这个目录的权限:
sudo chown -R www-data:root /media/rain/rain/Code/
结果依然是权限不足。最后查了很多资料,因为/media挂载的磁盘是我设定的开机自动挂载的,在你修改/etc/fstab文件时:
UUID=64A8C783A8C7526A /media/rain/rain ntfs defaults 0 0
rules(挂载选项)一定要写为defaults,不要写成auto,否则无法访问.