Laravel 10部署至AWS Ubuntu服务器后Target class不存在问题求助
Laravel 10部署后控制器不存在问题排查方案
修正命名空间大小写:Linux系统对文件路径和命名空间大小写敏感,你路由中写的
App\HTTP\Controllers存在错误,正确的命名空间是App\Http\Controllers(Http为首字母大写,后续小写)。同时要确认控制器文件内的命名空间声明为namespace App\Http\Controllers;,类名与文件名保持一致(如PropertyController.php对应类名PropertyController)。验证文件存在性:登录服务器检查
app/Http/Controllers/目录下是否存在PropertyController.php文件,确保文件名首字母大写,无拼写错误。重新生成自动加载与清理缓存:
- 执行
composer dump-autoload -o(-o参数用于生产环境优化自动加载) - 执行
php artisan route:clear清除路由缓存,避免旧缓存残留错误配置 - 再执行
php artisan cache:clear清除应用缓存
- 执行
检查NGINX根目录配置:确认NGINX配置中
root指向项目的public目录(如root /var/www/your-project/public;),且包含try_files $uri $uri/ /index.php?$query_string;规则,确保所有请求都能被Laravel处理。修复文件权限:确保NGINX运行用户(通常为
www-data)拥有项目文件的读取权限,执行以下命令:chown -R www-data:www-data /var/www/your-project chmod -R 755 /var/www/your-project chmod -R 644 /var/www/your-project/app禁用路由缓存测试:若之前执行过
php artisan route:cache,先清除缓存再直接访问路由,排除缓存导致的错误。
内容的提问来源于stack exchange,提问作者thomasw_lrd
相关产品推荐
相关产品推荐

