【发布时间】:2014-07-04 09:09:48
【问题描述】:
我有一个可以下载并安装在服务器上的网络应用程序。
我不知道有问题的服务器,我所能做的就是假设,所以让我们这样做吧。
服务器在共享主机上 没有作曲家 无法安装 npm 之类的东西 用户不知道 CLI 是什么
考虑到这一点,我创建了一个 PHP 脚本,它将下载 composer 然后安装依赖项。
脚本只使用exec()
问题在于,为了安装依赖项,根文件夹需要是可写的,因为 Apache 不拥有该目录,并且正如有人指出的那样,这是一个安全漏洞。
我需要找到一种从 apache 安装依赖项的方法。不确定这是否可行,但我们不胜感激。
这是我下载composer并安装依赖项的代码:
mkdir('composer', 0777);
exec('curl -sS https://getcomposer.org/installer | php -- --install-dir=' . __DIR__ . '/composer');
exec('COMPOSER_HOME=' . __DIR__ . ' php composer/composer.phar install -d ' . dirname(__DIR__), $out, $return)
以上代码从/public 运行,并在其中创建一个名为composer 的目录。由于它归 apache 所有,我可以将 .phar 安装到其中并从那里调用它。
【问题讨论】:
-
这确实是个坏主意,但这可能会有所帮助stackoverflow.com/questions/17219436/…
标签: php apache composer-php command-line-interface