ここに私が得ているエラーがあります:
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
mcrypt 2.5.8
私は「Sudo composer update --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
最後のコマンドのエラーメッセージに推奨事項を適用しました。これで、すべてが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
が見つからないことが原因と考えられます。
エラーで返されたpost-update-cmdイベントの処理を最適化するスクリプトphp artisan
どうやらmcrypt
のインストールはそれほど簡単ではないようです。
php5-mcrypt
パッケージをインストールするか、正しくインストールされていることを確認してください。
Sudo apt-get install php5-mcrypt
mcrypt
がインストールされ、PHPで有効になっているかどうかを確認します。
php --ri mcrypt
それが言うならあなたは終わっています:
mcrypt support => enabled
それ以外の場合は、次のように表示されたら続行します。
Extension 'mcrypt' not present.
PHPのmcrypt.ini
ディレクトリにmods-available
が存在することを確認します。
ls /etc/php5/mods-available/mcrypt.ini
No such file or directory
と表示されている場合は、mcrypt.ini
からPHPのmods-available
ディレクトリへのシンボリックリンクを作成します。
Sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
Modを有効にします。
Sudo php5enmod mcrypt
Apacheを再起動します。
Sudo service Apache2 restart
mcrypt
が有効になっているかどうかをもう一度確認してください。
php --ri mcrypt
最後のステップは VukStanković に触発されました。
さて、Googleでさらに調査を行いましたが、これはComposerのオートロードキャッシングに関係しているようです。これを解決するには、さまざまな方法があります。
composer dump-autoload
これはあなたのためにオートロードのものを再作成し、それは今のところあなたの問題を解決しますはずです。
これで問題が解決しない場合は、everythingを削除して、再インストールしてみてください。 [ref]
rm -rf /path/to/composer.lock /path/to/vendor/
composer install
これはほぼすべてを再作成します。
laravelインストールが正しく実行されなかったようです。composer.json
の一部がphp artisan clear-compiled
とphp artisan optimize
を実行しているため、laravelアプリケーションが機能していない場合、composerは失敗します。
composerスクリプトを呼び出さずに、Laravel updateを実行してみてください。
php composer update --no-scripts
その後、composer.jsonのスクリプトブロックからコマンドを手動で実行できます。それ以外の場合は、標準を実行できます
php composer update
ここでもスクリプトが実行されます。
これを修正するには、mcrypt
をインストールする必要があります。
ubuntuで次のコマンドを実行します。
Sudo apt-get install php5-mcrypt
次にcomposerを更新します。
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 updateを実行しようとしたときに同様の問題があり、上記の解決策のいずれも機能しませんでした。実際に間違っているcomposer.jsonにrequireセクションが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"
}
以下のように2つを組み合わせると問題が解決しました。
"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
composerキャッシュをクリアして最後に実行するには
Sudo composer install
これで問題が解決するはずです。