1. 程式人生 > >通過 PECL 安裝 PHP 擴充套件(以 CentOS7 中安裝 swoole 為例)

通過 PECL 安裝 PHP 擴充套件(以 CentOS7 中安裝 swoole 為例)

常用工具

PECL 和 phpize

官網文件

PHP 有大量的擴充套件可以使用,比如用於連線資料庫的擴充套件 mysqli,圖形庫 gd2 等。擴充套件有兩種安裝方法:

  • 通過 pear install xxx 安裝,需要提前在機器上安裝 pear,CentOS 下可以通過 yum install php72w-pear 可以安裝 PHP7.2 對應的版本
  • 用 phpize 原始碼編譯安裝,CentOS 下可以通過 yum install php72w-devel 可以安裝 PHP7.2 對應的版本

注意安裝的擴充套件需要和 PHP 的版本匹配。例如我安裝的是 PHP7.2,則需要安裝 PHP7.2 對應的 php-devel 和 php-pear:

[[email protected]_139_74_centos ~]# yum list php72w*
Loaded plugins: fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * webtatic: us-east.repo.webtatic.com
Installed Packages
php72w-cli.x86_64                                         7.2
.8-1.w7 @webtatic php72w-common.x86_64 7.2.8-1.w7 @webtatic php72w-devel.x86_64 7.2.8-1.w7 @webtatic php72w-fpm.x86_64 7.2
.8-1.w7 @webtatic php72w-pear.noarch 1:1.10.4-1.w7 @webtatic php72w-process.x86_64 7.2.8-1.w7 @webtatic php72w-xml.x86_64 7.2.8-1.w7 @webtatic Available Packages php72w-bcmath.x86_64 7.2.8-1.w7 webtatic php72w-dba.x86_64 7.2.8-1.w7 webtatic php72w-embedded.x86_64 7.2.8-1.w7 webtatic php72w-enchant.x86_64 7.2.8-1.w7 webtatic php72w-gd.x86_64 7.2.8-1.w7 webtatic php72w-imap.x86_64 7.2.8-1.w7 webtatic php72w-interbase.x86_64 7.2.8-1.w7 webtatic php72w-intl.x86_64 7.2.8-1.w7 webtatic php72w-ldap.x86_64 7.2.8-1.w7 webtatic php72w-mbstring.x86_64 7.2.8-1.w7 webtatic php72w-mysql.x86_64 7.2.8-1.w7 webtatic php72w-mysqlnd.x86_64 7.2.8-1.w7 webtatic php72w-odbc.x86_64 7.2.8-1.w7 webtatic php72w-opcache.x86_64 7.2.8-1.w7 webtatic php72w-pdo.x86_64 7.2.8-1.w7 webtatic php72w-pdo_dblib.x86_64 7.2.8-1.w7 webtatic php72w-pecl-apcu.x86_64 5.1.9-1.w7 webtatic php72w-pecl-apcu-devel.x86_64 5.1.9-1.w7 webtatic php72w-pecl-geoip.x86_64 1.1.1-1.2.w7 webtatic php72w-pecl-igbinary.x86_64 2.0.5-1.w7 webtatic php72w-pecl-igbinary-devel.x86_64 2.0.5-1.w7 webtatic php72w-pecl-imagick.x86_64 3.4.3-1.2.w7 webtatic php72w-pecl-imagick-devel.x86_64 3.4.3-1.2.w7 webtatic php72w-pecl-libsodium.x86_64 1.0.6-1.2.w7 webtatic php72w-pecl-memcached.x86_64 3.0.4-1.w7 webtatic php72w-pecl-mongodb.x86_64 1.4.1-1.w7 webtatic php72w-pecl-redis.x86_64 3.1.6-1.w7 webtatic php72w-pecl-xdebug.x86_64 2.6.0-1.w7 webtatic php72w-pgsql.x86_64 7.2.8-1.w7 webtatic php72w-phpdbg.x86_64 7.2.8-1.w7 webtatic php72w-pspell.x86_64 7.2.8-1.w7 webtatic php72w-recode.x86_64 7.2.8-1.w7 webtatic php72w-snmp.x86_64 7.2.8-1.w7 webtatic php72w-soap.x86_64 7.2.8-1.w7 webtatic php72w-sodium.x86_64 7.2.8-1.w7 webtatic php72w-tidy.x86_64 7.2.8-1.w7 webtatic php72w-xmlrpc.x86_64 7.2.8-1.w7 webtatic

