Erreur “permission refusée” à Laravel “nouveau” commandement, avec Homestead sur Vagrant

J’utilise Vagrant et Laravel Homestead avec Ubuntu 14.

Voici l’erreur que j’ai quand je lance laravel new :

 vagrant@homestead:~/sites$ laravel new chatty Crafting application... PHP Warning: file_put_contents(/home/vagrant/sites/laravel_e4dd1c8bc2e02a3e6897f5728f025b4a.zip): failed to open stream: Permission denied in /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php on line 120 PHP Stack trace: PHP 1. {main}() /home/vagrant/.config/composer/vendor/laravel/installer/laravel:0 PHP 2. Symfony\Component\Console\Application->run() /home/vagrant/.config/composer/vendor/laravel/installer/laravel:13 PHP 3. Symfony\Component\Console\Application->doRun() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:123 PHP 4. Symfony\Component\Console\Application->doRunCommand() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:192 PHP 5. Symfony\Component\Console\Command\Command->run() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:844 PHP 6. Laravel\Installer\Console\NewCommand->execute() /home/vagrant/.config/composer/vendor/symfony/console/Command/Command.php:259 PHP 7. Laravel\Installer\Console\NewCommand->download() /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php:53 PHP 8. file_put_contents() /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php:120 Warning: file_put_contents(/home/vagrant/sites/laravel_e4dd1c8bc2e02a3e6897f5728f025b4a.zip): failed to open stream: Permission denied in /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php on line 120 Call Stack: 0.0001 350512 1. {main}() /home/vagrant/.config/composer/vendor/laravel/installer/laravel:0 0.0159 1713096 2. Symfony\Component\Console\Application->run() /home/vagrant/.config/composer/vendor/laravel/installer/laravel:13 0.0186 1928584 3. Symfony\Component\Console\Application->doRun() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:123 0.0187 1928584 4. Symfony\Component\Console\Application->doRunCommand() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:192 0.0187 1928584 5. Symfony\Component\Console\Command\Command->run() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:844 0.0189 1930520 6. Laravel\Installer\Console\NewCommand->execute() /home/vagrant/.config/composer/vendor/symfony/console/Command/Command.php:259 0.0196 1930672 7. Laravel\Installer\Console\NewCommand->download() /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php:53 2.2559 2917832 8. file_put_contents() /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php:120 PHP Warning: ZipArchive::extractTo(): Permission denied in /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php on line 138 PHP Stack trace: PHP 1. {main}() /home/vagrant/.config/composer/vendor/laravel/installer/laravel:0 PHP 2. Symfony\Component\Console\Application->run() /home/vagrant/.config/composer/vendor/laravel/installer/laravel:13 PHP 3. Symfony\Component\Console\Application->doRun() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:123 PHP 4. Symfony\Component\Console\Application->doRunCommand() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:192 PHP 5. Symfony\Component\Console\Command\Command->run() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:844 PHP 6. Laravel\Installer\Console\NewCommand->execute() /home/vagrant/.config/composer/vendor/symfony/console/Command/Command.php:259 PHP 7. Laravel\Installer\Console\NewCommand->extract() /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php:54 PHP 8. ZipArchive->extractTo() /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php:138 Warning: ZipArchive::extractTo(): Permission denied in /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php on line 138 Call Stack: 0.0001 350512 1. {main}() /home/vagrant/.config/composer/vendor/laravel/installer/laravel:0 0.0159 1713096 2. Symfony\Component\Console\Application->run() /home/vagrant/.config/composer/vendor/laravel/installer/laravel:13 0.0186 1928584 3. Symfony\Component\Console\Application->doRun() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:123 0.0187 1928584 4. Symfony\Component\Console\Application->doRunCommand() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:192 0.0187 1928584 5. Symfony\Component\Console\Command\Command->run() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:844 0.0189 1930520 6. Laravel\Installer\Console\NewCommand->execute() /home/vagrant/.config/composer/vendor/symfony/console/Command/Command.php:259 2.2601 2736952 7. Laravel\Installer\Console\NewCommand->extract() /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php:54 2.2601 2737032 8. ZipArchive->extractTo() /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php:138 PHP Warning: ZipArchive::close(): Invalid or uninitialized Zip object in /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php on line 140 PHP Stack trace: PHP 1. {main}() /home/vagrant/.config/composer/vendor/laravel/installer/laravel:0 PHP 2. Symfony\Component\Console\Application->run() /home/vagrant/.config/composer/vendor/laravel/installer/laravel:13 PHP 3. Symfony\Component\Console\Application->doRun() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:123 PHP 4. Symfony\Component\Console\Application->doRunCommand() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:192 PHP 5. Symfony\Component\Console\Command\Command->run() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:844 PHP 6. Laravel\Installer\Console\NewCommand->execute() /home/vagrant/.config/composer/vendor/symfony/console/Command/Command.php:259 PHP 7. Laravel\Installer\Console\NewCommand->extract() /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php:54 PHP 8. ZipArchive->close() /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php:140 Warning: ZipArchive::close(): Invalid or uninitialized Zip object in /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php on line 140 Call Stack: 0.0001 350512 1. {main}() /home/vagrant/.config/composer/vendor/laravel/installer/laravel:0 0.0159 1713096 2. Symfony\Component\Console\Application->run() /home/vagrant/.config/composer/vendor/laravel/installer/laravel:13 0.0186 1928584 3. Symfony\Component\Console\Application->doRun() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:123 0.0187 1928584 4. Symfony\Component\Console\Application->doRunCommand() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:192 0.0187 1928584 5. Symfony\Component\Console\Command\Command->run() /home/vagrant/.config/composer/vendor/symfony/console/Application.php:844 0.0189 1930520 6. Laravel\Installer\Console\NewCommand->execute() /home/vagrant/.config/composer/vendor/symfony/console/Command/Command.php:259 2.2601 2736952 7. Laravel\Installer\Console\NewCommand->extract() /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php:54 2.2605 2737032 8. ZipArchive->close() /home/vagrant/.config/composer/vendor/laravel/installer/src/NewCommand.php:140 You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug Composer could not find a composer.json file in /home/vagrant/sites To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section Application ready! Build something amazing. 

