![如何配置本地 Web 服务器,使其能够在一个 PHP 版本与另一个 PHP 版本之间切换](https://linux22.com/image/522907/%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E6%9C%AC%E5%9C%B0%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%8C%E4%BD%BF%E5%85%B6%E8%83%BD%E5%A4%9F%E5%9C%A8%E4%B8%80%E4%B8%AA%20PHP%20%E7%89%88%E6%9C%AC%E4%B8%8E%E5%8F%A6%E4%B8%80%E4%B8%AA%20PHP%20%E7%89%88%E6%9C%AC%E4%B9%8B%E9%97%B4%E5%88%87%E6%8D%A2.png)
我正在使用 PHP eclipse IDE 开发一个 Web 应用程序。例如,我想从一个 PHP 版本切换到位于不同位置的另一个版本。
以下是我的工作环境:
1)拥有 Centos 操作系统
2)安装 centos 系统时已经安装 PHP 5.1.6
3)以上PHP安装在/usr/bin/路径下
4)我已经在/opt/lampp 中安装了 LAMPP
5)在LAMPP中存在PHP 5.2.6版本
我想配置本地 Web 服务器,使得 lampp 应该选择 PHP 5.1.6(位于 /opt/lampp 中),但我不知道这个 PHP 版本的切换。
请告诉我如何在本地 Web 服务器中配置 PHP 版本的切换。我应该选择哪个配置文件来修改此更改。
多谢 !!!
—普拉文
答案1
Apache 已配置为加载 PHP 模块。在 CentOS 上,这是在 /etc/httpd/conf.d/php.conf 中配置的。查找以下行:
LoadModule php5_module modules/libphp5.so
这指向一个相对路径。使用以下命令查找 libphp5.so 的所有实例:
find / -name libphp5.so
然后,您应该能够找到 PHP 模块的两个版本。/usr/lib/httpd/modules 中的模块将是 Apache 当前正在使用的模块。/opt/lampp 下的模块(可能)将是您想要使用的模块。
然后,您可以更改上面的 LoadModule 指令以指向相应 PHP 模块的绝对路径,或者您可以直接将其复制到 /usr/lib/httpd/modules 中的模块。无论哪种方式,请记住在进行更改后重新启动 Apache,或者停止 Apache,然后进行更改,并再次启动 Apache。
第三个选择是使用 yum 将服务器上的 PHP 更新到较新的版本 - 这应该会覆盖标准位置中的 PHP 版本,并且在将来提供更直接的更新路径。
答案2
最简单的解决方案是添加 5.1.6 的 CGI 处理程序,然后使用不同的文件扩展名在 mod_php (5.2) 和 CGI 版本之间进行选择。例如:
Action phpa-exe /usr/bin/php
AddHandler phpa phpa-exe
但请记住,CGI 版本的运行速度会比模块慢很多。
此外 - 两个引擎可能会尝试加载相同的 php.ini 文件 - 并且可能加载相同的扩展集(这可能会失败)。因此,您可能需要使用类似以下内容:
Action phpa-exe "/usr/bin/php -c /etc/5.1.6/php.ini"
C。