Voici l'erreur que j'obtiens:
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]
Cela montre après:
Writing lock file
Generating autoload files
J'ai essayé de supprimer tous mes dossiers dans mon dossier de fournisseur. Mais cela n'a rien changé.
J'utilise le serveur MAMP sur mon Mac OS X.
PHP version 5.4.10
mcrypt 2.5.8
J'ai juste essayé "Sudo composer update --verbose" et j'ai eu cette erreur:
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
Voici l'erreur que j'ai trouvée dans mes journaux d'erreur 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
Je viens d'essayer de tester mon compositeur:
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
Vient d’appliquer la recommandation dans le message d’erreur de la dernière commande. Maintenant, tout se passe comme OK.
Je viens d'essayer ceci:
curl -sS https://getcomposer.org/installer | php -- --check
#!/usr/bin/env php
All settings correct for using Composer
J'obtiens maintenant de nouvelles erreurs dans mes journaux d'erreur 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
Je crois que cette erreur résulte de l'impossibilité de trouver mcrypt
.
Script php artisan optimise la gestion de l'événement post-update-cmd renvoyé avec une erreur
Apparemment, installer mcrypt
n'est pas si facile.
Installez le package php5-mcrypt
ou vérifiez qu'il a été installé correctement.
Sudo apt-get install php5-mcrypt
Vérifiez si mcrypt
a été installé et activé pour PHP:
php --ri mcrypt
Vous avez terminé s'il est écrit:
mcrypt support => enabled
Sinon, continuez s'il est écrit:
Extension 'mcrypt' not present.
Vérifiez que mcrypt.ini
est présent dans le répertoire mods-available
de PHP.
ls /etc/php5/mods-available/mcrypt.ini
Si elle indique No such file or directory
, créez un lien symbolique de mcrypt.ini
vers le répertoire mods-available
de PHP.
Sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
Activer le mod.
Sudo php5enmod mcrypt
Redémarrez Apache.
Sudo service Apache2 restart
Vérifiez à nouveau si mcrypt
est activé.
php --ri mcrypt
Les dernières étapes ont été inspirées par Vuk Stanković .
D'accord, nous avons effectué d'autres recherches avec Google et il semble que cela soit lié au chargement automatique en mémoire cache de Composer. Vous pouvez résoudre ce problème de différentes manières.
composer dump-autoload
Cela recréerait le chargement automatique et vous devrait résoudre votre problème pour le moment.
Si cela ne résout pas le problème, essayez de supprimer everything et réinstallez Fresh: [ref]
rm -rf /path/to/composer.lock /path/to/vendor/
composer install
Cela recréerait à peu près tout.
Il semble que votre installation de laravel n’a pas fonctionné correctement et qu’une partie du composer.json
exécute les php artisan clear-compiled
et php artisan optimize
si votre application laravel ne fonctionne pas, le composeur échouera.
Essayez d’exécuter votre mise à jour du composeur sans appeler les scripts Laravel.
php composer update --no-scripts
Après cela, vous pouvez soit exécuter manuellement les commandes du bloc de scripts de votre composer.json. Sinon, vous pouvez simplement exécuter un standard
php composer update
à nouveau qui exécutera les scripts pour vous.
Pour résoudre ce problème, vous devez installer mcrypt
.
Dans Ubuntu, exécutez la commande suivante:
Sudo apt-get install php5-mcrypt
Puis mettez à jour le compositeur:
composer update
Une autre solution pour moi, régler xdebug.scream = 1
pose un problème:
1) Recherchez le fichier de configuration xdebug.
$ Sudo find / -name xdebug.ini
2) Editez le fichier en utilisant n’importe quel éditeur de texte.
$ Sudo vi /your_path/xdebug.ini
3) Définissez xdebug.scream = 0
4) Recharger le serveur
$ Sudo service Apache2 reload
J'avais un problème similaire lorsque j'essayais d'exécuter Composer Update et aucune des solutions ci-dessus n'avait fonctionné. Il s’avère que j’avais 2 sections obligatoires dans le fichier composer.json, ce qui est faux en réalité.
"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"
}
La combinaison des deux comme ci-dessous a résolu mon problème.
"require": {
"laravel/framework": "4.1.*",
"barryvdh/laravel-ide-helper": "1.*",
"zizaco/confide": "3.2.x",
"laravelbook/ardent": "dev-master",
"zizaco/entrust": "dev-master"
},
Si le problème persiste, essayez de supprimer le répertoire composer.lock et le répertoire des fournisseurs, puis exécutez la commande
mv ~/.composer/cache ~/.composer/cache.bak
Pour vider le cache du compositeur et enfin exécuter
Sudo composer install
Cela devrait résoudre le problème.