php編譯後還能加擴充套件功能嗎

2020-07-16 10:06:46

php編譯後還能加擴充套件功能嗎

能加擴充套件。

php自身提供了很多擴充套件,比如curl,gmp, mbstring等。我們在編譯安裝php時未必安裝了所有擴充套件。那麼在安裝完php後,如果想單獨安裝某個php自身的擴充套件怎麼辦呢?我們以curl擴充套件模組的安裝為例說明如何單獨新增擴充套件。

步驟:
1.進入php原始碼的擴充套件目錄。本例中我的原始碼對應目錄如下:

/search/src/php-7.0.14/ext

2.進入模組目錄,我們安裝的是curl擴充套件,所以進入curl目錄。此時,我們所在的目錄是

/search/src/php-7.0.14/ext/curl

3.執行phpize。注意,如果你的機器上有多個php版本,一定要執行你準備安裝擴充套件的php版本對應的phpize。比如,我的機器上同時有php7和php5.3.3。我當前準備為php7安裝curl擴充套件。所以執行php7對應的phpize

/usr/local/php7.0/bin/phpize

結果類似:

Configuring for:
PHP Api Version: 20151012
Zend Module Api No: 20151012
Zend Extension Api No: 320151012

4.執行./configure

./configure --with-php-config=/usr/local/php7.0/bin/php-config

說明:如果你的機器上只有一個php版本,大多時候不需要特別使用–with-php-config指明相應的php-config所在位置。

5.執行make,之後會在./modules/目錄下生成curl.so檔案

6.執行make install

結果類似:

Installing shared extensions: /usr/local/php7.0/lib/php/20151012/

執行結果告訴你將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/php7.0/lib/php/20151012/ => /usr/local/php7.0/lib/php/20151012/

7.在php.ini中增加

extension=curl.so

如果不知道php.ini的具體位置,可以通過如下命令檢視

php --ini

8.執行如下命令,檢視是否安裝成功

php -m | grep curl

如果你看到了curl, 恭喜你,安裝成功!

注意:如果你是使用fpm,apache等方式執行php。在修改相應的php.ini後,還需要重新啟動fpm或apache,新的擴充套件才會生效

以上就是php編譯後還能加擴充套件功能嗎的詳細內容,更多請關注TW511.COM其它相關文章!