2013-12-17 33 views
3

我已經遇到了laravel的一百個問題。我最近將laravel 3網站升級爲laravel 4,並將我的整個項目保存到Github上的存儲庫中。由於我經常無意中從錯誤的文件夾中編輯文件,我只是在工作目錄中創建了本地git存儲庫,所以我只有一個目錄需要處理。爲什麼藝術家沒有在作曲家更新上工作並且不返回任何錯誤消息?

一切工作正常,直到我試圖安裝一些laravel包,我已經能夠安裝之前。每當我運行作曲家更新時,我的所有藝術家腳本都會返回一個錯誤。錯誤消息本身(可能是PHP錯誤)不會顯示,即使我確定我使用的是PHP.ini文件。

fatal: No names found, cannot describe anything. 
* master [KEY REMOVED] Remove mPDF Library 
Script php artisan clear-compiled handling the pre-update-cmd event returned with an error 

Status for device CON: 
---------------------- 
    Lines:   300 
    Columns:  80 
    Keyboard rate: 31 
    Keyboard delay: 1 
    Code page:  437 

Status for device CON: 
---------------------- 
    Lines:   300 
    Columns:  80 
    Keyboard rate: 31 
    Keyboard delay: 1 
    Code page:  437 

    [RuntimeException] 
    Error Output:  

