2016-05-11 33 views
1

我正在Laravel 5.2架構和運行第一次項目錯誤 - 必需的引導/../供應商/ autoload.php)的index.php線22在Laravel 5

當運行根鏈接顯示錯誤:

Warning: require(/home/ubuntu/workspace/../bootstrap/autoload.php): failed to open stream: No such file or directory in /home/ubuntu/workspace/index.php on line 22 Call Stack: 0.0028 236248 1. {main}() /home/ubuntu/workspace/index.php:0 Fatal error: require(): Failed opening required '/home/ubuntu/workspace/../bootstrap/autoload.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/ubuntu/workspace/index.php on line 22 Call Stack: 0.0028 236248 1. {main}() /home/ubuntu/workspace/index.php:0 

之前,我打電話作曲家安裝

它我應用/ .htpaccess:

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 
    RewriteRule ^(.*)$ public/$1 [L] 
    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

    RewriteRule ^(.*)$ public/$1 [L] 

</IfModule> 

routes.php文件

Route::get('/', function() { 
    return view('welcome'); 
}); 

應用/ index.php的

require __DIR__.'/../bootstrap/autoload.php'; 

$app = require_once __DIR__.'/../bootstrap/app.php'; 

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); 

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture() 
); 

$response->send(); 

$kernel->terminate($request, $response); 

編輯:

在我的index.php替換以

require __DIR__.'/../vendor/autoload.php'; 

但顯示錯誤:

警告:要求(/家/ Ubuntu的/工作區/../供應商/ autoload.php):未能打開流:在/ home/Ubuntu的/工作區沒有這樣的文件或目錄/第22行的index.php調用堆棧:0.0004 233376 1. {main}()/home/ubuntu/workspace/index.php:0致命錯誤:require():無法打開所需的'/ home/ubuntu/workspace/.. /vendor/autoload.php'(include_path ='。:/ usr/share/php:/ usr/share/pear')在第22行的/home/ubuntu/workspace/index.php調用堆棧:0.0004 233376 1. { main}()/home/ubuntu/workspace/index.php:0

我在根目錄下有文件夾供應商。我如何解決這個問題?謝謝。

+0

運行這個命令在終端: 'PHP人員明確compiled', '作曲家install', '作曲家update', '作曲家轉儲autoload'。 – Ali

+0

自動加載文件位於'vendor'文件夾中。試試'require __DIR __。'/ ../vendor/autoload.php';'。 – Repox

+0

我改爲__DIR __。'/ ../vendor/autoload.php'。錯誤:需要打開失敗'/home/ubuntu/workspace/../vendor/autoload.php'(include_path ='。:/ usr/share/php:/ usr/share/pear') – dev85

回答

1

__DIR__是您正在運行的腳本的目錄的絕對路徑。

將終端和cd置於此腳本所在的目錄中。從那裏,使用ls以及諸如向上一個目錄(../)和基於選項卡的自動填充之類的路徑來查找您需要用來從索引腳本中查找autoload.php的路徑。

如果你得到這樣的結果:

$ ls ../public/index.php 
ls: cannot access ../public/index.php: No such file or directory 

那麼你知道文件不指定路徑存在。

我覺得最好通過告訴你如何找到它而不是猜測它應該在哪裏來回答這個問題。

+0

謝謝。我刪除了一個/../。加載沒有這個錯誤,但現在顯示'哎呀,看起來像出了什麼問題。' – dev85

+0

這裏有一個這個錯誤的故障排除清單:http://stackoverflow.com/questions/36577020/failed-to-open-stream-no -such-文件或目錄 –

1

我認爲這是你的composer.json中的問題,因爲我也有同樣的問題。

請與本替換你的整個「腳本」對象composer.json ..

"scripts": { 
     "post-root-package-install": [ 
     "php -r \"copy('.env.example', '.env');\"" 
    ], 
    "post-create-project-cmd": [ 
     "php artisan key:generate" 
    ], 
    "post-install-cmd": [ 
     "Illuminate\\Foundation\\ComposerScripts::postInstall", 
     "php artisan optimize" 
    ], 
    "post-update-cmd": [ 
     "Illuminate\\Foundation\\ComposerScripts::postUpdate", 
     "php artisan optimize" 
    ] 
}, 

現在嘗試運行作曲家安裝如果沒有工作,然後作曲家更新。

1

我有同樣的問題,但對作曲家的低音命令爲我整理了一切。

composer update --no-scripts

有時,當你運行:composer install你明白我的錯誤太多,所以最好的辦法是先運行:composer install --no-scripts,然後再運行安裝作曲家正常。

相關問題