nginx正常启动,访问报错403

项目场景:

第一次遇到这种文件,记录下吧:

问题描述

这几天公司在搞信创,信创那边给了一套银河麒麟系统,搭建公司项目进行评测。 搭建的过程中,以root方式链接服务器,经常报错权限问题。重启服务器又可以了,第一次接触国产系统,一头雾水,暂且不管。

在安装nginx的时候,nginx正常启动,装完nginx以后正常启动,但是测试访问的时候发现报错403,被拒绝访问,握草

原因分析:

查看nginx的error.log日志,发现是权限问题。
在这里插入图片描述
nginx正常启动,主进程肯定是没问题的。访问的时候报错,那应该是工作进程的问题,一顿排查发现是nginx下的html文件夹没有读取权限造成的异常。以前玩Centos系统工作进程也是nobody,也没发现这种问题,很奇怪,也许和系统有关系。

那既然以root身份启动的nginx,那么让工作进程也以root身份运行,应该就可以解决了。
在这里插入图片描述

解决方案:

直接修改nginx.conf这个配置文件。改为user root。然后重新reload一下nginx,再次访问发现work进程已经是root身份运行了,那么打开浏览器试下也可正常访问了。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在配置 Nginx 与 phpMyAdmin 时,如果访问 phpMyAdmin 出现 `403 Forbidden` 错误,通常是由于文件权限、路径配置、用户权限或 Nginx 配置错误引起的。以下是常见的解决方法: ### 1. 检查文件路径与权限 确保 phpMyAdmin 的根目录路径 `/usr/share/nginx/phpmyadmin` 存在,并且 Nginx 有权限访问该目录。可以通过以下命令检查和修改权限: ```bash sudo chown -R www-data:www-data /usr/share/nginx/phpmyadmin sudo chmod -R 755 /usr/share/nginx/phpmyadmin ``` 此操作确保了 Nginx 运行的用户(通常是 `www-data`)拥有对目录的读取权限[^5]。 ### 2. 检查 Nginx 配置文件 确认 `/etc/nginx/conf.d/phpmyadmin.conf` 文件中的 `root` 指令是否正确指向了 phpMyAdmin 的安装目录。例如: ```nginx root /usr/share/nginx/phpmyadmin; ``` 同时,确保 `location` 块中对静态资源的匹配规则是否正确,尤其是对图片、CSS、JS 文件的处理是否配置了正确的路径[^1]。 ### 3. 检查 PHP-FPM 配置 确认 `fastcgi_pass` 指令中的路径是否正确,例如: ```nginx fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; ``` 确保 PHP 版本与实际安装的版本一致,例如 `php7.4-fpm.sock` 是否存在。如果使用了不同的 PHP 版本,需要相应调整路径。此外,检查 PHP-FPM 是否正在运行: ```bash sudo systemctl status php7.4-fpm ``` 如果服务未运行,则启动它: ```bash sudo systemctl start php7.4-fpm ``` ### 4. 检查 Nginx 用户权限 确保 Nginx 的运行用户(通常为 `www-data`)有权访问 phpMyAdmin 的文件和目录。可以通过以下命令查看 Nginx 的运行用户: ```bash ps aux | grep nginx ``` 如果运行用户不是 `www-data`,则需要调整 `/etc/nginx/nginx.conf` 文件中的 `user` 指令,确保其与实际运行用户一致。例如: ```nginx user www-data; ``` ### 5. 检查是否存在 `.htaccess` 文件 虽然 Nginx 不支持 `.htaccess` 文件,但如果 phpMyAdmin 目录中存在 `.htaccess` 文件,可能会导致权限问题。可以尝试删除或重命名该文件以排除干扰。 ### 6. 检查服务器防火墙设置 确保服务器的防火墙允许通过 8080 端口(或你配置的其他端口)访问 phpMyAdmin。可以通过以下命令开放端口: ```bash sudo ufw allow 8080/tcp ``` ### 7. 重新加载 Nginx 配置 完成上述修改后,重新加载 Nginx 配置以确保更改生效: ```bash sudo systemctl reload nginx ``` ### 8. 检查日志文件 查看 Nginx 和 PHP-FPM 的日志文件,获取更详细的错误信息: ```bash sudo tail -f /var/log/nginx/error.log sudo tail -f /var/log/php/php7.4-fpm.log ``` 日志文件中可能会显示具体的错误原因,如权限问题、文件路径错误等。 ### 9. 确保没有索引文件缺失 如果目录中没有 `index.php` 文件Nginx 可能会返回 403 错误。检查 `/usr/share/nginx/phpmyadmin` 目录下是否存在 `index.php` 文件。 ### 10. 配置基本认证(可选) 如果希望在访问 phpMyAdmin 时增加一层保护,可以在 Nginx 配置文件中添加基本认证: ```nginx location /phpmyadmin { auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.htpasswd; } ``` 然后生成 `.htpasswd` 文件: ```bash sudo htpasswd -c /etc/nginx/.htpasswd username ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值