CentOS 下三種 PHP 拓展安裝方法

CentOS 下,PHP有多種方式來安裝拓展, 主要有 包管理式yum 安裝pecl 安裝, 以及源碼編譯安裝
包管理式的安裝卸載尤其方便,而源碼編譯式的安裝則方便參數調優。
通常搭建本機開發環境推薦包管理式的安裝,節約時間。而線上部署環境則推薦編譯安裝, 方便調優。
本文以 MongoDB 擴展`安裝舉例。php

工具

  • PHP版本 : 7.0.17nginx

  • Nginx : 1.10.2c++

  • VMware版本號 : 12.0.0mongodb

  • CentOS版本 : 7.0瀏覽器

1、yum 安裝

yum 方式安裝能自動安裝拓展的.so動態庫,並配置好 php.inibash

注:服務器

  • 請確保本身 yum 源 裏面有對應擴展php7

  • 安裝完成後重啓服務器 Nginx 或者 Apache工具

  • 瀏覽器訪問 index.php 文件,輸出 phpinfo 信息,若是有 MongoDB 信息,則安裝成功學習

[root@localhost ~]# yum search mongodb|grep php        # 搜索 yum 源裏面 MongoDB 拓展
[root@localhost ~]# yum -y install php70w-pecl-mongo   # 安裝 PHP 對應版本的 MongoDB 擴展
[root@localhost ~]# systemctl restart nginx            # 從新啓動 Nginx

此處輸入圖片的描述
此處輸入圖片的描述

2、pecl 安裝

官方文檔:http://php.net/manual/zh/mong...

[root@localhost ~]# pecl install mongodb
-bash: pecl: 未找到命令

直接輸入 pecl install mongodb 會報錯,說明 pecl 咱們沒有安裝,安裝 pecl

[root@localhost ~]# yum -y install php70w-pear
[root@localhost ~]# pecl install mongodb
configure: error: Cannot find OpenSSL's <evp.h>
ERROR: `/var/tmp/mongodb/configure --with-php-config=/usr/bin/php-config' failed

到這一步又會報錯,須要咱們安裝 openssl ,安裝完成後繼續執行上次未執行成功的命令
此處輸入圖片的描述

[root@localhost ~]# yum -y install openssl openssl-devel
[root@localhost ~]# pecl install mongodb
[root@localhost ~]# systemctl restart nginx             # 從新啓動 Nginx

安裝完成後在 PHP 配置文件 php.ini 裏面加載 MongoDB 擴展
此處輸入圖片的描述

  • 安裝完成後重啓服務器 Nginx 或者 Apache

  • 瀏覽器訪問 index.php 文件,輸出 phpinfo 信息,若是有 MongoDB 信息,則安裝成功

此處輸入圖片的描述

3、源碼編譯安裝

源碼編譯包下載列表:https://pecl.php.net/packages...
Mongodb包下載地址:https://pecl.php.net/package/...

[root@localhost ~]# wget http://pecl.php.net/get/mongodb-1.2.8.tgz  #下載源碼包
[root@localhost ~]# tar zxf mongodb-1.2.8.tgz  #解壓
[root@localhost ~]# cd mongodb-1.2.8
# 多是 /usr/local/php/bin/phpize 找到本身的 phpize 文件,php-config 同理
[root@localhost mongodb-1.2.8]# /usr/bin/phpize    
Configuring for:
PHP Api Version:         20151012
Zend Module Api No:      20151012
Zend Extension Api No:   320151012
[root@localhost mongodb-1.2.8]# ./configure --with-php-config=/usr/bin/php-config
configure: error: Cannot find OpenSSL's <evp.h>

到了這步又是熟悉的味道又是熟悉的感受,須要咱們安裝 openssl ,安裝完成後繼續執行上次未執行成功的命令
此處輸入圖片的描述

[root@localhost mongodb-1.2.8]# yum -y install openssl openssl-devel
[root@localhost mongodb-1.2.8]# ./configure --with-php-config=/usr/bin/php-config
# 確保本身安裝了 gcc gcc++ 若是沒有安裝 yum -y install gcc gcc++
[root@localhost mongodb-1.2.8]# make && make install # 編譯

說明:php-config 是一個簡單的命令行腳本用於獲取所安裝的 PHP 配置的信息。

在編譯擴展時,若是安裝有多個 PHP 版本,能夠在配置時用 --with-php-config 選項來指定使用哪個版本編譯,該選項指定了相對應的 php-config 腳本的路徑。

編譯成功以下圖
此處輸入圖片的描述
此時在 PHP 配置文件 php.ini 裏面加載 MongoDB 擴展
此處輸入圖片的描述

  • 重啓服務器 Nginx 或者 Apache

  • 瀏覽器訪問 index.php 文件,輸出 phpinfo 信息,若是有 MongoDB 信息,則安裝成功

[root@localhost mongodb-1.2.8]# systemctl restart nginx   # 從新啓動 Nginx

此處輸入圖片的描述

總結:

  • pecl 安裝源碼編譯安裝區別就是:後者更方便參數調優。

  • 在選擇 Mongo 擴展的時候,官方提供了兩種:mongomongodb

第一種: https://pecl.php.net/package/...
第二種: https://pecl.php.net/package/...
第一種官方提示:This package has been superseded, but is still maintained for bugs and security fixes,已經廢棄了,不過 bugsecurity 方面的問題還會繼續修復,不支持 PHP7

建議:

  • PHP 版本爲 5.x 建議使用 mongo 擴展

  • PHP 版本爲 7.x 建議使用 mongodb 擴展
    PHP5.x 可使用 mongodb 擴展。可是 PHP7.x 不可使用 mongo 擴展。

寫在最後:
若是是本身學習的話仍是推薦 yum 安裝,由於在你安裝過程當中會出現缺乏各類依賴報錯

相關文章
相關標籤/搜索