使用phpize增加php模塊,phpize安裝

本文目錄一覽:

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

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

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環境中安裝PHP擴展模塊

1、先進入php解壓縮後的源碼包中,找到要安裝的擴展模塊的目錄。

[root@redhat5 sockets]# cd /home/soft/php-5.2.12/ext/sockets

在sockets目錄下面以絕對路徑運行phpize程序,這時會自動生成sockets的configure程序,在sockets目錄下面可以看到。

[root@redhat5 sockets]# /home/webserver/php5.2.12/bin/phpize

2、進行編譯安裝

[root@redhat5 sockets]# ./configure –with-php-config=/home/webserver/php5.2.12/bin/php-config

[root@redhat5 sockets]#make

[root@redhat5 sockets]#make install

執行完make install屏幕上會提示sockets.so存放的路徑,然後把它複製到php的extensions目錄中,例如我的路徑為 /home/webserver/php5.2.12/lib/php/extensions

3、修改php.ini文件

找到extension_dir = “./” 這行,修改為:

extension_dir = “/home/webserver/php5.2.12/lib/php/extensions/”

然後再新增加一行:

extension=sockets.so

4、重啟apache即可生效。

很簡單吧,其實你和我一樣多在後盾人看看教學視頻時間長了就明白了

linux下用phpize給PHP動態添加擴展

使用php的常見問題是:編譯php時忘記添加某擴展,後來想添加擴展,但是因為安裝php後又裝了一些東西如PEAR等,不想刪除目錄重裝,別說,php還真有這樣的功能。

我沒有在手冊中看到。

如我想增加bcmath支持,這是一個支持大整數計算的擴展。windows自帶而且內置,linux本類函數僅在

PHP

編譯時配置了

–enable-bcmath

時可用(引號內是手冊中的話)

幸好有phpize,

方法是,要有與現有php完全相同的php壓縮包。我用的是php-5.2.6.tar.gz。

展開後進入裡面的ext/bcmath目錄

然後執行/usr/local/php/bin/phpize,這是一個可執行的文本文件,要確保它在系統中

會發現當前目錄下多了一些configure文件,

如果沒報錯,則

Php代碼

./configure

–with-php-config=/usr/local/php/bin/php-config

如果你的php安裝路徑不是默認的,要改。

如果沒有報錯,則make,再make

install

,然後它告訴你一個目錄

你把該目錄下的bcmath.so拷貝到你php.ini中的extension_dir指向的目錄中,

修改php.ini,在最後添加一句extension=bcmath.so

重啟apache.

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/243529.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:56
下一篇 2024-12-12 12:57

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • 光模塊異常,SFP未認證(entityphysicalindex=6743835)——解決方案和

    如果您遇到類似optical module exception, sfp is not certified. (entityphysicalindex=6743835)的問題,那麼…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Python模塊下載與安裝指南

    如果想要擴展Python的功能,可以使用Python模塊來實現。但是,在使用之前,需要先下載並安裝對應的模塊。本文將從以下多個方面對Python模塊下載與安裝進行詳細的闡述,包括使…

    編程 2025-04-29
  • Python編程三劍客——模塊、包、庫

    本文主要介紹Python編程三劍客:模塊、包、庫的概念、特點、用法,以及在實際編程中的實際應用,旨在幫助讀者更好地理解和應用Python編程。 一、模塊 1、概念:Python模塊…

    編程 2025-04-29
  • Python如何下載第三方模塊

    想要使Python更加強大且具備跨平台性,我們可以下載許多第三方模塊。下面將從幾個方面詳細介紹如何下載第三方模塊。 一、使用pip下載第三方模塊 pip是Python的軟件包管理器…

    編程 2025-04-28
  • 如何使用pip安裝模塊

    pip作為Python默認的包管理系統,是安裝和管理Python包的一種方式,它可以輕鬆快捷地安裝、卸載和管理Python的擴展庫、模塊等。下面從幾個方面詳細介紹pip的使用方法。…

    編程 2025-04-28
  • Python datetime和time模塊用法介紹

    本文將詳細闡述Python datetime和time模塊的用法和應用場景,以幫助讀者更好地理解和運用這兩個模塊。 一、datetime模塊 datetime模塊提供了處理日期和時…

    編程 2025-04-28
  • Idea創建模塊時下面沒有啟動類的解決方法

    本文將從以下幾個方面對Idea創建模塊時下面沒有啟動類進行詳細闡述: 一、創建SpringBoot項目時沒有啟動類的解決方法 在使用Idea創建SpringBoot項目時,有可能會…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28

發表回復

登錄後才能評論