如何在一台服务器上安装多个版本的 PHP?

如何在一台服务器上安装多个版本的 PHP?

我想PHP在一台服务器上拥有两个版本并使用符号链接在它们之间切换。

我已经PHP 5.3.2安装了。我想PHP 1.4.6与它一起安装,并能够在它们之间来回切换,例如;

/opt/php/5.3.2
/opt/php/5.4.21
/opt/php/live -> /opt/php/5.4.21

按照建议这里。然而,我正在努力寻找如何做到这一点。

我正在使用运行 Nginx 和 PHP-FPM/FastCGI 的 Ubuntu 10.04 服务器。

在我看来apt-get似乎每个程序只想有一个版本,所以我想并行使用两个版本必须避免使用apt-get或类似的实用程序。

答案1

您必须自己编译。要获得非常接近预编译的 Ubuntu 的编译,您可以使用与 Ubuntu 源包中相同的配置标志,但使用不同的--prefix

    ./configure \
        --prefix=/opt/php/5.3.2 \
        --enable-force-cgi-redirect \
        --enable-fastcgi \
        --disable-debug \
        --with-regex=php \
        --disable-rpath \
        --disable-static \
        --with-pic \
        --with-layout=GNU \
        --with-pear=/usr/share/php \
        --enable-calendar \
        --enable-sysvsem \
        --enable-sysvshm \
        --enable-sysvmsg \
        --enable-bcmath \
        --with-bz2 \
        --enable-ctype \
        --with-db4 \
        --without-gdbm \
        --with-iconv \
        --enable-exif \
        --enable-ftp \
        --with-gettext \
        --enable-mbstring \
        --with-pcre-regex=/usr \
        --enable-shmop \
        --enable-sockets \
        --enable-wddx \
        --with-libxml-dir=/usr \
        --with-zlib \
        --with-kerberos=/usr \
        --with-openssl=/usr \
        --enable-soap \
        --enable-zip \
        --with-mhash=yes \
        --with-system-tzdata \
        --without-mm \
        --with-curl=/usr \
        --with-enchant=/usr \
        --with-zlib-dir=/usr \
        --with-gd=/usr --enable-gd-native-ttf \
        --with-gmp=/usr \
        --with-jpeg-dir=/usr \
        --with-xpm-dir=/usr/X11R6 \
        --with-png-dir=/usr \
        --with-freetype-dir=/usr \
        --enable-intl \
        --with-ttf=/usr \
        --with-t1lib=/usr \
        --with-ldap=/usr \
        --with-ldap-sasl=/usr \
        --with-mysql=/usr \
        --with-mysqli=/usr/bin/mysql_config \
        --with-pspell=/usr \
        --with-unixODBC=/usr \
        --with-recode=/usr \
        --with-xsl=/usr \
        --with-snmp=/usr \
        --with-sqlite=/usr \
        --with-sqlite3=/usr \
        --with-mssql=/usr \
        --with-tidy=/usr \
        --with-xmlrpc \
        --with-pgsql=/usr PGSQL_INCLUDE=`pg_config --includedir` \
        --enable-pdo \
        --without-pdo-dblib \
        --with-pdo-mysql=/usr \
        --with-pdo-odbc=unixODBC,/usr \
        --with-pdo-pgsql=/usr/bin/pg_config \
        --with-pdo-sqlite=/usr \
        --with-pdo-dblib=/usr

当然,任何你不需要的模块都可以从配置中删除(例如,如果你永远不会使用 snmp,那么可以更改--with-snmp=/usr--without-snmp或者干脆把它删掉)

答案2

也许这对您有帮助,您可以在没有 IPSConfig 的情况下尝试此操作。

http://www.howtoforge.com/how-to-use-multiple-php-versions-php-fpm-and-fastcgi-with-ispconfig-3-centos-6.3

相关内容