标签归档:PHP

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'

继续阅读

在 Windows 2003 IIS6 下跑 PHP 太不不靠谱了

为朋友写了个PHP版本的 socket 程序,在自己的机器环境(WIN2K3, IIS6, PHP4.4.6,ISAPI 模式)下测试一切 OK,到了实际环境却提示 Call to undefined function socket_create(),初步判断应该 php_socket.dll 未加载的缘故,echo phpinfo 也没有 socket 相关信息。

确认在 php.ini 文件里已经将;extension=php_sockets.dll这一行的分号去掉了,可 socket 扩展死活不加载。除了 PHP 版本有些差别(实际环境是4.4.9版本),其它设置都一样,正想将 PHP 降到 4.4.6 版本,却突然出现 Service Unavailable 提示,难不成要重装IIS?

不甘心,于是 google 解决方案。参照 Tmouse·方枪枪 的做法:

打开IIS管理器 - 网站 - 右键属性 - 服务 - 勾上”以IIS5.0隔离模式运行www服务”

IIS 的 Service Unavailable 故障消失,更为有意思的是 php_socket 扩展可以正常加载了 -_-! 要不是情况特殊,以后打死我也不用 IIS 跑 PHP 了。