我想使用信号量函数。安装说明如下
默认情况下不启用对这些函数的支持。要启用 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?