在Railway部署Laravel应用遇权限及数据库连接错误求解决方案
Railway部署Laravel应用的两个错误解决方案
错误1:执行Artisan::call('view:clear')触发权限异常
ErrorException
file_put_contents(/app/bootstrap/cache/config.php): Failed to open stream: Permission denied
http://127.0.0.1:8000/
解决办法:
- 给Laravel缓存和存储目录设置正确权限,在Railway终端执行:
chmod -R 775 bootstrap/cache storage chown -R www-data:www-data bootstrap/cache storage - 若用Docker部署,在Dockerfile中添加权限配置:
RUN chmod -R 775 bootstrap/cache storage RUN chown -R www-data:www-data bootstrap/cache storage - 调整启动命令,先修复权限再执行artisan操作,示例:
chmod -R 775 bootstrap/cache storage && php artisan view:clear && php artisan serve
错误2:数据库连接地址解析失败
Illuminate\Database\QueryException
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (SQL: SET lc_time_names = 'es_ES')
解决办法:
- 核对Railway控制台的数据库环境变量:确保
DB_HOST是Railway提供的远程数据库主机地址,不要用localhost或127.0.0.1 - 确认
DB_PORT、DB_DATABASE、DB_USERNAME、DB_PASSWORD完全匹配Railway数据库服务的参数 - 重启Railway应用服务,确保环境变量生效
- 若使用配置缓存,在环境变量正确设置后执行:
php artisan config:cache
内容的提问来源于stack exchange,提问作者Alberto Acuña
相关产品推荐
相关产品推荐

