2013-12-17 34 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