多版本PHP安装

最近遇到一个需求,希望在一台机子上安装多个版本的PHP,用于编译对应版本的PHP扩展。

PHP源码编译

1.下载PHP源码包并解压

2.进入解压后的文件夹,输入命令:

在/usr/local/目录下配置各个版本的php,按照版本名称分类。

版本名称:phpAPINO-(no)debug-(no)zts

比如:php20131226-nodebug-nozts

--prefix 用来指定php的安装目录
--with-apxs2 用来指定apxs2的所在目录

--enable-maintainer-zts 这个配置用来指定线程安全
--enable-debug 用来指定debug

debug-zts

./configure --prefix=/usr/local/php20131226-debug-zts --with-config-file-path=/usr/local/php20131226-debug-zts/etc --with-apxs2=/usr/local/apache/bin/apxs --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath --enable-debug --enable-maintainer-zts ;

debug-no-zts

./configure --prefix=/usr/local/php20131226-debug-no-zts --with-config-file-path=/usr/local/php20131226-debug-no-zts/etc --with-apxs2=/usr/local/apache/bin/apxs --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath --enable-debug

no-debug-zts

./configure --prefix=/usr/local/php20131226-no-debug-zts --with-config-file-path=/usr/local/php20131226-no-debug-zts/etc --with-apxs2=/usr/local/apache/bin/apxs --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --enable-gd-native-ttf --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath --enable-maintainer-zts

no-debug-no-zts

./configure --prefix=/usr/local/php20131226-no-debug-no-zts --with-config-file-path=/usr/local/php20131226-no-debug-no-zts/etc --with-apxs2=/usr/local/apache/bin/apxs --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --enable-gd-native-ttf --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath

这里发现一个问题:

如果指定了--with-apxs2,那么PHP线程安全性就根据apache的编译安装时的线程安全性来确定。

所以,当你在一台机子上编译某一版本的PHP的线程安全版本和非线程安全的版本时,不要指定--with-apxs2

编译安装

make install

编译安装完成,在/usr/local/的目录下就会产生php的编译产物

多版本PHP安装_第1张图片
image.png

编译安装生成PHP扩展,需要和对应PHP版本一致

0.进入对应extension的目录

cd /path_to_extensions/

1.使用对应版本的php下的phpize

/usr/local/php对应版本/bin/phpize

2.配置,使用指定的php-config

./configure --with-php-config=/usr/local/php对应版本/bin/php-config

3.编译安装

make clean //注意:每次编译的时候,都需要

make install

你可能感兴趣的:(多版本PHP安装)