準備
先下載PHP源文件使用:
wget https://downloads.php.net/~ab/php-7.0.11RC1.tar.bz2
下載完成後解壓:
tar jxf php-7.0.11RC1.tar.bz2
安裝編譯用的一些第三方:
sudo apt-get update
sudo apt-get install libxml2-dev
安裝gcc
sudo apt-get install build-essential
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt-get install make
sudo apt-get install curl
sudo apt-get install libcurl4-gnutls-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libpng-dev
sudo apt-get install libmcrypt-dev
sudo apt-get install libreadline6 libreadline6-dev
進入目錄
cd php-7*
編譯 安裝 PHP
./configure
sudo make install
編譯完成後,使用php -v
查看當前版本,當出現下圖所示說明編譯安裝完成:
擴展開發
生成擴展
首先進入PHP代碼中的ext目錄:
在其下面創建一個文件:sunny.def,內容如下:
string self_concat(string str, int n)
運行下面的命令:
./ext_skel --extname=sunny --proto=sunny.def
可以看到當前目錄下多出了一個sunny目錄,進入sunny目錄:
可以看到有個config.m4文件,修改其中的這三行:
去掉dnl
修改完成後先安裝一個第三方:
sudo apt-get install php-dev
然後在當前目錄下使用命令行:
phpize
會看到出現了很多新文件,在使用命令行:
./configure
sudo make
就可以看到當前目錄下多了一個modules文件夾:
打開之後有個sunny.so文件即爲可用的linux下的擴展
將擴展加入到當前的PHP環境中:
使用命令行:php -info|more
可以看到當前PHP的配置文件的目錄,如下:
擴展目錄如下:
先將sunny.so複製到對應得擴展目錄,再修改php.ini,方式如下:
可以選擇複製當前PHP源文件下的php.ini-development或者php.ini-production文件中的一個到上面的:
/usr/local/lib文件夾下:
修改php.ini,加入:
extension=sunny.so
如此修改完成之後使用命令行查看:
php -m
可以看到如下圖所示:
說明已經安裝完成。
如果想進一步測試,可以用下面的方式:
新建一個php文件,內容爲:
<?php
print confirm_sunny_compiled("sunny");
可以看到輸出了下圖內容說明已經測試成功:
然後重新打開擴展目錄sunny,修改其中的sunny.c文件
修改完成後重新編譯,複製sunny.so到指定的擴展目錄,然後修改測試php文件爲
<?php
for ($i = 1; $i <= 3; $i++){
print self_concat("ThisIsUseless", $i);
print "\n";
}
?>
執行後輸出:
說明擴展成功,當然上面只是簡單的C語言循環字符串的demo,沒有實際意義,僅供參考
參考:http://blog.csdn.net/earbao/article/details/50235413
http://www.laruence.com/2009/04/28/719.html