pecl

官網文件

pecl install extname 命令自動下載原始碼、編譯程式碼,並將編譯後的 extname.so 安裝到 extension_dir 中。然後編輯 php.ini 引入 extname.so 就可以載入了。

phpize

使用 pecl 需要提前將擴充套件庫釋出到 PECL 官方倉庫中。而原始碼安裝更靈活。

phpize 的通用流程:

$ cd extname
$ phpize
$ ./configure
$ make
# make install

php 命令

通過 php -m 可以檢視 PHP 中安裝的擴充套件。

php-config

官網文件
php-config 可以用於獲取 PHP 的配置資訊。可以通過 -h 選項來顯示 php-config 指令碼在命令列所能使用的選項。

這裡需要用 php-config --extension-dir 來檢視 PHP 的擴充套件目錄位置:

[[email protected]_139_74_centos ~]# php-config --extension-dir
/usr/lib64/php/modules
[[email protected]_139_74_centos ~]# ll /usr/lib64/php/modules/
total 6500
-rwxr-xr-x 1 root root   24752 Jul 20 23:31 bz2.so
-rwxr-xr-x 1 root root   33872 Jul 20 23:31 calendar.so
-rwxr-xr-x 1 root root   15648 Jul 20 23:31 ctype.so
-rwxr-xr-x 1 root root   87072 Jul 20 23:31 curl.so
-rwxr-xr-x 1 root root  176720 Jul 20 23:31 dom.so
-rwxr-xr-x 1 root root   86136 Jul 20 23:31 exif.so
-rwxr-xr-x 1 root root 5053064 Jul 20 23:31 fileinfo.so
-rwxr-xr-x 1 root root   62056 Jul 20 23:31 ftp.so
-rwxr-xr-x 1 root root   15744 Jul 20 23:31 gettext.so
-rwxr-xr-x 1 root root   70400 Jul 20 23:31 gmp.so
-rwxr-xr-x 1 root root   41104 Jul 20 23:31 iconv.so
-rwxr-xr-x 1 root root   44888 Jul 20 23:31 json.so
-rwxr-xr-x 1 root root  278160 Jul 20 23:31 phar.so
-rwxr-xr-x 1 root root   37120 Jul 20 23:31 posix.so
-rwxr-xr-x 1 root root   15728 Jul 20 23:31 shmop.so
-rwxr-xr-x 1 root root   58456 Jul 20 23:31 simplexml.so
-rwxr-xr-x 1 root root   91688 Jul 20 23:31 sockets.so
-rwxr-xr-x 1 root root   15880 Jul 20 23:31 sysvmsg.so
-rwxr-xr-x 1 root root   11568 Jul 20 23:31 sysvsem.so
-rwxr-xr-x 1 root root   15800 Jul 20 23:31 sysvshm.so
-rwxr-xr-x 1 root root   19936 Jul 20 23:31 tokenizer.so
-rwxr-xr-x 1 root root   32744 Jul 20 23:31 wddx.so
-rwxr-xr-x 1 root root   32960 Jul 20 23:31 xmlreader.so
-rwxr-xr-x 1 root root   54216 Jul 20 23:31 xml.so
-rwxr-xr-x 1 root root   49232 Jul 20 23:31 xmlwriter.so
-rwxr-xr-x 1 root root   32984 Jul 20 23:31 xsl.so
-rwxr-xr-x 1 root root  138776 Jul 20 23:31 zip.so

安裝 PHP 環境

安裝epel-release

epel 是 Extra Packages for Enterprise Linux (EPEL),倉庫資源豐富且更新及時。參考 這裡

yum -y install epel-release

獲取 PHP7 的yum源

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

檢視可用的 PHP7 版本列表

yum list php7*

安裝 PHP7.2

用於執行 PHP 指令碼。

yum install php72w

