我想在我的 Ubuntu 机器上安装 PHP 5.2.17 和 PHP 5.3.5,并根据需要进行切换。我该如何实现?
答案1
您可以使用 php 版本管理器来实现这一点。有多种版本管理器可供选择,例如:
- https://github.com/phpbrew/phpbrew
- https://github.com/CHH/phpenv
- https://github.com/wilmoore/php-version
我最喜欢的是 phpbrew。希望这能有所帮助。
答案2
你能同时运行 2 个不同的 PHP 版本,但这并不像 apt-get 那样简单。您需要运行一个单独安装的版本,并根据 apache 配置中的设置提供服务。
例如,您可以使用 fastcgi 执行此操作:基本上,您要查找的是您在这一页。您可以根据所需的情况/端口/域在配置中添加不同的处理程序。安装两个版本后,诀窍是以下步骤:
===来自该页面==
- 最后一步是创建虚拟主机。最后我在 /etc/apache2/sites-enabled 中有三个文件:000-default、php5.3.17 和 php5.4.7,内容如下
默认:
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www
<Directory "/var/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
AddHandler php-cgi .php
Action php-cgi /php-fcgi/php5317.fcgi
</Directory>
</VirtualHost>
php5.3.17:
<VirtualHost *:80>
ServerName 5317.localhost
DocumentRoot /var/www
<Directory "/var/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
AddHandler php-cgi .php
Action php-cgi /php-fcgi/php5317.fcgi
</Directory>
</VirtualHost>
php5.4.7:
<VirtualHost *:80>
ServerName 547.localhost
DocumentRoot /var/www
<Directory "/var/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
AddHandler php-cgi .php
Action php-cgi /php-fcgi/php547.fcgi
</Directory>
</VirtualHost>
请参阅完整安装相关问题。不要忘记查看标题中的两个链接,它们看起来像不错的教程(但压缩程度较低)。这和那
(不要因为链接的问题很大而没有可接受的答案而感到沮丧。该方法应该(并且确实)可以正常工作,但是用户忘记使用<?php
并<?
关闭了短标签,请参阅评论)
答案3
我安装了 php 5.6 和 7.0,但除了所有提示之外,它一直运行 5.6,所以这个命令挽救了局面(在我的情况下,我选择了选项 1 并重新启动 apache):
sudo update-alternatives --config php
答案4
来自这篇文章,我只是按我所服务的顺序排列命令并进行解释(Ubuntu 12.04)
此方法可为您提供:
带菜单的脚本,允许在安装的 php 版本之间切换(不能同时切换)
您的服务器上安装了各种 PHP 版本
分离的 conf 文件
安装您需要的所有版本(我有两个)
安装依赖项:
sudo apt-get install flex apache2-threaded-dev libxml2-dev apache2 apache2-mpm-prefork apache2-threaded-dev apache2-utils apache2.2-bin apache2.2-common
首次安装 PHP 5.3。下载 php 源代码
md5sum Downloads/php-5.3.10.tar.bz2
mkdir ~/Sources
cd ~Sources/
cp -Rf ../Downloads/php-5.3.10.tar.bz2 .
tar xjf php-5.3.10.tar.bz2
cd php-5.3.10/
sudo mkdir /usr/local/php/php_5.3.10
首次安装PHP5.6。下载php源
md5sum Downloads/php-5.6.11.tar.bz2
mkdir ~/Sources
cd ~Sources/
cp -Rf ../Downloads/php-5.6.11.tar.bz2 .
tar xjf php-5.6.11.tar.bz2
cd php-5.6.11/
sudo mkdir /usr/local/php/php-5.6.11
脚本管理器版本 PHP:创建一个名为的文件php.sh
并将其放入/bin/
:
#!/bin/bash
opcion=0
cat << CABECERAMENU
Opciones del menu
1 => PHP 5.3.10
2 => PHP 5.6.11
CABECERAMENU
echo -n "Ingrese su eleccion: "
read opcion
echo
case $opcion in
"1")
rm /etc/apache2/php.conf
ln -s /usr/local/php/php_5.3.10.conf /etc/apache2/php.conf
/etc/init.d/apache2 restart
;;
"2")
rm /etc/apache2/php.conf
ln -s /usr/local/php/php_5.6.11.conf /etc/apache2/php.conf
/etc/init.d/apache2 restart
;;
*)
echo "Opcion no valida"
;;
esac
编译安装php5.3:
cd ~/Sources/php-5.3.10/
sudo ./configure --prefix=/usr/local/php/php_5.3.10 --with-config-file-path=/usr/local/php/php_5.3.10/lib --with-mysql --with-libdir=/lib/x86_64-linux-gnu --with-apxs2=/usr/bin/apxs2 --enable-zip --with-gd --with-curl --with-xmlrpc --with-freetype-dir=/usr/lib/x86_64-linux-gnu --with-jpeg-dir=/usr/lib/x86_64-linux-gnu --with-pdo-mysql --with-pdo-pgsql --enable-soap
sudo make clean
sudo make
sudo ls -lhart /usr/lib/apache2/modules/libphp5.*
sudo rm -rf /usr/lib/apache2/modules/libphp5.*
sudo make install
sudo ls -lhart /usr/lib/apache2/modules/libphp5.*
sudo rm -rf /usr/local/php/php-5.3.10/modules/libphp5.so
sudo mv /usr/lib/apache2/modules/libphp5.so /usr/local/php/php_5.3.10/modules/
ls -lhart /usr/local/php/php_5.3.10/modules/
sudo a2dismod php5
sudo service apache2 restart
编译安装php5.6
cd ~/Sources/php-5.6.11
sudo ./configure --prefix=/usr/local/php/php_5.6.11 --with-config-file-path=/usr/local/php/php_5.6.11/lib --with-mysql --with-libdir=/lib/x86_64-linux-gnu --with-apxs2=/usr/bin/apxs2 --enable-zip --with-gd --with-curl --with-xmlrpc --enable-calendar --enable-sockets --with-freetype-dir=/usr/lib/x86_64-linux-gnu --with-jpeg-dir=/usr/lib/x86_64-linux-gnu --with-pdo-mysql --with-pdo-pgsql --enable-soap
sudo make clean
sudo make
sudo ls -lhart /usr/lib/apache2/modules/libphp5.*
sudo rm -rf /usr/lib/apache2/modules/libphp5.*
sudo make install
sudo ls -lhart /usr/lib/apache2/modules/libphp5.*
sudo rm -rf /usr/local/php/php_5.6.11/modules/libphp5.so
sudo mv /usr/lib/apache2/modules/libphp5.so /usr/local/php/php_5.6.11/modules
ls -lhart /usr/local/php/php_5.6.11/modules
sudo a2dismod php5
sudo service apache2 restart
让我们使用它们:
$ sudo php.sh
Opciones del menu
1 => PHP 5.3.10
2 => PHP 5.6.11
Ingrese su eleccion: 1
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName