У меня есть webhook для моего приложения, которое в настоящее время делает это:
cd /var/www/html; git pull origin master; /usr/local/bin/composer dump-autoload; php artisan migrate
Я был в состоянии заставить все команды выше работать, кроме composer dump-autoload
команда.
Когда я захожу на сервер как ec2-user
и беги sudo -u apache /usr/local/bin/composer dump-autoload
команда запускается. Но если я попаду в конечную точку, которая запускает эту команду через скрипт PHP, используя shell_exec
, это не работает.
Есть ли способ для меня, чтобы получить apache
пользователь запускает эту команду самостоятельно?
Это должно быть выполнено путем изменения вашего файла sudoers.
visudo
Добавьте строку:
ec2-user ALL=(apache) NOPASSWD: /path/to/script.sh
Не забудьте проверить, есть ли у пользователя apache права на запись в каталоге Laravel. композитор попытается написать в каталоге «vendors».
С уважением.