安裝 PHP-FPM

用於在 PHP 和 Nginx 之間通訊。

yum install php72w-fpm

安裝 PEAR

安裝後,可以使用 pecl 命令來安裝軟體。可以通過 PHP 官方提供的 pecl 命令從 PHP 的官方擴充套件庫安裝擴充套件。

yum install php72w-pear

安裝 phpize

安裝後,可以使用 phpize 命令從原始碼編譯 PHP 擴充套件,得到 *.so 檔案。

yum install php72w-devel

安裝 swoole

pecl install swoole

修改 php.ini 配置檔案

新增這句話:

extension=swoole.so

常見問題

建議 Linux 系統安裝完成後,立刻安裝各種編譯工具,可以減少很多麻煩。

configure: error: no acceptable C compiler found in $PATH

原因:系統中沒有安裝 C 編譯器。
解決辦法:安裝 GCC 軟體套件。

yum install gcc

configure: error: C++ preprocessor “/lib/cpp” fails sanity check

原因:系統中沒有安裝 C++ 前處理器。
解決辦法:安裝 C++ 軟體套件。

yum install glibc-headers gcc-c++

相關推薦

通過 PECL 安裝 PHP 擴充套件 CentOS7 安裝 swoole

常用工具 PECL 和 phpize 官網文件 PHP 有大量的擴充套件可以使用,比如用於連線資料庫的擴充套件 mysqli,圖形庫 gd2 等。擴充套件有兩種安裝方法: 通過 pear install xxx 安裝,需要提前在機器上安裝 pear

安裝Windows和Linux雙系統方法Windows7和Ubuntu16.04

用UltraISO製作Ubuntu 或 Debian 的U盤啟動盤後,在機器用U盤啟動時有時會報這個錯誤:failed to load ldlinux.c32 這是UltraISO的問題,需要換燒錄軟體,請換燒錄軟體: linux:mkusb windows

pycharm外掛的安裝IdeaVim 和 Markdown support

pycharm 安裝外掛的方法主要有兩種: 1. file --> settings --> plugins --> Install JetBrains plugins... --> 搜尋要安裝的外掛,點選安裝 2. file --> set

Linux系統下的vi編輯器的使用VMware下的Ubuntu64

linux系統 編輯器 一般模式 ubuntu虛擬機 vi編譯器 上午花費一些時間學習vi編輯器,下面把學習的一些經驗記錄在這篇博文中。 vi編輯器是Linux系統下的基本編譯器,工作在字符模式,是一個很高效的文本編譯器,它在系統和服務器管理上的功能是普通的圖形編譯器所不能夠

Linux下command not foundCentOS下沒有telnet

裏的 linu com ins net 文件 bsp netd mman [[email protected]/* */ ~]# telnet bash: telnet: command not found rpm -qa telnet* //查詢是否安裝了

Mac 創建證書 創建gdb證書

pick 1-1 src for png b- num iat alt open /Applications/Utilities/Keychain\ Access.app/ 打開 鑰匙串訪問 繼續繼續 創建完畢。 Now that we have a ce

MVC初級知識之二——Routing路由近乎產品源碼

.cn load lan 下載地址 路由 href targe eas bak 演示產品的代碼,開源去近乎官網下載近乎免費源碼版。下載地址:http://www.jinhusns.com/Uploads/Release/bak/jinhu_V5.2.0

Alfred 3 如何設置默認搜索引擎百度搜索

今天 alfred width city search left 屏幕 由於 -o 今天,由於收到UDACITY的微信新聞,關於使用Alfred 工具的介紹,所以一時興起,決定再把Alfred研究一下,以後再慢慢適應使用Alfred,結果花了近2個小時才總算把Alfred默

gitlab配置通過smtp發送郵件QQ exmail騰訊企業

res use 企業 mbo tar 郵箱 rails blank authent gitlab配置通過smtp發送郵件(QQ exmail騰訊企業為例) 首先祭出官網文檔鏈接:https://docs.gitlab.com/omnibus/settings/smtp

雜記——controller的工作原理CSDN網站導航條

