centos

PHP在CentOS上如何进行版本管理

小樊
53
2025-10-04 21:25:38
栏目: 编程语言

使用Remi仓库(推荐:适合大多数场景)
Remi仓库是CentOS系统管理PHP版本的主流方案,提供最新稳定版PHP及扩展,且与系统包管理器(yum/dnf)深度集成。

  1. 前置准备:安装EPEL仓库(提供额外依赖)和Remi仓库。以CentOS 7为例,执行:
    sudo yum install epel-release
    sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
    
  2. 启用目标PHP版本:通过yum-config-manager启用所需PHP版本的仓库(如PHP 7.4、8.0)。例如启用PHP 7.4:
    sudo yum-config-manager --enable remi-php74
    
  3. 安装与切换:安装PHP及常用扩展(如cli、fpm、mysqlnd等),安装后会自动切换为该版本:
    sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring
    
  4. 验证版本:通过命令确认当前PHP版本:
    php -v
    
    若需切换Web服务(如Apache/Nginx)使用的PHP版本,需修改对应服务的PHP-FPM配置(如/etc/opt/remi/php74/php-fpm.conf)并重启服务。

使用phpbrew(适合需要灵活切换的场景)
phpbrew是PHP版本管理工具,支持多版本共存与快速切换,适合开发环境。

  1. 安装phpbrew:通过curl下载并运行安装脚本:
    curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar
    chmod +x phpbrew.phar
    sudo mv phpbrew.phar /usr/local/bin/phpbrew
    
  2. 初始化环境:将phpbrew添加到Shell配置文件(如~/.bashrc):
    echo '[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc' >> ~/.bashrc
    source ~/.bashrc
    
  3. 安装PHP版本:使用phpbrew安装指定版本(如PHP 7.4、8.1),+default表示设为默认版本:
    phpbrew install 7.4 +default
    phpbrew install 8.1
    
  4. 切换与使用:通过switch命令切换全局版本,use命令临时切换当前终端版本:
    phpbrew switch 8.1  # 全局切换
    phpbrew use 7.4     # 当前终端临时切换
    
  5. 验证版本:执行php -v查看当前生效版本。

源码编译安装(适合定制化需求)
若需完全自定义PHP配置(如启用特定扩展、调整编译参数),可选择源码编译,但过程较复杂。

  1. 安装依赖:安装编译工具及依赖库:
    sudo yum groupinstall "Development Tools"
    sudo yum install gcc make libxml2-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel libmhash-devel
    
  2. 下载与解压源码:从PHP官网下载所需版本(如5.6.37、7.4.28),并解压:
    wget https://www.php.net/distributions/php-7.4.28.tar.gz
    tar -zxvf php-7.4.28.tar.gz
    cd php-7.4.28
    
  3. 配置与编译:指定安装路径(如/usr/local/php74),并启用所需扩展(如--enable-mbstring--with-mysql):
    ./configure --prefix=/usr/local/php74 --enable-mbstring --with-mysql --with-pdo-mysql --with-openssl
    make
    sudo make install
    
  4. 配置环境变量:将PHP可执行文件路径添加到PATH,方便全局调用:
    echo 'export PATH=/usr/local/php74/bin:$PATH' >> ~/.bashrc
    source ~/.bashrc
    
  5. 验证版本:执行php -v确认安装成功。

多版本共存配置(Web服务适配)
若需在同一服务器上运行多个PHP版本(如Nginx/Apache),需通过端口隔离套接字文件区分不同版本的PHP-FPM。

  1. 安装多版本PHP-FPM:通过Remi仓库安装不同版本的PHP-FPM(如php74-php-fpmphp80-php-fpm):
    sudo yum install php74-php-fpm php80-php-fpm
    
  2. 修改PHP-FPM配置:调整各版本的listen参数(端口或套接字)。例如,将PHP 7.4的listen改为9001(端口模式)或/run/php-fpm/php74-fpm.sock(套接字模式):
    sudo vim /etc/opt/remi/php74/php-fpm.d/www.conf
    # 修改以下行(约38行)
    listen = 127.0.0.1:9001  # 端口模式
    # 或
    listen = /run/php-fpm/php74-fpm.sock  # 套接字模式
    
  3. 配置Web服务:修改Nginx/Apache的虚拟主机配置,指向对应PHP版本的fastcgi_pass。例如,Nginx配置PHP 7.4:
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9001;  # 对应PHP 7.4的端口
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
  4. 重启服务:重启PHP-FPM及Web服务使配置生效:
    sudo systemctl restart php74-php-fpm
    sudo systemctl restart nginx
    
    若使用套接字模式,需确保套接字文件权限正确(如chmod 666 /run/php-fpm/php74-fpm.sock)。

0
看了该问题的人还看了