在 php5-fpm 中加载扩展

Loading extensions in php5-fpm

我正在 Nginx/php5-fpm/ubuntu14.04 设置上试用 Zephir。我遵循了他们的教程,并设法轻松地编译了我的第一个 Zephir PHP 扩展。但是,当我尝试通过编辑 /etc/php5/fpm/php.ini 以包含

来启用新建的扩展时
extension=/path/to/test.so

在发出 php -m 时没有显示 test 扩展。然后我记得要安装 mcrypt 扩展我使用 php5enmod mcrypt。所以我去了 /etc/php5/mods-available 并创建了文件 test.ini

extension=/path/to/test.so

然后发出一个

php5enmod test

简单

service php5-fpm restart && php -m

稍后你会看到测试扩展出现了!一切都很好,但我仍然不明白 php5enmod 是如何发挥它的魔力的。它显然没有写入 php.ini 文件。我将非常感谢任何可能能够解释的人。

php5enmod 简单地从通常的 conf.d(例如:/etc/php5/fpm/conf.d)目录创建一个符号链接以指向真实文件在 mods-available 中的位置,前缀为数字指示模块的优先级(默认值:20)。

我不小心运行php5enmod没有sudo。错误信息很有趣:

rolf@two:/etc/php5$ php5enmod curl
ln: failed to create symbolic link '/etc/php5/fpm/conf.d/20-curl.ini': Permission denied
rm: cannot remove '/var/lib/php5/modules/fpm/disabled_by_maint/curl': Permission denied