首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

CentOS 6/7 使用 Yum 安裝 PHP 7.x 及常用擴展完整步驟 (Remi 源)

     編輯:PHP 相關知識

CentOS 6/7 使用 Yum 安裝 PHP 7.x 及常用擴展完整步驟 (Remi 源)

CentOS 官方倉庫 PHP 版本過舊 (5.4/5.6),生產環境需啟用 Remi 源 安裝 PHP 7.x/8.x。本文提供標準化 SOP,含源配置、版本切換、擴展批量安裝、服務重啟驗證,適合自動化腳本直接引用。

一、前置準備:安裝 EPEL + Remi Release RPM

# CentOS 7
yum -y install epel-release
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

# CentOS 6 (EOL,僅供維舊參考)
yum -y install epel-release
yum -y install https://rpms.remirepo.net/enterprise/remi-release-6.rpm

二、啟用目標 PHP 版本倉庫

編輯 /etc/yum.repos.d/remi.repo,將欲安裝版本的 enabled=1,其餘設 0:

# PHP 7.4 範例
[remi-php74]
name=Remi's PHP 7.4 RPM repository for Enterprise Linux 7 - $basearch
mirrorlist=https://rpms.remirepo.net/enterprise/7/php74/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

# 同時關閉其他版本
[remi-php73] enabled=0
[remi-php80] enabled=0
...

一鍵切換腳本 (PHP 7.4 → 8.1):

yum-config-manager --disable remi-php74
yum-config-manager --enable remi-php81
yum -y update php*   # 滾動升級

三、核心套件與常用擴展批量安裝

# 基礎 + FPM + CLI
yum -y install php php-cli php-fpm php-common

# 資料庫
yum -y install php-mysqlnd php-pdo php-pgsql php-odbc

# 快取/Session
yum -y install php-opcache php-apcu php-redis php-memcached php-memcache

# 圖片/文件處理
yum -y install php-gd php-imagick php-zip php-bz2

# 開發/除錯
yum -y install php-xml php-mbstring php-json php-intl php-bcmath php-gmp php-process php-pear php-devel

# 高效能/非同步
yum -y install php-swoole php-uv php-event  # 視內核版本支援度

# 安全/加密
yum -y install php-sodium php-openssl  # 通常內建

# 搜尋/日誌
yum -y install php-solr php-seaslog

四、生產環境關鍵配置調整

# 1. Opcache (必開)
# /etc/php.d/10-opcache.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0  # 生產環境 0,部署後需 reload php-fpm
opcache.save_comments=1

# 2. php-fpm 池子調整 (www.conf)
pm = dynamic
pm.max_children = 100
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 1000
request_terminate_timeout = 60s

# 3. 安全相關
expose_php = Off
display_errors = Off
log_errors = On
error_log = /var/log/php-fpm/error.log
date.timezone = Asia/Taipei

五、服務啟動與驗證


六、常見坑點與解決

  1. 缺少 libzip / libwebp: Remi 源通常自動解決依賴,若報錯手動 yum install libzip-devel libwebp-devel
  2. PHP 8.1+ 移除的擴展: memcache (非 memcached)、mcrypt → 改用 pecl install 或遷移代碼
  3. 多版本共存: 使用 php74-php-fpm, php81-php-fpm 等 SCL 風格套件,路徑在 /opt/remi/php74/
  4. 防火牆: firewall-cmd --add-port=9000/tcp --permanent && firewall-cmd --reload (php-fpm 預設端口)

七、Docker 化替代方案 (推薦新專案)

# Dockerfile 片段
FROM php:8.2-fpm-alpine
RUN apk add --no-cache $PHPIZE_DEPS \
    && pecl install redis swoole \
    && docker-php-ext-enable redis swoole opcache \
    && docker-php-ext-install pdo_mysql gd bcmath intl

容器化可避免系統級依賴衝突,構建鏡像即鎖定版本,部署一致性更強。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved