这是我得到的错误:
Script php artisan optimize handling the post-update-cmd event returned with an error
[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]
这在之后显示:
Writing lock file
Generating autoload files
我尝试删除供应商文件夹中的所有文件夹。但这并没有改变任何事情。
我正在我的 Mac OS X 上使用 MAMP 服务器。
PHP 版本 5.4.10
麦克里普特 2.5.8
我刚刚尝试了"sudo 作曲家更新 --verbose",但出现此错误:
sudo composer update --verbose
Password:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Generating autoload files
Script php artisan optimize handling the post-update-cmd event returned with an error
[RuntimeException]
Error Output:
Exception trace:
() at phar:///usr/bin/composer/src/Composer/EventDispatcher/EventDispatcher.php:148
Composer'EventDispatcher'EventDispatcher->doDispatch() at phar:///usr/bin/composer/src/Composer/EventDispatcher/EventDispatcher.php:107
Composer'EventDispatcher'EventDispatcher->dispatchCommandEvent() at phar:///usr/bin/composer/src/Composer/Installer.php:289
Composer'Installer->run() at phar:///usr/bin/composer/src/Composer/Command/UpdateCommand.php:118
Composer'Command'UpdateCommand->execute() at phar:///usr/bin/composer/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:244
Symfony'Component'Console'Command'Command->run() at phar:///usr/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:897
Symfony'Component'Console'Application->doRunCommand() at phar:///usr/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:191
Symfony'Component'Console'Application->doRun() at phar:///usr/bin/composer/src/Composer/Console/Application.php:117
Composer'Console'Application->doRun() at phar:///usr/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:121
Symfony'Component'Console'Application->run() at phar:///usr/bin/composer/src/Composer/Console/Application.php:83
Composer'Console'Application->run() at phar:///usr/bin/composer/bin/composer:43
require() at /usr/bin/composer:15
这是我在PHP错误日志中发现的错误:
[04-Nov-2013 20:45:44 Europe/Berlin] PHP Fatal error: Class 'Patchwork'Utf8'Bootup' not found in /Applications/MAMP/htdocs/-----/bootstrap/autoload.php on line 46
我只是试图测试我的作曲家:
sudo composer diagnose
Password:
Checking platform settings: OK
Checking http connectivity: OK
Checking composer.json: FAIL
No license specified, it is recommended to do so. For closed-source software you may use "proprietary" as license.
Name "andrew13/Laravel-4-Bootstrap-Starter-Site" does not match the best practice (e.g. lower-cased/with-dashes). We suggest using "andrew13/laravel-4-bootstrap-starter-site" instead. As such you will not be able to submit it to Packagist.
Checking disk free space: OK
Checking composer version: OK
刚刚应用了最后一个命令的错误消息中的建议。现在一切都显示正常。
我刚刚尝试了这个:
curl -sS https://getcomposer.org/installer | php -- --check
#!/usr/bin/env php
All settings correct for using Composer
我现在在PHP错误日志中收到新错误:
[05-Nov-2013 05:45:45 Europe/Berlin] PHP Fatal error: Uncaught exception 'ReflectionException' with message 'Class config does not exist' in /Applications/MAMP/htdocs/---/bootstrap/compiled.php:165
Stack trace:
#0 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(165): ReflectionClass->__construct('config')
#1 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(142): Illuminate'Container'Container->build('config', Array)
#2 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(444): Illuminate'Container'Container->make('config', Array)
#3 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(233): Illuminate'Foundation'Application->make('config')
#4 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(3151): Illuminate'Container'Container->offsetGet('config')
#5 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(103): Illuminate'Exception'ExceptionServiceProvider->Illuminate'Exception'{closure}(Object(Illuminate'Foundation'Application))
#6 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(163): Illuminate'Container'Container->Illum in /Applications/MAMP/htdocs/---/bootstrap/compiled.php on line 165
此错误是由于找不到mcrypt
造成的。
脚本 php 工匠优化处理返回的更新后 cmd 事件并返回错误
显然,安装mcrypt
并不是那么容易。
- 安装
php5-mcrypt
包,或验证是否已正确安装。sudo apt-get install php5-mcrypt
检查是否已安装并启用 PHP
mcrypt
:php --ri mcrypt
如果它说:
mcrypt support => enabled
否则,如果显示以下内容,请继续:
Extension 'mcrypt' not present.
验证 PHP 的
mods-available
目录中是否存在mcrypt.ini
。ls /etc/php5/mods-available/mcrypt.ini
如果它说
No such file or directory
,请创建一个从mcrypt.ini
到PHPmods-available
目录的符号链接。sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
启用模组。
sudo php5enmod mcrypt
重新启动 apache。
sudo service apache2 restart
再次检查是否启用了
mcrypt
。php --ri mcrypt
最后的步骤受到武克·斯坦科维奇的启发。
好的,与谷歌做了一些进一步的研究,这似乎与作曲家的自动加载缓存有关。有多种方法可以解决此问题。
composer dump-autoload
这将为您重新创建自动加载内容,它现在应该可以解决您的问题。
如果这没有帮助,请尝试删除所有内容并重新安装:[ref]
rm -rf /path/to/composer.lock /path/to/vendor/
composer install
这将重新创建几乎所有内容。
看起来您的 laravel 安装没有正常运行,并且由于部分composer.json
运行php artisan clear-compiled
php artisan optimize
,如果您的 laravel 应用程序不起作用,则作曲家将失败。
尝试在不调用 Laravel 脚本的情况下运行作曲家更新。
php composer update --no-scripts
之后,您可以手动运行 composer.json 中的脚本块中的命令。否则,您可以只运行标准
php composer update
再次为您运行脚本。
要解决此问题,您需要安装 mcrypt
。
在 ubuntu 中执行以下命令:
sudo apt-get install php5-mcrypt
然后更新作曲家:
composer update
对我来说,设置xdebug.scream = 1
会带来问题:
1) 查找 xdebug 配置文件。
$ sudo find / -name xdebug.ini
2)使用任何文本编辑器编辑文件。
$ sudo vi /your_path/xdebug.ini
3) 设置xdebug.scream = 0
4) 重新加载服务器
$ sudo service apache2 reload
我在尝试运行作曲家更新时遇到了类似的问题,但上述解决方案均无效。事实证明,我的 composer.json 中有 2 个需要部分,这实际上是错误的。
"require": {
"laravel/framework": "4.1.*"
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable",
"require": {
"barryvdh/laravel-ide-helper": "1.*",
"zizaco/confide": "3.2.x",
"laravelbook/ardent": "dev-master",
"zizaco/entrust": "dev-master"
},
"require-dev": {
"way/generators": "2.*",
"fzaninotto/faker": "1.3.*@dev"
}
将两者结合起来,如下所示解决了我的问题。
"require": {
"laravel/framework": "4.1.*",
"barryvdh/laravel-ide-helper": "1.*",
"zizaco/confide": "3.2.x",
"laravelbook/ardent": "dev-master",
"zizaco/entrust": "dev-master"
},
如果仍有问题,请尝试删除 composer.lock 和供应商目录并运行
mv ~/.composer/cache ~/.composer/cache.bak
清除作曲家缓存并最终运行
sudo composer install
这应该可以解决问题。