我有一个用于我的应用程序的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
时,该命令运行。但是,如果我使用shell_exec
通过PHP脚本来运行此命令的端点,则该命令不起作用。
有没有办法让apache
用户自己运行此命令?
这应该可以通过修改sudoers文件可行。
visudo
添加行:
ec2-user ALL=(apache) NOPASSWD: /path/to/script.sh
不要忘记检查Apache用户是否确实在Laravel目录下具有写作特权。作曲家将尝试在"供应商"目录中写入。
问候。