1. 程式人生 > >Ubuntu16.04編譯PHP7.0,並開發PHP擴充套件

Ubuntu16.04編譯PHP7.0,並開發PHP擴充套件

準備

下載完成後解壓:
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";
}
?>

以上

相關推薦

no