在基于的LAMP 应用程序Symfony2
中,我需要在管理面板中提供特定的Web 服务来更新由管理的“按需”特定依赖项Composer
(~like plugins update in WordPress
admin panel)。
应用程序由真实用户部署在服务器上(应用程序文件所有者不是www-data
)。
我认为这些解决方案:
- Apache 用户直接运行 Composer shell 命令(shell_exec、Symfony/Process):
composer.lock
必须对 Apache 用户是可写的$COMPOSER_HOME
必须为 Apache 用户定义和可写路径- 所有相关的供应商依赖文件必须对 Apache 用户是可写的
- Apache 用户应该能够使用带有 SSH 协议的 GIT 客户端
- ...也许我不认为其他观点
- Apache 用户以真实用户身份运行 Composer shell 命令,使用 sudo
sudo
必须配置为允许 apache 用户(仅)以指定的真实用户身份执行 composer(以另一个用户身份运行 shell 命令或更改 Apache 的用户?)- ...
- 使用第三方工具、cronjob 或事件驱动 I/O (
ReactPHP
?)
我不确定这些解决方案是否良好、安全且易于部署。
对你来说最好的方法是什么?欢迎任何建议/想法!谢谢。