访问新建Laravel应用出现Forbidden错误的技术求助
解决Laravel应用Apache权限拒绝问题
错误原因
日志提示的search permissions are missing核心问题是:Apache的运行用户(默认是www-data)没有权限遍历/root目录。/root目录默认权限为700,仅允许root用户访问,即使你配置了public目录的权限,上级目录的访问限制依然会导致Apache无法读取项目文件。
推荐解决方案(迁移项目到安全目录)
1. 移动项目到非root目录
将Laravel项目从/root目录迁移到Apache默认的网站根目录/var/www/:
sudo mv /root/testing-laravel /var/www/
2. 设置正确的文件所有权
修改项目目录的所属用户和组为Apache运行用户www-data:
sudo chown -R www-data:www-data /var/www/testing-laravel
3. 调整目录权限
确保Apache能正常读写必要的目录:
# 设置项目根目录权限 sudo chmod -R 755 /var/www/testing-laravel # 给storage和bootstrap/cache目录添加写入权限 sudo chmod -R 775 /var/www/testing-laravel/storage /var/www/testing-laravel/bootstrap/cache
4. 更新Apache虚拟主机配置
编辑/etc/apache2/sites-available/laravel-testing-site.conf,修改DocumentRoot和Directory的路径:
<VirtualHost *:80> ServerAdmin webmaster@example.com ServerName testing-laravel.mydomain.com DocumentRoot /var/www/testing-laravel/public <Directory /var/www/testing-laravel/public> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
5. 重启Apache服务
sudo systemctl restart apache2
临时解决方案(不推荐,有安全风险)
如果必须保留项目在/root目录下,可以临时开放/root目录的遍历权限给其他用户:
sudo chmod o+x /root
注意:此操作会降低系统安全性,非必要不建议在生产环境使用。
内容的提问来源于stack exchange,提问作者Nix
相关产品推荐
相关产品推荐

