Ubuntu下XAMPP环境Laravel项目启动报Filesystem.php权限错误
解决方案
- 第一步:确认XAMPP Apache运行身份
执行命令查看Apache服务的运行用户和组配置:grep -E '^User|^Group' /opt/lampp/etc/httpd.conf
记录输出的User和Group值,XAMPP默认配置下通常为daemon:daemon。 - 第二步:重置正确的目录权限
将项目目录的所有者修改为Apache运行用户,同时设置分层权限,执行以下命令(注意替换占位内容为你实际的用户、组、项目路径):
sudo chown -R 运行用户:运行用户组 /opt/lampp/htdocs sudo chmod -R 755 /opt/lampp/htdocs sudo chmod -R 775 /opt/lampp/htdocs/storage /opt/lampp/htdocs/bootstrap/cache
- 第三步:排查AppArmor访问限制
Ubuntu默认开启的AppArmor安全模块可能会限制XAMPP服务对目录的访问权限,就算文件权限为777也会被拦截。临时关闭AppArmor验证问题:sudo systemctl stop apparmor
随后重启XAMPP服务:sudo /opt/lampp/lampp restart
如果重启后报错消失,说明是AppArmor规则问题,新增规则允许XAMPP访问项目目录即可。 - 第四步:排查PHP open_basedir限制
打开XAMPP的php.ini配置文件/opt/lampp/etc/php.ini,搜索open_basedir配置项,确认配置值包含你的项目根目录,且没有限制storage、vendor目录的访问权限,调整后重启XAMPP生效。 - 第五步:用正确身份清理缓存
权限修复后用Apache运行用户身份执行缓存清理,避免生成的缓存文件所有者为root导致二次权限报错:
cd /opt/lampp/htdocs sudo -u 运行用户 php artisan view:clear sudo -u 运行用户 php artisan config:clear sudo -u 运行用户 php artisan route:clear sudo -u 运行用户 php artisan cache:clear
内容的提问来源于stack exchange,提问作者Hikaru Shindo
相关产品推荐
相关产品推荐

