Laravel部署Cloudways后file_put_contents本地路径错误求助
解决Laravel部署Cloudways后仍使用本地路径的问题
针对你遇到的session存储路径错误(调用本地WAMP路径而非服务器路径),按以下步骤排查修复:
清除并重新生成配置缓存
本地环境的配置缓存文件会强制程序沿用本地路径,部署后必须清除并重新生成服务器端的配置缓存:php artisan config:clear php artisan config:cache注意:上传项目时不要包含
bootstrap/cache目录下的缓存文件,这些是本地环境生成的,会覆盖服务器配置。替换服务器端.env文件
不要直接上传本地的.env文件,在Cloudways服务器上创建新的.env,配置正确的服务器环境参数:- 设置
APP_URL为服务器的域名或公网IP - 确认
SESSION_DRIVER配置(默认file即可,确保对应存储路径权限正常) - 其他数据库、缓存等配置也需对应服务器环境
- 设置
修复Storage目录权限
Cloudways服务器需要Laravel的存储目录具备读写权限,执行以下命令:chmod -R 755 storage bootstrap/cache sudo chown -R www-data:www-data storage bootstrap/cache检查Session路径配置
打开config/session.php,确认path项使用Laravel内置辅助函数动态生成路径,而非硬编码本地路径:'path' => storage_path('framework/sessions'),避免出现类似
'path' => 'C:\wamp64\www\myapp\htdocs\storage\framework/sessions'的硬编码配置。重新部署项目(排除本地缓存文件)
重新上传项目时,排除以下本地生成的目录和文件,避免污染服务器环境:bootstrap/cache/*storage/framework/cache/*storage/framework/sessions/*storage/framework/views/*- 本地
.env文件 - 建议在服务器端执行
composer install安装依赖,而非直接上传本地vendor目录,避免环境依赖不一致。
如果以上步骤后仍存在问题,直接删除服务器上的bootstrap/cache/config.php文件,再重新执行php artisan config:cache,确保配置缓存完全基于服务器环境生成。
内容的提问来源于stack exchange,提问作者Fouchet Thibault
相关产品推荐
相关产品推荐

