Я получил ошибку «Отказано в доступе» при запуске composer в Ubuntu 16 - PullRequest
0 голосов
/ 17 июня 2019

Я установил Ubuntu 16 под AWS и попытался установить приложение laravel 5.8, но при открытии сервера с помощью команды

ssh  -i /home/user/pemkeys.pem

я получил ошибку "Отказано в доступе" при запуске composer

ubuntu@ip-172-31-34-88:/var/www/html/lprods$ clear
ubuntu@ip-172-31-34-88:/var/www/html/lprods$ sudo chmod -R 775 /var/www/html/lprods/
ubuntu@ip-172-31-34-88:/var/www/html/lprods$ composer install 
Cannot create cache directory /home/ubuntu/.composer/cache/repo/https---packagist.org/, or directory is not writable. Proceeding without cache
Cannot create cache directory /home/ubuntu/.composer/cache/files/, or directory is not writable. Proceeding without cache
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update


  [ErrorException]                                                                                                  
  file_put_contents(/var/www/html/lprods/vendor/composer/installed.json): failed to open stream: Permission denied  


install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--ignore-platform-reqs] [--] [<packages>]...

ubuntu@ip-172-31-34-88:/var/www/html/lprods$ whoami
ubuntu
ubuntu@ip-172-31-34-88:/var/www/html/lprods$ lsb_release -d; uname -r; uname -i
Description:    Ubuntu 16.04.6 LTS
4.4.0-1084-aws
x86_64

Насколько далеконасколько я помню, запускать

composer install

под root не очень хорошая идея.Какие шаги я должен предпринять, чтобы правильно установить мое приложение?

ОБНОВЛЕНО: 1) Мой каталог проекта:

$ cd /var/www/html/lprods
$ ls -ld
drwxrwxrwx 16 root root 4096 Jun 17 12:34 .

(что означают эти выходные данные)

$ ls -la
total 600
drwxrwxrwx  16 root root   4096 Jun 17 12:34 .
drwxr-xr-x   4 root root   4096 Jun 17 11:42 ..
-rwxrwxrwx   1 root root    625 Jun 17 12:03 .env
-rwxrwxrwx   1 root root    521 Jun 17 11:42 .env.example
drwxrwxrwx   8 root root   4096 Jun 17 11:42 .git
-rwxrwxrwx   1 root root    111 Jun 17 11:42 .gitattributes
-rwxrwxrwx   1 root root    135 Jun 17 11:42 .gitignore
-rwxrwxrwx   1 root root    122 Jun 17 11:42 .htaccess
drwxrwxrwx   3 root root   4096 Jun 17 11:42 Modules
-rwxrwxrwx   1 root root   1110 Jun 17 11:42 Release.key
drwxrwxrwx   2 root root   4096 Jun 17 11:42 __SQL
drwxrwxrwx  10 root root   4096 Jun 17 11:42 app
-rwxrwxrwx   1 root root   1646 Jun 17 11:42 artisan
drwxrwxrwx   3 root root   4096 Jun 17 11:42 bootstrap
-rwxrwxrwx   1 root root    430 Jun 17 11:42 code.html
-rwxrwxrwx   1 root root    186 Jun 17 11:42 code.php
-rwxrwxrwx   1 root root   5746 Jun 17 11:42 code.txt
-rwxrwxrwx   1 root root   8244 Jun 17 11:42 commands.txt                                                                                                                                                              
-rwxrwxrwx   1 root root   1953 Jun 17 11:42 composer.json                                                                                                                                                             
-rwxrwxrwx   1 root root 187263 Jun 17 11:42 composer.lock                                                                                                                                                             
drwxrwxrwx   2 root root   4096 Jun 17 11:42 config                                                                                                                                                                    
drwxrwxrwx   5 root root   4096 Jun 17 11:42 database                                                                                                                                                                  
-rwxrwxrwx   1 root root   2860 Jun 17 11:42 env.txt                                                                                                                                                                   
-rwxrwxrwx   1 root root   4236 Jun 17 11:42 good.html                                                                                                                                                                 
-rwxrwxrwx   1 root root     83 Jun 17 11:42 lprods.sublime-project                                                                                                                                                    
-rwxrwxrwx   1 root root   8460 Jun 17 11:42 lprods.sublime-workspace                                                                                                                                                  
-rwxrwxrwx   1 root root    388 Jun 17 11:42 md.txt                                                                                                                                                                    
drwxrwxrwx 834 root root  36864 Jun 17 11:42 node_modules
-rwxrwxrwx   1 root root   1114 Jun 17 11:42 package.json
-rwxrwxrwx   1 root root   1055 Jun 17 11:42 phpunit.xml
drwxrwxrwx  11 root root   4096 Jun 17 11:42 public
-rwxrwxrwx   1 root root   1465 Jun 17 11:42 q.twig
drwxrwxrwx   5 root root   4096 Jun 17 11:42 resources
drwxrwxrwx   2 root root   4096 Jun 17 11:42 routes
-rwxrwxrwx   1 root root    563 Jun 17 11:42 server.php
drwxrwxrwx   6 root root   4096 Jun 17 11:42 storage
drwxrwxrwx   4 root root   4096 Jun 17 11:42 tests
drwxrwxrwx  46 root root   4096 Jun 17 11:58 vendor
-rwxrwxrwx   1 root root   1549 Jun 17 11:42 webpack.mix.js
-rwxrwxrwx   1 root root 204808 Jun 17 11:42 yarn.lock

2) Я удалил dirs:

rm -R vendor
rm -R /home/ubuntu/.composer

и после этого запустил в своем приложении

composer install

, мой проект был успешно установлен.Не могли бы вы дать некоторые объяснения, почему так?

Спасибо!

1 Ответ

0 голосов
/ 19 июня 2019

вы можете использовать sudo composer update, если возникает отказ в разрешении.или вы должны добавить composer глобально, например composer global require laravel/installer, и можете легко получить доступ к композитору из любого места, также попробуйте изменить разрешение проекта, например sudo chown -R user:user project

.
...