用自编译版本替换通过包管理器安装的 PHP

用自编译版本替换通过包管理器安装的 PHP

在 Ubuntu 10.10 vm 上,我通过包管理器安装了 PHP 5.3(通过安装了整个 lamp 堆栈tasksel install lamp),以便快速测试一些项目。

现在我需要一个更新的版本,PHP 5.4 beta,从源代码编译。我下载了源代码,通过以下方式编译和安装configure --prefix=/usr && sudo make install

这对于现在使用 PHP 5.4 二进制文件的 cli 版本有效,但正如我所料,它并没有取代 apache 正在使用的版本,所以 apache 仍然使用 PHP 5.3。

我怎样才能找出通过tasksel安装的版本是如何编译的/我需要做什么才能升级与 apache 一起使用的 PHP 版本?

答案1

如果 Ubuntu 提供的版本仍在被 Apache 使用,那么像这样的 php 页面应该会为您提供构建选项:

<?php
phpinfo();
?>

从源代码构建时,我很少提供自己的前缀,因为默认前缀/usr/local或 什么的通常很容易区分这是一个手动编译的包。这也是路径中较早的部分,因此如果您手动编译了包管理器也提供的内容 - 除非指定了完整路径,否则手动编译的程序将是首选程序。如果我确实提供了前缀,它可能是/opt

构建并安装 php 后,您需要重新启动 Apache 以便它加载新版本的库。

Ubuntu 提供的软件包将添加两个文件来设置 Apache 使用 php:

/etc/apache2/mods-available/php5.load
/etc/apache2/mods-available/php5.conf

+ 指向 中放置的这些文件的符号链接/etc/apache2/mods-enabled。Apache 还将依次加载 中的所有文件mods-enabled。如果安装脚本没有为您创建这些配置文件,则需要手动执行此操作。

在使用新版本之前,您可能应该删除旧软件包 - 以避免混淆正在使用的版本。

相关内容