如何在不重新编译的情况下启用 PHP 功能

如何在不重新编译的情况下启用 PHP 功能

我想使用信号量函数。安装说明如下

默认情况下不启用对这些函数的支持。要启用 System V 信号量支持,请使用选项 --enable-sysvsem 编译 PHP。要启用 System V 共享内存支持,请使用选项 --enable-sysvshm 编译 PHP。要启用 System V 消息支持,请使用选项 --enable-sysvmsg 编译 PHP。

但是我正在运行 Linux 版 XAMPP。这是否意味着我无法使用信号量函数?我还想知道具体原因为什么必须重新编译整个 PHP,而不是调整 php.ini 设置或添加新模块。

答案1

但是我正在运行 Linux 版 XAMPP。这是否意味着我无法使用信号量函数?

完全不需要,你只需要获取一个具有可用扩展的 XAMPP 版本。或者,你可以自己编译 PHP。

我还想确切地知道为什么必须重新编译整个 PHP,而不是调整 php.ini 设置或添加新模块。

因为模块源是 PHP 源的一部分。然后,您将所有内容编译到 PHP 二进制文件中,而不是编译到共享库文件中。这只是模块的设计。要调整您编写的 php.ini,您需要一个外部库文件,请参阅 PHPext目录。

答案2

您很可能必须重新编译。除非您能找到一个插件,但我认为 System V 共享内存不会以插件形式提供 :(

事实上,谷歌一下就找到了这个http://www.php.net/manual/en/sem.installation.php,所以不抱歉 :(

答案3

如果您无法启用某个选项,请查看您的配置文件(在本例中为 Windows 上的 php.conf 或 php.ini)。这将帮助您查看该选项是否已安装。如果未安装,请获取安装了此功能的 XAMPP 版本,否则您必须重新编译

答案4

除非您使用预编译的二进制文件作为系统文件,否则 PHP 会编译您为系统指定的所有内容。例如,如果您需要 MySQL 支持但不需要 MSSQL 支持数据库,则 PHP 将不会编译该类型数据库连接所需的 MSSQL 库。您可以使用所有选项编译 PHP 以获得所有库,但通常您不需要所有库。

简而言之,系统没有可供 PHP 加载的编译库。

是否需要重新编译取决于您是否能找到系统的预编译二进制文件。我不确定 Linux 版 XAMPP 是否可用。

同类型问题的ServerFault:
如何在不重新编译 PHP 的情况下启用--enable-dom?

相关内容