我想在 php 5.2.x 上运行特定版本的代码,我已经尝试了很多方法但都没有成功。
请告诉我如何在 ubuntu 14.04 上安装 PHP 5.2
答案1
在 Ubuntu 14.04 上安装 PHP 5.2.17
基于: http://www.rasyid.net/2014/10/07/using-multiple-php-inside-one-ubuntu-machine/添加 PostgreSQL Apt 存储库(提供 postgresql-server-dev-9.4)
apt-get install -y wget
echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" > /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
安装依赖项
apt-get update
apt-get install -y gcc make build-essential \
libxml2-dev libcurl4-openssl-dev libpcre3-dev libbz2-dev libjpeg- dev \
libpng12-dev libfreetype6-dev libt1-dev libmcrypt-dev libmhash-dev \
freetds-dev libmysqlclient-dev unixodbc-dev postgresql-server-dev-9.4 \
libxslt1-dev
需要防止在编译 freetype 支持时出现问题
mkdir -pv /usr/include/freetype2/freetype
ln -sf /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h
下载 PHP 源代码
wget -c -t 3 -O ./php-5.2.17.tar.gz http://museum.php.net/php5/php-5.2.17.tar.gz
tar xvfz php-5.2.17.tar.gz
cd php-5.2.17
补丁 PHP
wget -c -t 3 -O ./libxml29_compat.patch https://mail.gnome.org/archives/xml/2012-August/txtbgxGXAvz4N.txt
patch -p0 -b < libxml29_compat.patch
wget -c -t 3 -O ./debian_patches_disable_SSLv2_for_openssl_1_0_0.patch https://bugs.php.net/patch-display.php\?bug_id\=54736\&patch\=debian_patches_disable_SSLv2_for_openssl_1_0_0.patch\&revision=1305414559\&download\=1
patch -p1 -b < debian_patches_disable_SSLv2_for_openssl_1_0_0.patch
wget -c -t 3 -O - http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz | gunzip > ./php-5.2.17-fpm-0.5.14.patch
patch -p1 < php-5.2.17-fpm-0.5.14.patch
编译并安装
./configure \
--prefix=/usr/share/php52 \
--datadir=/usr/share/php52 \
--mandir=/usr/share/man \
--bindir=/usr/bin/php52 \
--with-libdir=lib/x86_64-linux-gnu \
--includedir=/usr/include \
--with-config-file-path=$PHP_HOME/etc \
--with-config-file-scan-dir=$PHP_HOME/etc/conf.d \
--disable-debug \
--with-regex=php \
--disable-rpath \
--disable-static \
--disable-posix \
--with-pic \
--with-layout=GNU \
--with-pear=/usr/share/php \
--enable-calendar \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg \
--enable-bcmath \
--with-bz2 \
--enable-ctype \
--without-gdbm \
--with-iconv \
--enable-exif \
--enable-ftp \
--enable-cli \
--with-gettext \
--enable-mbstring \
--with-pcre-regex \
--enable-shmop \
--enable-sockets \
--enable-wddx \
--enable-fastcgi \
--enable-force-cgi-redirect \
--enable-fpm \
--with-mcrypt \
--with-zlib \
--enable-pdo \
--with-curl \
--enable-inline-optimization \
--enable-xml \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--with-xsl \
--enable-zip \
--with-gd \
--with-pdo-mysql \
--with-jpeg-dir=/usr/lib \
--with-png-dir=/usr/lib \
--with-mysql \
--with-openssl \
--with-mysqli \
--with-kerberos \
--enable-dbase \
--with-mysqli=/usr/bin/mysql_config \
--enable-gd-native-ttf \
--with-t1lib=/usr \
--with-freetype-dir=/usr \
--with-ldap \
--with-kerberos=/usr \
--with-unixODBC=shared,/usr \
--with-imap-ssl \
--with-mssql \
--without-sqlite \
--with-sqlite \
--without-pdo-sqlite \
--with-pgsql \
--with-pdo-pgsql \
--enable-soap \
--with-pdo-sqlite
make
make install
答案2
您可以让 Ubuntu 14.04 (Trusty Tahr) 使用 Ubuntu 9.10 (Karmic Koala) 中的软件包轻松安装 PHP 5.2。这就是我在 Ubuntu 14.04.3 上安装 PHP 5.2.10 的方法。
步骤1
karmic.list
创建一个文件/etc/apt/sources.list.d/
并添加以下内容:
deb http://old-releases.ubuntu.com/ubuntu/ karmic main restricted
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic main restricted
deb http://old-releases.ubuntu.com/ubuntu/ karmic-updates main restricted
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic-updates main restricted
deb http://old-releases.ubuntu.com/ubuntu/ karmic universe
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic universe
deb http://old-releases.ubuntu.com/ubuntu/ karmic-updates universe
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic-updates universe
deb http://old-releases.ubuntu.com/ubuntu/ karmic multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic multiverse
deb http://old-releases.ubuntu.com/ubuntu/ karmic-updates multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic-updates multiverse
deb http://old-releases.ubuntu.com/ubuntu karmic-security main restricted
deb-src http://old-releases.ubuntu.com/ubuntu karmic-security main restricted
deb http://old-releases.ubuntu.com/ubuntu karmic-security universe
deb-src http://old-releases.ubuntu.com/ubuntu karmic-security universe
deb http://old-releases.ubuntu.com/ubuntu karmic-security multiverse
deb-src http://old-releases.ubuntu.com/ubuntu karmic-security multiverse
第2步
然后,创建另一个文件,php5_2
内容/etc/apt/preferences.d/
如下:
Package: apache2*
Pin: release a=karmic
Pin-Priority: 991
Package: php5
Pin: release a=karmic
Pin-Priority: 991
Package: libapache2-mod-php5
Pin: release a=karmic
Pin-Priority: 991
Package: libapache2-mod-php5filter
Pin: release a=karmic
Pin-Priority: 991
Package: php-pear
Pin: release a=karmic
Pin-Priority: 991
Package: php5-cgi
Pin: release a=karmic
Pin-Priority: 991
Package: php5-cli
Pin: release a=karmic
Pin-Priority: 991
Package: php5-common
Pin: release a=karmic
Pin-Priority: 991
Package: php5-curl
Pin: release a=karmic
Pin-Priority: 991
Package: php5-dbg
Pin: release a=karmic
Pin-Priority: 991
Package: php5-dev
Pin: release a=karmic
Pin-Priority: 991
Package: php5-gd
Pin: release a=karmic
Pin-Priority: 991
Package: php5-gmp
Pin: release a=karmic
Pin-Priority: 991
Package: php5-mhash
Pin: release a=karmic
Pin-Priority: 991
Package: php5-mysql
Pin: release a=karmic
Pin-Priority: 991
Package: php5-odbc
Pin: release a=karmic
Pin-Priority: 991
Package: php5-pgsql
Pin: release a=karmic
Pin-Priority: 991
Package: php5-pspell
Pin: release a=karmic
Pin-Priority: 991
Package: php5-recode
Pin: release a=karmic
Pin-Priority: 991
Package: php5-snmp
Pin: release a=karmic
Pin-Priority: 991
Package: php5-sqlite
Pin: release a=karmic
Pin-Priority: 991
Package: php5-sybase
Pin: release a=karmic
Pin-Priority: 991
Package: php5-tidy
Pin: release a=karmic
Pin-Priority: 991
Package: php5-xmlrpc
Pin: release a=karmic
Pin-Priority: 991
Package: php5-xsl
Pin: release a=karmic
Pin-Priority: 991
步骤3
然后,运行sudo apt-get update
并最后使用以下命令安装它们(示例):
sudo apt-get install apache2 libapache2-mod-php5 php-pear php5-curl php5-dbg php5-mhash php5-mysql php5-tidy php5-xmlrpc php5-xsl
p/s:您可以在上面的安装命令中添加其他 php 扩展,但只能添加php5_2
首选项文件中定义的扩展,否则将安装错误的版本。