Quand je lance sudo laravel new , il dit

 sudo: laravel: command not found 

Est-ce aussi le problème d’Ubuntu 14 installé dans Vagrant au lieu d’Ubuntu 16?

Modifier (après les commentaires kmasteryc):

Merci, mais j’ai aussi essayé votre composer create-project laravel/laravel project , mais maintenant je reçois cette erreur

 vagrant@homestead:~/sites$ composer create-project laravel/laravel chatty You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug Installing laravel/laravel (v5.2.31) [ErrorException] mkdir(): Permission denied create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--no-install] [--ignore-platform-reqs] [--] [] [] [] 

Ensuite, je l’ai exécuté avec sudo et cela a fonctionné, mais il donne cet avertissement maintenant:

 Do not run Composer as root/super user! See https://getcomposer.org/root for details 

Existe-t-il un moyen d’exécuter cette commande sans sudo car cela n’est pas recommandé ?

De plus, il ne s’agit pas de synchroniser le projet créé avec mon répertoire local et après avoir mappé chatty.dev dans le dossier “chatty” (hébergement virtuel), puis exécuté la vagrant provision errante, j’obtiens l’erreur ci-dessous.

 harman@manchanda:~/web/Homestead$ vagrant provision There are errors in the configuration of this machine. Please fix the following errors and try again: vm: * The host path of the shared folder is missing: ~/web/sites/chatty 

Et mon code est correct. Mais encore, s’il vous plaît voir ce code fichier homestead.yaml aussi:

 --- ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa folders: - map: ~/web/sites/lv to: /home/vagrant/sites/lv - map: ~/web/sites/v8 to: /home/vagrant/sites/v8 - map: ~/web/sites/chatty to: /home/vagrant/sites/chatty sites: - map: lv.app to: /home/vagrant/sites/lv/public - map: v8.app to: /home/vagrant/sites/v8/public - map: chatty.dev to: /home/vagrant/sites/chatty/public databases: - homestead - homestead_v8 - homestead_chatty 

Edit no 2:

Voici mon nouveau fichier Homestead.yaml après kmasteryc demandé modifier

 --- ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa folders: - map: ~/web/sites/ to: /home/vagrant/sites/ # - map: ~/web/sites/lv # to: /home/vagrant/sites/lv # - map: ~/web/sites/v8 # to: /home/vagrant/sites/v8 # - map: ~/web/sites/chatty # to: /home/vagrant/sites/chatty sites: - map: lv.app to: /home/vagrant/sites/lv/public - map: v8.app to: /home/vagrant/sites/v8/public # - map: chatty.dev # to: /home/vagrant/sites/chatty/public databases: - homestead - homestead_v8 # - homestead_chatty 

Note spéciale: J’ai déjà commenté cette chose bavarde.

Cette laravel new fonctionne maintenant (grâce aux sudo chmod 777 -R sites et sudo chown -R vagrant sites ), mais le problème persiste avec les dossiers Vagrant et non synchronisés.