最近初學springMVC,今天明白了controller和jsp之間聯絡的工作原理,於是記一個小筆記。 先看一個程式碼 下面是controller中的一個cookieBind方法 @RequestMapping(value="/cookiebind", method = {Reques

基於GDAL庫,讀取.grd文件海洋地形數據C++版

的區別 網站 這一 eight null 配置 drag oat data 技術背景   海洋地形數據主要是通過美國全球地形起伏數據(GMT)獲得,數據格式為grd(GSBG)二進制數據,打開軟件通過是Surfer軟件,surfer軟件可進行數據的編輯處理,以及進一步的可視

第三方介面呼叫案例阿里雲簡訊服務

第三方介面或者服務大部分都是以rest風格的,需要http請求去呼叫,通過網路傳送請求去呼叫,然後等待第三方服務的響應,併發量多的話,會嚴重拖慢業務邏輯的處理速度。為了提高系統的效能,呼叫第三方服務,最好做成非同步的,如果條件允許,最好用單獨的伺服器,或者幾臺伺服器來做呼叫第三方介面,來提高業務邏輯

錯排問題航電OJ 2048

神、上帝以及老天爺 Problem Description HDU 2006’10 ACM contest的頒獎晚會隆重開始了! 為了活躍氣氛,組織者舉行了一個別開生面、獎品豐厚的抽獎活動,這個活動的具體要求是這樣的: 首先,所有參加晚會的人員都將一張寫有自己名字的字條放入抽獎箱中;

Selenium元素定位初探今日頭條首頁

隨著網頁技術的發展,動態網頁的比例越來越高,原來抓取靜態網頁的許多方法變得不再適用;再加上越來越多的網站添加了各種複雜的反爬蟲策略,導致直接通過網路請求的方式去抓取頁面的方式已經有些落伍了。 而Selenium可以通過模擬瀏覽器的真實行為來訪問網頁並將頁面原始碼快取下來,從而實現所見

基於GDAL庫,讀取.nc檔案海洋表溫資料

  對於做海洋資料處理的同學,會經常遇到nc格式的檔案,nc檔案的格式全稱是NetCDF,具體的詳細解釋請查詢官網【https://www.unidata.ucar.edu/software/netcdf/docs/index.html】,一般從全球大洋資料庫裡面下載的溫鹽、風場及雲量等資料,基本上是nc檔案

python爬蟲國家菸草網新聞

國家菸草專賣局的網址是:http://www.tobacco.gov.cn/html/ 要爬取的內容為各省級局的新聞。 大部分的省的新聞頁url都是有規律的,比如貴州省的是 http://www.tobacco.gov.cn/html/36/3617/36

ARM裸板程式的開發和編譯點亮LED燈

製作好交叉編譯工具鏈後,怎麼確定是否有效呢,當然是編譯一個程式燒寫到板上跑一下了。這裡我們以點亮LED燈為例描述如何使用我們製作的交叉編譯工具鏈編譯裸板程式。 首先,需要了解下Nor flash,Nand flash,片內記憶體,片外記憶體,地址空間這幾個概念。其中,Nor

Chrome-逆向分析JS-2獲取傳送請求位置datatables獲取表格資料

劇透:就是使用了一下Chrome Source的XHR/fetch Breakpoints 功能,在傳送請求時在該行進入斷點除錯。 # 一:不認識一下XHR/fetch Breakpoints 這個功能麼? 可以去 https://developers.google.com/web/tools/chrome-

Alfred 3 如何設定預設搜尋引擎百度搜索

前提條件: Alfred 3 已經安裝在MAC中 首先要有破解的Alfred 3 安裝在MAC PRO中,然後進入到以下欄目:Features-->web Search-->Add Custom Search(根據以下圖來設定) ; 注意:如果需要設定指定在百度中搜索內容,需要設

線上生成android應用程式初探線上生成EPUB電子書

最近發現國內有的公司提供線上編輯並自動編譯生成android應用程式的產品。覺得有點意思,正好有幾個朋友老說需要epub格式的電子書,看了看android的SDK,自己業餘時間做了個線上生成apk電子書閱讀器和epub電子書的程式。近一週沒有看電視了,有必要把整個實現過程分