Linux PHP多版本编译安装及快捷切换版本

编译安装        
        安装多个版本的PHP其实毫无压力,主要是编译安装的时候--prefix和--with-config-file-path设置为不同的目录即可。

        分享我编译安装的命令:

./configure --prefix=/usr/local/php/ --enable-debug --enable-gd --with-freetype --with-jpeg --with-webp  --enable-fpm --with-config-file-path=/usr/local/php/etc/ --with-iconv  --enable-mbregex --with-openssl --enable-pcntl --with-curl  --with-pdo-mysql --enable-mbstring --with-mysql-sock=/var/lib/mysql/mysql.sock --with-zlib
        这是开了debug的版本,但是开发的同学一般都不需要,直接去掉 --enable-debug即可。

        编译安装完成后,记得初始化php.ini,将php.ini-production文件重命名为php.ini并放在--with-config-file-path定义的目录中即可。

        但是此时,还不能使用PHP命令,因此需要将PHP的运行目录写入到.bashrc中,即

sudo vim ~/.bashrc
在文件的末尾加上
export PATH=/usr/local/php/bin:$PATH
export PATH=/usr/local/php/sbin:$PATH
重新载入
source ~/.bashrc
        此时使用php --ini命令即可查看到php.ini文件的位置

[moxi@localhost ~]$ php --ini
Configuration File (php.ini) Path: /usr/local/php80/etc/
Loaded Configuration File:         /usr/local/php80/etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
 快捷切换
        安装了多个版本的PHP以后,每次都要通过编辑./bashrc来切换版本未免太过繁琐,有没有更便捷的方式呢?

方法1
        通过更新软链的方式切换PHP版本

sudo ln -sf /usr/local/php80/bin/php /usr/bin/php
 
/usr/local/php/bin/php是你的PHP安装目录,即--prefix定义的目录+/bin/php
        但是这种方法,还是不快捷!

        我们可以通过给命令取别名的方式,简化运行命令的成本

sudo vim ~/.bashrc
 
// 将下面的命令添加到文件末尾
 
alias php80='sudo ln -sf /usr/local/php80/bin/php /usr/bin/php'
 
// 保存并退出
 
// 重新载入
 
. ~/.bashrc
方法2
       增加一个配置文件,将配置环境变量的命令放入其中,需要切换版本的时候载入对应的配置文件即可

vim ~/php80 (以.开头的文件会被隐藏,这个配置文件不重要,所以没必要隐藏)
 
// 将下列命令写入
 
export PATH=/usr/local/php80/bin:$PATH
export PATH=/usr/local/php80/sbin:$PATH
 
// 保存并退出
        重新载入的命令还是太长了,我们再给这个命令起个别名

// 将下面的命令添加到~/.bashrc中并重新载入即可
 
alias php80='. ~/php80'
效果
[moxi@localhost ~]$ php80
[moxi@localhost ~]$ php -v
PHP 8.0.21 (cli) (built: Aug 15 2022 19:33:34) ( NTS DEBUG )
Copyright (c) The PHP Group
Zend Engine v4.0.21, Copyright (c) Zend Technologies
[moxi@localhost ~]$ php81
[moxi@localhost ~]$ php -v
PHP 8.1.6 (cli) (built: Jul 31 2022 03:26:52) (NTS DEBUG)
Copyright (c) The PHP Group
Zend Engine v4.1.6, Copyright (c) Zend Technologies


posted @ 2023-04-14 16:17  珊瑚贝博客  阅读(156)  评论(0编辑  收藏  举报