在 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
。如果安装脚本没有为您创建这些配置文件,则需要手动执行此操作。
在使用新版本之前,您可能应该删除旧软件包 - 以避免混淆正在使用的版本。