Composer 使用记录
随着 Composer 的流行,我们在项目中也开始使用它来管理第三方库依赖。出于安全考虑,我们一般都会在 php.ini 配置中禁用一些对站点安全有隐患的函数,而 Composer 正常运行所依赖的 phpinfo, getcwd, proc_open 等函数正处于被禁之列,怎么办呢?好在 php 命令行工具提供了 -c 和 -d 两个运行参数,可以使我们不致于因为安全的原因而无法使用 Composer 。
我们来看一下这两个参数的具体用途:
php --help Usage: php [options] -- [args...] php [options] -a -a Run as interactive shell -c path|file Look for php.ini file in this directory -n No php.ini file will be used -d foo[=bar] Define INI entry foo with value 'bar'
那么,现在我们有两种做法:
拷贝一份 php.ini 配置,譬如命名为 php.cli.ini,并在此配置中不禁用上文提及的函数即可:
php -c /etc/php.cli.ini composer.phar
或者指定 -d 参数,取消禁用函数:
php -d disable_functions="" composer.phar
显然我们应该使用后者,这样可以避免大部分的 php 设置被重复配置。但是每次运行 composer 都要输入这么一长串命令显然有些不太方便,而 composer.phar 本身是一个可执行文件,通常我们会把它拷贝成 /usr/local/bin/composer
然后直接执行,那么我们只需要改变 composer 的默认脚本解释器来达到我们想要的目的。
创建 /usr/local/bin/php
文件,输入以下内容保存并添加可执行权限:
#!/bin/sh
/usr/local/php/5.4/bin/php -d disable_functions="" "$@"
然后将该文件软链接到 /usr/bin/php
,此时便可直接执行 composer 命令而不受安全函数禁止限制了。
注:我们只在测试环境和预发布环境使用 composer,生产环境并不直接使用。
Comments
Hello. Good luck :
Leave a Reply