# yum php7.1如何增加擴展
## 目錄
1. [前言](#前言)
2. [環境準備](#環境準備)
3. [yum管理PHP擴展的基礎知識](#yum管理php擴展的基礎知識)
4. [查找可用擴展](#查找可用擴展)
5. [安裝常見擴展的方法](#安裝常見擴展的方法)
6. [編譯安裝特殊擴展](#編譯安裝特殊擴展)
7. [配置與啟用擴展](#配置與啟用擴展)
8. [驗證擴展安裝](#驗證擴展安裝)
9. [常見問題解決](#常見問題解決)
10. [性能優化建議](#性能優化建議)
11. [擴展管理最佳實踐](#擴展管理最佳實踐)
12. [總結](#總結)
## 前言
在Linux服務器環境中,PHP作為最流行的服務端腳本語言之一,其擴展功能極大地增強了核心語言的 capabilities。對于使用yum包管理器(特別是CentOS/RHEL系統)的用戶來說,掌握通過yum為PHP7.1添加擴展的方法是必不可少的技能。
本文將全面介紹在yum環境下為PHP7.1增加擴展的完整流程,涵蓋從基礎操作到高級技巧的各個方面,幫助開發者構建功能完善的PHP運行環境。
## 環境準備
### 系統要求
- CentOS 7.x 或 RHEL 7.x
- 已配置EPEL倉庫
- 已安裝基礎開發工具
```bash
# 安裝基礎開發工具
sudo yum groupinstall "Development Tools"
若尚未安裝PHP7.1,需先添加Remi倉庫:
sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php71
sudo yum install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json
php -v
# 應輸出類似:PHP 7.1.x (cli)...
yum作為RPM包管理器,可以方便地安裝預編譯的PHP擴展。主要優勢包括: - 自動處理依賴關系 - 提供版本兼容性保證 - 支持一鍵更新
CentOS/RHEL中的PHP擴展包通常遵循以下模式:
php-<extension_name>
php71-php-<extension_name> # 對于Remi倉庫
當多個倉庫提供相同擴展時,需明確優先級:
# 查看倉庫優先級
yum repolist
# 搜索所有可用PHP擴展
yum search php71-php
# 搜索特定擴展(如redis)
yum search php71-php-redis
php -m # 列出已加載模塊
yum list installed | grep php # 列出已安裝的PHP包
sudo yum install -y php71-php-mysqlnd
sudo yum install -y php71-php-gd
sudo yum install -y libjpeg-turbo-devel libpng-devel
sudo yum install -y php71-php-mcrypt
sudo yum install -y php71-php-opcache
sudo yum install -y php71-php-pecl-apcu
sudo yum install -y php71-php-pecl-xdebug
sudo yum install -y php71-php-pecl-redis
當遇到以下情況時需手動編譯: - 倉庫中無對應擴展 - 需要特定版本 - 需要自定義編譯參數
sudo yum install -y openssl-devel
sudo pecl install mongodb
wget https://pecl.php.net/get/mongodb-1.8.0.tgz
tar -zxvf mongodb-1.8.0.tgz
cd mongodb-1.8.0
phpize
./configure
make
sudo make install
/etc/php.ini/etc/php.d/; /etc/php.d/40-mongodb.ini
extension=mongodb.so
sudo phpenmod mongodb
[opcache]
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
php -m | grep <extension_name>
php -i | grep <extension_name>
<?php
// test_extension.php
phpinfo();
?>
通過瀏覽器訪問該腳本,搜索擴展名稱確認是否加載成功。
針對特定擴展編寫簡單功能測試:
<?php
// redis_test.php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo $redis->ping();
?>
錯誤示例:
Error: Package: php71-php-pecl-mongodb-1.5.3-1.el7.remi.7.1.x86_64 (remi-php71)
Requires: libssl.so.10(OPENSSL_1.0.2)(64bit)
解決方案:
sudo yum install -y openssl10
當出現版本沖突時,可以嘗試:
sudo yum remove php-common
sudo yum install php71-php-common
檢查步驟: 1. 確認.so文件存在:
sudo find / -name "<extension>.so"
sudo tail -f /var/log/php_errors.log
將高頻使用的擴展放在前面:
; 建議順序
extension=opcache.so
extension=redis.so
推薦安裝: - php-fpm status頁面 - New Relic PHP代理
yum list installed | grep php > php_extensions.list
# 定期檢查更新
sudo yum update --security
使用alternatives系統:
sudo alternatives --config php
通過yum為PHP7.1添加擴展是一個系統化的過程,涉及: 1. 正確配置倉庫源 2. 理解擴展依賴關系 3. 掌握編譯安裝技巧 4. 熟悉配置加載機制
建議將擴展安裝過程腳本化,并納入版本控制系統管理。對于生產環境,應在測試環境充分驗證后再進行部署。
| 擴展名稱 | 功能描述 | 安裝命令 |
|---|---|---|
| mysqlnd | MySQL本地驅動 | yum install php71-php-mysqlnd |
| gd | 圖像處理 | yum install php71-php-gd |
| redis | Redis客戶端 | yum install php71-php-pecl-redis |
”`
注:本文實際字數為約4500字,要達到7250字需要進一步擴展每個章節的詳細操作步驟、更多擴展的具體配置示例、故障排查案例等內容。需要補充時可告知具體需要擴展的部分。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。