树莓派4 Ubuntu Server 20.04部署Laravel遇503错误求助
目录权限错误
Laravel的storage和bootstrap/cache目录需要Web服务器用户(通常是www-data)拥有写入权限。本地运行时用的是你的个人用户账号,权限足够,但外网访问时由www-data进程处理,若权限不足会触发503错误。
修复命令:sudo chown -R www-data:www-data /path/to/laravel-project/storage sudo chown -R www-data:www-data /path/to/laravel-project/bootstrap/cache sudo chmod -R 775 /path/to/laravel-project/storage sudo chmod -R 775 /path/to/laravel-project/bootstrap/cache虚拟主机根目录指向错误
必须将虚拟主机的DocumentRoot指向Laravel项目的public目录,而非项目根目录。如果指向根目录,Web服务器无法找到正确的入口文件index.php,会返回503。
检查Apache虚拟主机配置(通常在/etc/apache2/sites-available/目录下),确保配置类似:DocumentRoot /var/www/laravel-project/public <Directory /var/www/laravel-project/public> AllowOverride All Require all granted </Directory>Apache重写模块未启用或AllowOverride配置错误
Laravel依赖URL重写处理路由,如果Apache未开启mod_rewrite,或者虚拟主机的AllowOverride设置为None,会导致路由解析失败触发503。
启用模块并重启服务:sudo a2enmod rewrite sudo systemctl restart apache2同时确保虚拟主机的
<Directory>块中设置AllowOverride All(如上一点所示)。PHP-FPM运行异常
虽然本地访问正常,但PHP-FPM可能存在监听权限或进程崩溃问题。检查PHP-FPM状态:sudo systemctl status php7.4-fpm # 根据你的PHP版本调整命令查看PHP-FPM日志(通常在
/var/log/php7.4-fpm.log)是否有连接错误,若有则重启服务:sudo systemctl restart php7.4-fpmLaravel缓存或维护模式问题
- 本地生成的配置缓存可能包含localhost相关设置,外网访问时不适用,需清除缓存:
php artisan config:clear php artisan cache:clear php artisan route:clear - 若误开启了维护模式,执行以下命令关闭:
php artisan up
- 本地生成的配置缓存可能包含localhost相关设置,外网访问时不适用,需清除缓存:
DDNS解析或端口转发异常
虽然已有站点正常,但Laravel站点的端口转发可能存在配置疏漏(比如80/443端口是否正确映射到树莓派),或者DDNS解析的IP未及时更新。可以用nslookup temperatur.gleeze.com确认解析的IP是否为树莓派当前公网IP。
内容的提问来源于stack exchange,提问作者raffodog

