如何在 Bitnami 中将 PHP 5.5 切换为 PHP 5.4

如何在 Bitnami 中将 PHP 5.5 切换为 PHP 5.4

细节:

Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:        12.04
Codename:       precise
Bitnami used in AWS

我想安装 PHP 5.5,因此我执行下一步:

php -v
PHP 5.4.26 (cli) (built: Apr  8 2014 10:05:18)

sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install php5

Reading package lists... Done
Building dependency tree
Reading state information... Done

php5 is already the newest version.

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

当我使用命令时:

sudo apt-cache policy php5

我得到下一个:

php5:
  Installed: 5.5.29+dfsg-1+deb.sury.org~precise+3
  Candidate: 5.5.29+dfsg-1+deb.sury.org~precise+3
  Version table:
 *** 5.5.29+dfsg-1+deb.sury.org~precise+3 0
        500 http://ppa.launchpad.net/ondrej/php5/ubuntu/ precise/main amd64 Packages
        100 /var/lib/dpkg/status
     5.3.10-1ubuntu3.19 0
        500 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
     5.3.10-1ubuntu3 0
        500 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages

我通过以下方式检查文件:

locate bin/php

/opt/bitnami/php/bin/php
/opt/bitnami/php/bin/php-cgi
/opt/bitnami/php/bin/php-cgi.bin
/opt/bitnami/php/bin/php-config
/opt/bitnami/php/bin/php.bin
/opt/bitnami/php/bin/phpize
/opt/bitnami/php/sbin/php-fpm
/usr/bin/php
/usr/bin/php-cgi
/usr/bin/php-config
/usr/bin/php-config5
/usr/bin/php5
/usr/bin/php5-cgi
/usr/bin/phpize
/usr/bin/phpize5
/usr/lib/cgi-bin/php
/usr/lib/cgi-bin/php5
/usr/sbin/php5-fpm
/usr/sbin/php5dismod
/usr/sbin/php5enmod
/usr/sbin/php5query

which php

/opt/bitnami/php/bin/php

我还找到了/home/bitnami/.bashrc看到下一个 PATH 的文件:

PATH="/opt/bitnami/varnish/bin:/opt/bitnami/sqlite/bin:/opt/bitnami/php/bin:/op$
export PATH

因此,如果我使用命令,/usr/bin/php -v我将获得我的最新版本 PHP 5.5:

PHP 5.5.29-1+deb.sury.org~precise+3 (cli) (built: Sep  8 2015 12:58:11)

但如果我在我的网站中使用php -vphpinfo总是获取旧版本 PHP 5.4:

PHP 5.4.26 (cli) (built: Apr  8 2014 10:05:18)

我如何将 PHP 版本切换为 5.5?我需要做什么?我需要在设置中写入什么才能启用 PHP 5?或者需要在 Apache 设置中进行哪些更改?

答案1

简短的回答。

不要惊慌!如果您担心 Apache 服务器使用的 PHP 版本,则输出phpinfo()—通过 Apache Web 服务器 — 始终是您应该关注的。Apache PHP 模块和 PHP 命令行二进制文件是两件不同的事情互相不干扰。

事实上,只要你调整 Apache 使其正确加载,你就可以编译和加载你想要与 Apache 一起工作的各种 PHP 版本。当 Apache 解析 PHP 页面时,PHP 命令行界面永远不会发挥作用。

较长的答案。

您这样说:

但如果我在我的网站中使用php -vphpinfo总是获取旧版本 PHP 5.4:

PHP 5.4.26 (cli) (built: Apr  8 2014 10:05:18)

命令行中可用的 PHP 版本与作为模块加载的 PHP 版本完全无关。它们是完全独立的东西。

因此,如果您担心您的 Web 应用程序正在使用哪个版本的 PHP,如果phpinfo()显示版本 PHP 5.5.29,那么这就是您想要/需要的,100% 没问题。

PHP 的命令行版本是一个完全独立的系统项。因此,唯一重要的是 的输出phpinfo()

如果您尚未使用来检查 Apache 使用的 PHP 版本phpinfo(),这很容易。在服务器的 Web 根目录中,只需创建一个名为的文件,phpinfo.php如下所示;nano在此示例中使用:

nano phpinfo.php

现在只需将其添加到该文件并保存:

<?php

phpinfo();

?>

phpinfo.php然后通过 Web 浏览器 URL加载,如下所示:

http://hostname/phpinfo.php

然后检查返回的输出。应该会显示大量的配置详细信息,但您要检查的主要内容是标头,它应该显示类似“PHP 版本 5.4.26”或“PHP 版本 5.5.29”的内容。是您要关注的版本号。

如果由于某种原因您想要在 Apache 中使用不同于所显示的 PHP 版本,您需要做的就是libphp5.so在某处安装已编译的 Apache PHP 模块()并在系统的 Apache 配置中添加或调整此行:

LoadModule php5_module    /path/to/php/and/the/module/for/apache2/libphp5.so

只需将路径调整为libphp5.so— Apache 用来解析 PHP 的路径 — 然后重新启动 Apache 就可以了。

例如,有一次我必须从源代码编译 PHP 版本 5.1.6(支持 GD 库),以便在运行 PHP 5.3.5 的 Ubuntu 12.04 机器上使用。在服务器的 PHP 模块加载文件中:

sudo nano /etc/apache2/mods-available/php5.load

我有这样的台词:

# LoadModule php5_module        /usr/lib/apache2/modules/libphp535.so
LoadModule php5_module        /usr/lib/apache2/modules/libphp516-gd.so

注意其中一行被注释掉libphp535.so而另一行libphp516-gd.so被取消注释?我所做的是将默认的 PHP 5.3.5 libphp5.soApache 模块重命名为,并libphp535.so在名称中添加版本号,以便我可以将其作为参考,然后命名 PHP 5.1.6(支持 GD 库)模块,libphp516-gd.so这样我也知道它是什么。这样,我就可以在系统上同时使用它们。

而且 — 就像我一开始所说的那样 — 命令行中使用的 PHP 版本与 Apache PHP 模块完全无关。因此,您可以在系统中安装任意数量的不同版本的 Apache PHP 模块,随时可用;只需调整配置并重新启动 Apache,您就可以使用您指定的 Apache 应使用的任何 PHP 版本。

查找新的 PHP 5.5libphp5.so文件。

如果您不确定新的 PHP 5.5libphp5.so文件在哪里,请执行以下操作。首先,locate如果尚未安装,请在您的系统上安装:

sudo apt-get install locate

安装后,强制locate更新其数据库,如下所示:

sudo updatedb

等待locate重建文件系统数据库;它基本上就像 Mac OS X 中的 Spotlight,但适用于 Linux。完成后,进行如下locate搜索:libphp5.so

locate libphp5.so

您的设置中应该会返回几行内容:

/usr/lib/apache2/modules/libphp5.so
/path/to/the/php5.5/location/of/libphp5.so

第一个路径是默认的 PHP 5.4 libphp5.so,但另一个路径应该是 PHP 5.5 libphp5.soApache 模块的路径。知道该路径后,请php5.load像这样打开文件:

sudo nano /etc/apache2/mods-available/php5.load

将其中的路径调整为 PHP 5.5 Apache 模块的路径libphp5.so。然后像这样重新启动 Apache:

sudo service apache2 restart

然后通过 Web 浏览器再次检查该phpinfo.phpURL,如下所示:

http://hostname/phpinfo.php

相关内容