update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-scripts] [--no-progress] [--with-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [packages1] ... [packagesN] 

這裏是我的composer.json(一個建議,我看是把 「PHP工匠明確編譯」 中的 「更新前-CMD」):

{ 
    "name": "laravel/laravel", 
    "description": "The Laravel Framework.", 
    "keywords": ["framework", "laravel"], 
    "license": "MIT", 
    "require": { 
     "laravel/framework": "4.1.*" 
    }, 
    "autoload": { 
     "classmap": [ 
      "app/commands", 
      "app/controllers", 
      "app/models", 
      "app/database/migrations", 
      "app/database/seeds", 
      "app/tests/TestCase.php" 
     ] 
    }, 
    "scripts": { 
     "post-install-cmd": [ 
      "php artisan optimize" 
     ], 
     "pre-update-cmd": [ 
      "php artisan clear-compiled" 
     ], 
     "post-update-cmd": [ 
      "php artisan optimize" 
     ], 
     "post-create-project-cmd": [ 
      "php artisan key:generate" 
     ] 
    }, 
    "config": { 
     "preferred-install": "dist" 
    }, 
    "minimum-stability": "dev", 
    "require": { 
     "laravelbook/ardent" : "dev-master", 
     "loic-sharma/profiler" : "dev-master", 
     "prologue/alerts"  : "dev-master", 
     "mpdf/mpdf"   : "dev-master" 
    } 
} 

我注意到另一個奇怪的是這個:

fatal: No names found, cannot describe anything. 
* master [KEY REMOVED] Remove mPDF Library 

這是引用我的git倉庫中的最新提交。爲什麼提到這個?我認爲這可能是問題的一部分,直到我意識到即使是在全新安裝的時候它也搞亂了。

是的,我試過刪除腳本或運行--no-scripts。我覺得這是我的問題開始,不過,因爲即使當我運行--no的腳本,我得到以下錯誤:

Fatal error: Class 'Patchwork\Utf8\Bootup' not found in [ROOT PATH REMOVED]/bootstrap/autoload.php on line 46 

,我讀了一些文件可能已經失蹤我已經升級到4.1 。所以我填寫了所有缺失的文件,並且我得到了一個空白的白頁。

根據我正在閱讀的內容,一個全新安裝的laravel應該能夠運行工匠,或者至少在運行後運行composer install。我甚至無法得到這個全新的安裝工作。所以我更新了我的xampp安裝到最新版本。

my version of xampp

我也看了,有一個方法來檢查是否安裝mcrypt的:php -i | grep "mcrypt support"它指出,不安裝,如果沒有返回任何內容mcrypt的,但它肯定回來的東西。

mcrypt 

mcrypt support => enabled 
mcrypt support => enabledmcrypt_filter support => 
enabled 
Version => 2.5.8 
Api No => 20021217 
Supported ciphers => cast-128 gost rijndael-128 twofish cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes arcfour 
Supported modes => cbc cfb ctr ecb ncfb nofb ofb stream 

Directive => Local Value => Master Value 
mcrypt.algorithms_dir => no value => no value 
mcrypt.modes_dir => no value => no value 

作曲家更新沒有返回錯誤,工匠不工作,當我使用--no-腳本它不工作,我仍然用--no-腳本後不編譯PHP ...不會返回任何錯誤或記錄任何錯誤。我不知道還有什麼要做。我嘗試了所有我能想到的,以及我可以在網上找到的所有東西。我只想要安裝一個簡單的軟件包,而不是陷入這個巨大的混亂中。我很猶豫要繼續在這個項目上工作,直到我解決了這個問題,但我必須回到工作使用我的工作版本的laravel(幸好我有/ vendor文件的備份副本;他們沒有被添加到我的github回購)。

但是,任何幫助都將不勝感激,因爲我確實需要使用這些軟件包,並且我知道如果我再次嘗試更新,將來會遇到問題。

編輯:而且注意到,我見過的各種問題的一個常見答案是刪除bootstrap/compiled.php。那麼,不管我從來沒有見過這個文件生成過,更不用說能夠刪除它了。

我甚至嘗試手動運行artisan命令(返回一個空白結果),並從未生成文件。

回答

6

獲得答案是近乎不可能的。經過廣泛的測試後,我仍然發現自己沒有接近答案。我甚至不知道這是否是正確的答案,但我最終得到了工匠正確運行。這就是我所做的。

首先,我安裝使用作曲家Laravel的全新副本(4.1):

composer create-project laravel/laravel --prefer-dist 

使用此作曲家文件(基本上沒有包裝要求同上):

{ 
    "name": "laravel/laravel", 
    "description": "The Laravel Framework.", 
    "keywords": ["framework", "laravel"], 
    "license": "MIT", 
    "require": { 
     "laravel/framework": "4.1.*" 
    }, 
    "autoload": { 
     "classmap": [ 
      "app/commands", 
      "app/controllers", 
      "app/models", 
      "app/database/migrations", 
      "app/database/seeds", 
      "app/tests/TestCase.php" 
     ] 
    }, 
    "scripts": { 
     "post-install-cmd": [ 
      "php artisan optimize" 
     ], 
     "pre-update-cmd": [ 
      "php artisan clear-compiled" 
     ], 
     "post-update-cmd": [ 
      "php artisan optimize" 
     ], 
     "post-create-project-cmd": [ 
      "php artisan key:generate" 
     ] 
    }, 
    "config": { 
     "preferred-install": "dist" 
    }, 
    "minimum-stability": "dev" 
} 

運行:

composer update --no-scripts 

其次:

composer update 

當我上傳它時,它不再向我拋出錯誤。

不幸的是,我無法獲取任何包。我認爲它是最新版本的Laravel中的一個bug,它非常令人討厭。我高度懷疑,從字面上每包4.1打破了,雖然它可能的,這就是問題所在:http://forums.laravel.io/viewtopic.php?pid=55313#p55313

另一種可能性,也就是運行作曲家安裝第一:

composer install --no-scripts 

的「--no-腳本「是可選的,如果它不正常安裝 - 不需要腳本。有一次,我刪除了我的供應商文件夾並運行了作曲家安裝,但我無法弄清楚。無論如何,我不能使用我添加到app/libraries文件夾(我注意到默認情況下不存在)的庫,我現在也不能使用任何composer軟件包。我真的不知道如何讓我的PDF腳本現在可以工作......或者至少在Laravel修復這些問題之前。

+0

正在運行'''作曲者更新 - 無腳本'''爲我解決了它。我有一個軟件包正在運行一個工匠腳本,如果我刪除了這個軟件包,那麼這個腳本就會失敗 – dannio