php拓展安裝
⑴ Docker php安裝擴展步驟詳解
Docker 中的PHP容器安裝擴展的方式有
1、通過pecl方式安裝
2、通過php 容器中自帶的幾個特殊命令來安裝,這些特殊命令可以在Dockerfile中的RUN命令中進行使用。
docker-php-source extract | delete
參數說明:
案例:
命令格式:
docker-php-ext-install 「源碼包目錄名」
注意點:
案例:
⑵ 如何安裝php的擴展bcmath
安裝php的擴展bcmath具體步驟如下(以下操作均在wdcp 2.4的環境中):
1、ssh登陸vps控制台後,進入要安裝的擴展的源碼目錄:cd /root/lanmp/php-5.2.17/ext/bcmath
2、運行phpize,這是wdcp中的路徑
configuring for:
php api version:
20041225
zend mole api no: 20060613
zend extension api no: 220060519
3、編譯安裝:
./configure --with-php-config=/www/wdlinux/php/bin/php-config
make
make install
4、增加到配置文件php.ini里
vi /www/wdlinux/etc/php.ini
在最後增加:extension=bcmath.so
5、重啟服務
service httpd restart
service nginxd restart
然後就大功告成
⑶ PHP單獨添加擴展 無需重啟伺服器
問題
php自身提供了很多擴展,比如curl,gmp, mbstring等等。我們在編譯安裝php時未必安裝了所有擴展。那麼在安裝完php後,如果想單獨安裝某個php自身的擴展怎麼辦呢?
我們以curl擴展模塊的安裝為例說明如何單獨添加擴展。
步驟
1.進入php源碼的擴展目錄。本例中我的源碼對應目錄如下:
/search/src/php-7.0.14/ext
1
2.進入模塊目錄,我們安裝的是curl擴展,所以進入curl目錄。此時,我們所在的目錄是
/search/src/php-7.0.14/ext/curl
1
3.執行phpize。注意,如果你的機器上有多個php版本,一定要執行你准備安裝擴展的php版本對應的phpize。比如,我的機器上同時有php7和php5.3.3。我當前准備為php7安裝curl擴展。所以執行php7對應的phpize
1 /usr/local/php70/bin/phpize
2
3 結果類似:
4 Configuring for:
5 PHP Api Version: 20151012
6 Zend Mole Api No: 20151012
7 Zend Extension Api No: 320151012
4.執行
./configure --with-php-config=/usr/local/php70/bin/php-config
1
說明:如果你的機器上只有一個php版本,大多時候不需要特別使用–with-php-config指明相應的php-config所在位置。
5.執行make,之後會在./moles/目錄下生成curl.so文件
6.執行make install
結果類似:
Installing shared extensions: /usr/local/php70/lib/php/20151012/
1
2
執行結果告訴你將curl.so安裝到了哪個目錄。
一般情況,如果你正確的指定了php-config或者你的機器只有一個php版本,so都會被正確安裝到相應php的extension_dir。如果執行make install後,extension_dir目錄下沒有相應的so,可以手動將第5步中生成的so文件cp過去。
要查看具體extension_dir,可以執行如下命令。
php -i| grep extension_dir
結果類似
extension_dir => /usr/local/php70/lib/php/20151012/ => /usr/local/php70/lib/php/20151012/
1
2
3
7.在php.ini中增加
extension=curl.so
1
如果不知道php.ini的具體位置,可以通過如下命令查看
php --ini
1
8.執行如下命令,查看是否安裝成功
php -m | grep curl
1
如果你看到了curl, 恭喜你,安裝成功!
⑷ 如何安裝新的PHP擴展模塊
php安裝好後,可能在初次安裝時,會有些模塊會有遺漏,但是我們又不想重新編譯php,因為耗時是比較長的。我們可不可以在不重新編譯安裝php的情況下,來為php單獨添加某一個模塊呢?查找資料,發現還是有方法的,重點就是phpize了,於是寫了這篇文章.
下面我們就以單獨為php載入mysqli模塊為例,演示如何動態為php添加模塊。
1、找到php原碼安裝文件
2、cd /home/php/ext/myslqi
3、運行 /usr/local/php/bin/phpize
4、/configure –with-php-config=/usr/local/php/bin/php-config
5、make && make install
6、安裝完成之後會在系統/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/這個目錄下面生成mysqli.so的庫文件
7、編輯php.ini文件,指定php到哪人目錄讀取模塊
vi /usr/local/php/etc/php.ini
extension_dir=」/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613″
extension=mysqli.so
8、重啟php服務 /usr/local/php/sbin/php-fpm restart
7、/usr/local/php/bin/php -m|grep mysqli 查看mysqli.so是否存在
如果步驟正確,你的人口也不差的情況下,應該這樣php的動態模塊載入就完成了。
⑸ 如何編譯安裝PHP擴展
一開始安裝PHP的時候,我們並不知道需要哪些擴展,所以只有等到我們真正用到的時候才想辦法去安裝。
安裝PHP擴展最簡單的辦法就是
sudo apt-get install php5-xxx
但有的時候並非我們所願,源裡面並沒有我們需要的擴展,這時候就需要我們下載源碼自己編譯安裝了。
這篇文章中我將介紹在本地Linux平台下編譯安裝PHP擴展的方法。
現在網站根目錄下創建 index.php 列印基本的配置信息,以驗證我們是否安裝成功。
配置編譯環境
我們需要安裝一些編譯必須的庫,還有 php-dev 版本
Ubuntu
sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev
Fedora
sudo yum install php-devel php-mysqlnd gcc libtool
RHEL
sudo yum install php-devel php-mysql gcc libtool
Suse
yast2 -i php5-pear php5-devel php5-mysql gcc
安裝擴展
PHP有兩種可供安裝的擴展:一種是PHP原生的但是默認沒有安裝的,另一種的第三方開發的擴展。
下面依次介紹兩種擴展的安裝方法:
安裝之前我們需要一份和當前機器上相同版本的PHP源碼
cd code
wget http://cn2.php.net/distributions/php-5.5.9.tar.bz2
tar xvjf php-5.5.9.tar.bz2
cd php-5.5.9
前往此處 下載相應的源碼包。
在 /ext 目錄下面可以看到所有PHP原生的擴展。
安裝原生擴展
以 PHP-intl 為例,這是PHP國際化的擴展。
為了安裝這個擴展我們需要先安裝ICU 庫
sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg
ICU 安裝成功之後進入/ext/intl 目錄:
cd intl
phpize
./configure --enable-intl
make
sudo make install
下面解釋一下上面的每個命令:
phpize : 是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊
./configure --enable-intl: 配置編譯環境,相當於告訴編譯器編譯PHP源碼的時候加上intl這個擴展。
make: 將會把源碼編譯成 intl.so
make install : 將會把 intl.so 移動到當前安裝的 PHP 的擴展目錄。
接下來我們要做的就是在php.ini中啟用這個擴展,這一步將會在最後給出示例。
安裝第三方擴展
將以這個 擴展為例,這個擴展主要實現了PHP識別條形碼的功能。
先安裝必要的依賴
sudo apt-get install pkg-config
git clone https://github.com/mongodb/mongo-php-driver
cd mongo-php-driver
phpize
./configure
make
sudo make install
將會生成一個文件,將其拷貝到PHP的擴展目錄下面。
啟用擴展
在php.ini中啟用擴展的方式有很多:
直接在php.ini文件中添加 extension=mongo.so,這是最簡單直接的方法。
也可以單獨建一個ini文件,然後在php.ini中包含這些文件就可以了。
下面介紹一下第二種方法:
cd `/etc/php5/mods-available`
這個目錄里可以放新建的ini文件,然後執行
sudo touch mongo.ini
echo "extension=mongo.so" | sudo tee -a mongo.ini
sudo touch intl.ini
echo "extension=intl.so" | sudo tee -a intl.ini
上面的命令將會創建ini文件,並且寫如相應的配置信息。
然後執行下面的命令啟用擴展即可(需要安裝 php5enmod 工具):
sudo php5enmod mongo
sudo php5enmod intl
如果未安裝 php5enmod 工具,則需要手動配置:
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/cli/conf.d/intl.ini
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/fpm/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/fpm/conf.d/intl.ini
最後在執行一下重啟操作就可以了:
sudo service nginx restart
sudo service php5-fpm restart
⑹ 如何安裝php的擴展bcmath
為了讓網站成功運行,就需要在php中增加bcmath這個擴展(其實默認的php中已經存在bcmath擴展,但是沒有安裝編譯)
安裝php的擴展bcmath具體步驟如下(以下操作均在wdcp 2.4的環境中):
1、ssh登陸vps控制台後,進入要安裝的擴展的源碼目錄:cd /root/lanmp/php-5.2.17/ext/bcmath
2、運行phpize,這是wdcp中的路徑: /www/wdlinux/php/bin/phpize
出現如下提示:
configuring for:
php api version:
20041225
zend mole api no: 20060613
zend extension api no: 220060519
3、編譯安裝:
./configure --with-php-config=/www/wdlinux/php/bin/php-config
make
make install
4、增加到配置文件php.ini里
vi /www/wdlinux/etc/php.ini
在最後增加:extension=bcmath.so
5、重啟服務
service httpd restart
service nginxd restart
然後就大功告成
⑺ php 怎麼安裝擴展
在windows平台上,主要是三個步驟:
1、下載php擴展庫文件;
一般在http://pecl.php.net/上就有下載信息。
2、解壓縮文件,將*.dll文件復制到PHP程序主目錄下的「ext」或者「extension」目錄。
3、打開php.ini文件,在「Dynamic Extensions」配置段中加上「extension=*.dll」,關閉文件,重新啟動一下伺服器就可以載入成功了。
⑻ php安裝mqtt擴展【Mosquitto】
沒有安裝mosquitto的可以看一下鏈接先安裝一下
MQTT伺服器搭建-mosquitto1.4.4安裝指南
然後我們來安裝php擴展
如果你已經使用預先建立的軟體包來安裝Mosquitto,你需要確保你已經安裝了開發頭文件。在紅帽派生的系統上,這可能是叫做libmosquitto-devel,在基於 Debian的系統上叫做libmosquitto-dev。
你可以使用pecl來來安裝這個拓展包:
pecl install Mosquitto-alpha
1
或者,你也可以使用常規的安裝拓展的方法來安裝:
phpize
./configure --with-mosquitto=/path/to/libmosquitto
make
make install
1
2
3
4
然後添加extension=mosquitto.so到你的PHP配置文件php.ini中。
--with-mosquitto
1
是可選參數,只有當安裝程序找不到libmosquitto拓展包,才需要添加這個參數
⑼ cenos怎麼安裝php的拓展
Centos下,PHP有多種方式來安裝拓展, 主要有 包管理式的yum安裝、pecl安裝, 以及底層的源碼編譯安裝。
包管理式的安裝卸載尤為方便,而源碼編譯式的安裝則方便參數調優。
一般的搭建本機開發環境推薦包管理式的安裝,節約時間。而線上部署環境則推薦編譯安裝, 方便調優。
yum安裝
## yum方式安裝能自動安裝拓展的.so動態庫,並配置好php.ini
# 如安裝mysql拓展
yum search mysql|grep php #我們搜索到拓展名為 php-mysql.x86_64
sudo yum install php-mysql #這樣php-mysql拓展便安裝好了
# 如果出現拓展版本和php版本沖突問題, 可安裝如下任意yum源:
sudo yum install atomic-release.noarch
sudo yum install webtatic-release.noarch
# 這些源提供了其他版本的php拓展,同時每個源針對特定拓展都會提供多個版本,你只需安裝一個源即可。如:
atomic源下能搜索到5.4版的mysql拓展 atomic-php54-php-mysql.x86_64
webtatic源下能搜索到5.5版本的mysql拓展 php55w-mysql.x86_64
pecl安裝
# 我們需要先從pear官網下載 go-pear 工具
# 這個工具將幫我們同時安裝 pecl包管理器(管理php的C拓展) pear包管理器(管理php類庫)
wget http://pear.php.net/go-pear.phar
# 安裝工具
# 安裝過程除非特別指定,否則默認將工具安裝到 /home/用戶名/pear/bin 目錄下
php go-pear.phar
# 將工具目錄添加到環境變數中
# 編輯/etc/profile 追加一行配置
export PATH=$PATH:/home/用戶名/pear/bin
# 載入環境配置
source /etc/profile
# 配置工具的php_ini選項,這樣安裝拓展時pecl工具就能幫我們自動配置php.ini文件了
# vim /home/用戶名/pear/share/pear/PEAR/Config.php
# 搜索php_ini, default鍵修改為你的php.ini文件路徑:
'php_ini' => array(
'type' => 'file',
'default' => '/etc/php.ini',
'doc' => 'location of php.ini in which to enable PECL extensions on install',
'prompt' => 'php.ini location',
'group' => 'File Locations (Advanced)',
),
#確認一下,配置起效
pecl config-get php_ini #配置成功將顯示 /etc/php.ini
# 搜索mysql拓展
pecl search mysql
# 這時一般會提示我們更新工具, 則我們依據提示進行更新
sudo pecl channel-update pecl.php.net
# 再次搜索mysql拓展, 成功
pecl search mysql
# 安裝拓展
pecl install mysql
源碼編譯安裝
# 概略講解, 下次補充
# 下載拓展源碼,進入源碼目錄, 執行phpize指令生成 configure 編譯檢測腳本,
# 執行 configure腳本 結合參數 生成 編譯配置文件makefile
# make & make install 生成該拓展的動態庫
# 遷移生成的拓展動態庫 .so 文件到php.ini中配置好的extension_dir中
# php.ini 增加一個節區該拓展的配置信息
檢查mysql拓展是否安裝成功
php -i | grep mysql
成功安裝後上面命令將顯示一個節區的mysql拓展狀態信息。
但拓展載入到運行環境中還需要你重啟 web服務 亦或是 php-fpm
⑽ PHP8、FPM及部分擴展編譯安裝
本著能懶則懶的原則,之前我都是寶塔、lnmp腳本等「一鍵」
再不濟也得來個 apt/yum install php
什麼?源碼 make install ? 編譯參數一言難盡,勸退勸退...我只是想要個開發環境而已
沒關系!我來整理一下常用模塊以及參數!環境為 ubuntu/debian
檢查壓縮包的完整性,與官網 sha256比較
安裝以下包
官方的拓展分類
根據需要的模塊添加其後對應的參數
包含常用模塊,可以直接使用
編譯並安裝後
復制 php.ini 到默認目錄 /usr/local/lib/
檢查 php安裝是否正確
復制 fpm 配置文件、運行服務文件
www.conf php-fpm.conf php-fpm.service
修改 fpm 用戶和組,默認為nobody
修改服務文件,取消只讀 不然日誌不能讀寫無法啟動
設置自啟動並運行
本地起服務測試
No package 'libxml-2.0' found
No package 『sqlite3『 found
configure: WARNING: unrecognized options: –with-gd
No package 'zlib' found
No package 'libpng' found
No package 'oniguruma' found
No package 'libcurl' found
No package 'libsystemd' found
No package 'openssl' found
No package 'libzip' found