當前位置:首頁 » 編程語言 » php編譯擴展

php編譯擴展

發布時間: 2023-06-10 08:58:12

Ⅰ 如何編譯安裝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

Ⅱ 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

Ⅲ php編譯完成後,怎樣把gd庫追加編譯進php

進入gd庫源碼目錄目錄,然後輸入如下命令:
phpize
./configure --prefix=/usr/bin/php --with-php-config=/usr/bin/php/php-config
make
sudo make install

接著你就可以看到生成的so路徑,大致如下:
/usr/lib/php5/20060613+lfs/gd.so

然後在php.ini文件里加上:
extension_dir=/usr/lib/php5/20060613+lfs
extension=/usr/lib/php5/20060613+lfs/gd.so

Ⅳ php 編譯5.3.8源碼包dll擴展,如何選擇生成dll是nts還是ts的

項目屬性->C/C++->預處理器->預處理器定義 編輯這一項 找到 ZTS=1 改為 ZTS=0 就是 nts 了。
PHP源碼也需要編譯成nts的,
重新生成配置文件:configure --enable-cli --disable-zts
參考資料:http://blog.526net.com/?p=2958

Ⅳ linux編譯安裝php擴展出錯

1. 下載你要安裝的軟體包,解壓得到目錄(如:phpredis)

2. 進入軟體包目錄(cd phpredis)

3. 執行phpsize命令(/usr/local/php/bin/phpize)
成功後,當前目錄將得到configure文件。


4. 進行配置(./configure --with-php-config=/usr/local/php/bin/php-config#指定安裝在哪個PHP)

Ⅵ php編譯安裝後如何安裝IMAP擴展

今天程序員在最近實施的項目中需要增加IMAP驗證,今天歷史原因,公司很多伺服器的linux操作系統及各應用程序版本都不一樣,安裝路徑也很雜亂,再加上剛接手伺服器不久,導致今天在安裝IMAP的PHP擴展時,走了很多彎路;幫把今天的操作經理寫下來供大家參考學習及備忘之。

環境:
[root@bjdx246 lib]# lsb_release -a
LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Release: 5.4
Codename: Tikanga

[root@bjdx246 lib]# php -v
PHP 5.2.5 (cli) (built: May 29 2013 16:49:51)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

[root@bjdx246 /]# rpm -qa |grep php
php-ldap-5.1.6-43.el5_10
php-cli-5.1.6-43.el5_10
php-common-5.1.6-43.el5_10

再使用phpinfo.php 查看PHP相關信息後,開始安裝php-imap,步驟如下:

cd /usr/local/src/php-5.2.5/ext/imap
yum -y install libc-client-*
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-kerberos --with-imap-ssl
make
make install

完成後,屏幕上會有提示/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613 目錄下多出一個 imap.so的文件;在上面編譯過程中,出現很多報錯,根據報錯一個網路找答案即可;

編輯 /usr/local/php/lib/php.ini ; 添加一行 extension=imap.so

最後 重啟 apache 服務搞定!

註:上面的路徑是本台伺服器的相關路徑,其它的伺服器需要根據您的實際情況進行更改,理解整個部署的思路即可哈!

Ⅶ 如何在windows環境下編譯生成PHP的zookeeper擴展dll

1、創建編譯目錄「C:\php_sdk」
2、解壓php-sdk-binary-tools-20110915.zip裡面的文件到php_sdk目錄下
3、在開始菜單找到並打開Windows SDK CMD Shell (注意一定是SDK的shell , 不是DOS操作的cmd窗口),然後執行
[plain] view plain
setenv /x86 /xp /release //這一句一定要執行成功,要不怎麼都不會編譯成功
cd php_sdk
bin\phpsdk_setvars.bat
bin\phpsdk_buildtree.bat phpdev
執行後,目錄下會生成phpdev文件夾
4、進入C:\php_sdk\phpdev\vc9\x86\,把deps-5.3-vc9-x86.7z解壓到該目錄下,覆蓋deps文件夾。(php sdk)
5、把php源代碼也解壓到x86目錄下。
6、把runkit壓縮包內容解壓到php解壓後源碼下的ext目錄下,並把文件夾名runkit-master改為runkit
7、在x86目錄下創建obj文件夾,用於保存編譯時生成的文件
8、執行以下命令,用於創建php編譯配置
[plain] view plain
cd phpdev\vc9\x86\php5.3-201308211030
buildconf
configure --help >..\configure_help.txt
configure --disable-all --enable-cli --enable-runkit=shared --enable-object-out-dir=..\obj
註:配置中的--enable-runkit=shared意思是 memcache 以 dll 形式生成,否則就和php集成在一起了。

Ⅷ thinkphp可以編譯成dll擴展嗎

thinkphp是php語言寫的,php是解釋性語言,dll擴展是編譯性語言(C語言等)編譯出來的,所以不可以的

熱點內容
制定編程 發布:2025-02-13 19:11:39 瀏覽:58
微商相冊安卓與蘋果機哪個方便 發布:2025-02-13 19:10:02 瀏覽:6
優酷視頻緩存設置 發布:2025-02-13 19:04:03 瀏覽:156
如何識別網路配置 發布:2025-02-13 19:04:02 瀏覽:300
android簽名漏洞 發布:2025-02-13 18:59:47 瀏覽:255
解壓高達 發布:2025-02-13 18:58:56 瀏覽:518
蘋果怎麼對備忘錄加密碼 發布:2025-02-13 18:44:19 瀏覽:72
php房產網 發布:2025-02-13 18:18:06 瀏覽:86
源碼資源吧 發布:2025-02-13 18:14:39 瀏覽:80
java培訓價錢 發布:2025-02-13 17:59:33 瀏覽:975