【发布时间】:2018-01-26 21:39:56
【问题描述】:
我想在 laravel 的控制器中执行以下命令:composer update,但是这个命令不起作用。
另一方面,composer info 命令完美运行。
当我在命令提示符中执行 composer update 时,我的所有依赖项都在 laravel 供应商文件中正确更新,但是当我尝试在我的控制器中执行 composer update 时,没有任何反应。
这是我的代码:
$data['output'] = shell_exec( 'cd '. base_path() .' && composer update' );
dd($data);
结果如下:
array:1 [▼
"output" => null
]
您能帮我理解为什么composer update 在控制器中不起作用吗?
我想在没有命令提示符的情况下更新控制器中的依赖项。
谢谢。
【问题讨论】:
-
“不起作用”不是一个好的描述。什么不起作用?有什么错误吗?
-
shell_exec 是否返回 null?
-
是的,抱歉,由于我的描述不佳,shell_exec 返回“输出”=> null
-
CLI 中的用户很可能与通过网络服务器执行代码的用户不同。在正确的情况下,这也可能是一个想法的绝对灾难......
-
好的,谢谢,我想制作一个界面,以便网站管理员可以轻松安装软件包。他只需要提供这样的信息:SSH 链接 ->
git@bitbucket.org:xxxxx/xxxxxx.git和安装版本 ->"xxxxx/xxxxxx": "0.1.*"。并且 Web 应用程序必须自己更新 composer.json 和 conf/app.php 文件,然后执行命令composer update。但是,可能无法在控制器中运行“composer update”命令(作为预防措施)。你怎么看?
标签: php laravel controller composer-php shell-exec