我已經嘗試過尋找這個問題,並看到一對夫婦的答案,但沒有運氣...作曲家和Linux的生產服務器 - 自動加載不工作
我有修身框架v3一起安裝的作曲家。
我使用我的文件自動加載在這樣的composer.json文件中使用PSR-4:
"autoload": {
"psr-4": {
"App\\": "App"
}
}
這是我的文件夾結構:
我運行它在使用Apache 2.4的本地主機Mac OS X El-Capitan上運行,一切都像魔術一樣。 但是,當我把它上傳到我的生產Linux服務器(也與Apache 2.4),自動加載似乎是極其混亂,我收到錯誤這樣的:
Warning: include(/home/friendsapp/public_html/vendor/composer/../../app/Middleware/AuthMiddleware.php): failed to open stream: No such file or directory in /home/friendsapp/public_html/vendor/composer/ClassLoader.php on line 412
Warning: include(): Failed opening '/home/friendsapp/public_html/vendor/composer/../../app/Middleware/AuthMiddleware.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/friendsapp/public_html/vendor/composer/ClassLoader.php on line 412
Fatal error: Class 'App\Middleware\AuthMiddleware' not found in /home/friendsapp/public_html/public/index.php on line 5
我已經命名空間我的班完全按我的文件夾結構體。
<?php
namespace App\Middleware;
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
use \App\Middleware\Middleware;
use \App\Share\ErrorCode;
use \App\Models\ResultMessage;
use \App\Mappers\AccessTokenMapper;
class AuthMiddleware extends Middleware {
任何幫助將不勝感激! :)
您是否在服務器上運行'composer install'? – Chris
或'composer dump-autoload' –
難道我不應該在服務器上這樣做嗎? (至少這是我通過閱讀關於這個問題的一些評論而理解的) – EpicSyntax