CentOS
下,PHP有多種方式來安裝拓展, 主要有包管理式
的yum 安裝
、pecl 安裝
, 以及源碼編譯安裝
。包管理式
的安裝卸載尤其方便,而源碼編譯式
的安裝則方便參數調優。
通常搭建本機開發環境推薦包管理式
的安裝,節約時間。而線上部署
環境則推薦編譯安裝
, 方便調優。
本文以MongoDB
擴展`安裝舉例。php
PHP版本 : 7.0.17nginx
Nginx : 1.10.2c++
VMware版本號 : 12.0.0mongodb
CentOS版本 : 7.0瀏覽器
yum 方式
安裝能自動安裝拓展的.so動態庫,並配置好 php.ini
bash
注:服務器
請確保本身 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
官方文檔: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
信息,則安裝成功
源碼編譯包下載列表: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 擴展
的時候,官方提供了兩種:mongo
和 mongodb
第一種: https://pecl.php.net/package/...
第二種: https://pecl.php.net/package/...
第一種官方提示:This package has been superseded, but is still maintained for bugs and security fixes
,已經廢棄了,不過 bug
和 security
方面的問題還會繼續修復,不支持 PHP7
。
建議:
PHP 版本爲 5.x 建議使用 mongo
擴展
PHP 版本爲 7.x 建議使用 mongodb
擴展
PHP5.x 可使用 mongodb
擴展。可是 PHP7.x 不可使用 mongo
擴展。
寫在最後:
若是是本身學習的話仍是推薦 yum 安裝
,由於在你安裝過程當中會出現缺乏各類依賴
的報錯
。