linux安装多版本php

该文提供了从下载PHP源码到编译安装的详细步骤,包括配置选项、依赖模块的安装、环境变量设置、php-fpm的配置和启动,以及如何安装和启用php-redis扩展。同时,文中还介绍了如何在不同项目中使用不同PHP版本的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、下载包
wget https://www.php.net/distributions/php-7.2.7.tar.gz

2、解压
tar zxvf php-7.2.7.tar.gz

3、进入目录
cd php-7.2.7.tar.gz

4、初始化配置

./configure --prefix=/usr/local/php72 --with-config-file-path=/usr/local/php72 --with-pdo-mysql=mysqlnd --with-mysqli --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --with-libxml-dir --with-xmlrpc --with-iconv --with-freetype-dir --with-pdo-mysql --enable-bcmath --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-tokenizer --enable-zip --without-pear --disable-phar --enable-sockets --enable-fpm --enable-soap --enable-pcntlr 


5、如果有配置错误,需要安装模块,yum安装就好了。
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel MySQL pcre-devel openssl openssl-devel curl-devel libxslt-devel

6、然后在重新安装

7、最后就是编译

make && make install

拷贝文件

cp php.ini-production /usr/local/php72/etc/php.ini (多版本extension_dir找对应的ext目录)

cp /usr/local/php72/etc/php-fpm.conf.default  php-fpm.conf

cp /usr/local/php72/etc/php-fpm.d/www.conf.default  www.conf (多版本listen不能一样)

添加文件/usr/local/php72/etc/pear.conf内容如下
#PEAR_Config 0.9
a:33:{s:9:"cache_dir";s:15:"/tmp/pear/cache";s:15:"default_channel";s:12:"pear.php.net";s:16:"preferred_mirror";s:12:"pear.php.net";s:13:"remote_config";s:0:"";s:13:"auto_discover";i:0;s:13:"master_server";s:12:"pear.php.net";s:10:"http_proxy";s:0:"";s:7:"php_dir";s:23:"/usr/local/php72/lib/php";s:7:"ext_dir";s:60:"/usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718";s:7:"doc_dir";s:27:"/usr/local/php72/lib/php/doc";s:7:"bin_dir";s:19:"/usr/local/php72/bin";s:8:"data_dir";s:28:"/usr/local/php72/lib/php/data";s:7:"cfg_dir";s:27:"/usr/local/php72/lib/php/cfg";s:7:"www_dir";s:30:"/usr/local/php72/lib/php/htdocs";s:7:"man_dir";s:33:"/usr/local/php72/lib/php/local/man";s:8:"test_dir";s:28:"/usr/local/php72/lib/php/test";s:8:"temp_dir";s:14:"/tmp/pear/temp";s:12:"download_dir";s:18:"/tmp/pear/download";s:7:"php_bin";s:23:"/usr/local/php72/bin/php";s:10:"php_prefix";s:0:"";s:10:"php_suffix";s:0:"";s:7:"php_ini";s:0:"";s:12:"metadata_dir";s:0:"";s:8:"username";s:0:"";s:8:"password";s:0:"";s:7:"verbose";i:1;s:15:"preferred_state";s:6:"stable";s:5:"umask";i:18;s:9:"cache_ttl";i:3600;s:8:"sig_type";s:3:"gpg";s:7:"sig_bin";s:12:"/usr/bin/gpg";s:9:"sig_keyid";s:0:"";s:10:"sig_keydir";s:28:"/usr/local/php72/etc/pearkeys";}

保存配置文件后,检验配置是否正确的方法为:

/usr/local/php72/sbin/php-fpm -t

如果出现诸如 “test is successful” 字样,说明配置没有问题。

/usr/local/php72/sbin/php-fpm

检测是否启动:

ps -ef |grep php-fpm

说明启动成功。

到此就结束了。

4、把PHP加入环境变量
在/etc/profile文件末尾加上如下两行代码 
PATH=$PATH:/usr/local/php71/bin (多版本多行)
PATH=$PATH:/usr/local/php72/bin 

然后执行命令
source /etc/profile 
或执行点命令 
./profile 
使其修改生效,执行完可通过
echo php72
命令查看是否添加成功

5、加入启动代码
在/etc/rc.local文件末尾加上如下代码
/usr/local/php71/sbin/php-fpm (多版本多行)
/usr/local/php72/sbin/php-fpm
/usr/local/nginx/sbin/nginx

6、重启自动启动
在/root/.bashrc文件末尾加上如下代码
source /etc/profile

查看php版本

php72 -v
php72 -m

7、不同项目调用不同php版本

server {
    listen 80;
    server_name x.xxx.com;
    root /xxx/public;
    index index.php;
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_connect_timeout 86400;
        fastcgi_send_timeout 86400;
        fastcgi_read_timeout 86400;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
        include fastcgi.conf;
    }
}

server {
    listen 80;
    server_name y.xxx.com;
    root /xxx/public;
    index index.php;
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9001;
        fastcgi_index  index.php;
        fastcgi_connect_timeout 86400;
        fastcgi_send_timeout 86400;
        fastcgi_read_timeout 86400;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
        include fastcgi.conf;
    }
}

8.重启nginx
pkill -9 nginx             
/usr/local/nginx/sbin/nginx

8.重启php-fpm
pkill -9 php-fpm   
/usr/local/php71/sbin/php-fpm 
/usr/local/php72/sbin/php-fpm
 
php官方扩展:https://pecl.php.net 自行查找

安装php-redis扩展:
wget https://pecl.php.net/get/redis-5.3.2.tgz  
或者
wget https://github.com/nicolasff/phpredis/archive/5.3.2.tar.gz
tar zxvf phpredis-5.3.2.tar.gz
cd phpredis-5.3.2
/usr/local/php72/bin/phpize
./configure --with-php-config=/usr/local/php72/bin/php-config
make && make install
 
解决:Cannot find autoconf 报错
wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
tar -zvxf m4-1.4.9.tar.gz
cd m4-1.4.9/
./configure && make && make install
cd ../
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz
tar -zvxf autoconf-2.62.tar.gz
cd autoconf-2.62/
./configure && make && make install

php扩展不生效解决办法:
pkill -9 php-fpm
/usr/local/php72/sbin/php-fpm -y /usr/local/php72/etc/php-fpm.conf -c /usr/local/php72/etc/php.ini 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值