gpt4 book ai didi

php - php.ini 上的分隔符包含路径

转载 作者:搜寻专家 更新时间:2023-10-31 22:10:23 26 4
gpt4 key购买 nike

我目前正在一个企业内安装颠覆协议(protocol),一些用户在本地 Wamp 服务器上使用 Windows 开发,而其他用户则使用本地 Lamp 服务器。主站点在 linux 服务器上运行。

我遇到的问题是在 php.ini 文件中设置包含路径。由于某些文件会即时更改此设置,这会变得很痛苦。

Windows 机器在包含路径中需要分号 (;) 分隔符,而 linux 机器需要冒号 (:)。

有什么方法可以更改 Windows 机器的配置以使用冒号作为包含路径分隔符?

最佳答案

一切皆有可能,但在这种情况下,解决方案可能比问题更痛苦。

路径分隔符被硬编码在 PHP 二进制可执行文件中。最可行的选择是从此处下载适用于 Windows 的 PHP 源代码:(重要:下载与您的 LAMP 系统使用的完全相同的版本)。

http://windows.php.net/download/

下载并解压后,打开文件:

/Zend/zend.h

查看第 41 行动态预编译器指令:

#ifdef ZEND_WIN32
# include "zend_config.w32.h"
# define ZEND_PATHS_SEPARATOR ';'
#elif defined(NETWARE)
# include <zend_config.h>
# define ZEND_PATHS_SEPARATOR ';'
#elif defined(__riscos__)
# include <zend_config.h>
# define ZEND_PATHS_SEPARATOR ';'
#else
# include <zend_config.h>
# define ZEND_PATHS_SEPARATOR ':'
#endif

您可以在那里更改窗口分隔符。

现在编译 PHP 包。可以使用 Visual Studio,按照以下步骤操作:

https://wiki.php.net/internals/windows/stepbystepbuild

理论上,您将能够使用与 Linux 计算机相同的分隔符在 WAMP 上运行 PHP。

但是还有一个问题……这个配置有什么问题吗?您将必须自己找到答案。

备选方案:

如果您不想更改影响整个系统的预编译器指令,您可以尝试使其“变脏”并仅更改第 413 行(aprox)上的“main/php_ini.c”。

static const char paths_separator[] = { ZEND_PATHS_SEPARATOR, 0 };

通过';'更改常量名称字符,并像上面描述的那样编译。

关于php - php.ini 上的分隔符包含路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13602224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com