說明
環境:
<code> ubuntu14.4 php5.5.9 通过apt-get 安装 </code>
因為不同於編譯安裝的php,需要重新下載php原始碼進行擴充。
<code>$ <span>sudo</span> apt-get <span>source</span> php5 </code>
保存目錄可自訂
打開源碼文件進入到ext中,這裡是存放擴展的地方,我們可以看到有 許多官方的擴展
這裡可以科普一下php原始碼的主要目錄以及功能
./main包含PHP主要宏定義
./pear 包含PEAR核心檔
./sapi 包含不同伺服器抽象層程式碼
./Zend包含引擎的所有檔案
我們要用到php-dev包,編譯安裝下會內建 $sudo apt-get install php5-dev
$phpize-v
驗證安裝是否成功
正式開始擴充
使用ext_skel 這個檔案就在ext目錄下 $./ext_skel --extname=newext
很多教程上都是這一句指令,但我在使用過程中發現了會在後續過程中找不到newext.c檔
尋找剛才的操作,發現會報cannot open /skeleton.c: No such file 原來是找不到skeleton.c 我們可以透過查看ext_skel發現
所以需要指定skel的path
刪除原先newext目錄,重新走一遍 $ ./ext_skel --extname=newext --skel=/usr/lib/php5/skeleton
成功後回傳
根據提示我們需要更改 /newext2/config.m4 的註解
<code><span>$cd</span> newext2 <span>$phpize</span> $<span>.</span>/configure <span>--</span><span>with</span><span>-php</span><span>-config</span><span>=</span>/usr/bin/php<span>-config</span><span>$make</span></code>
在這裡需要注意,如果出現make無規則錯誤 需要查看php-config路徑是否正確
在這裡需要注意,如果出現make無規則錯誤 需要查看php-config路徑是否正確
在這裡需要注意,如果出現make無規則錯誤 需要查看php-config路徑是否正確 在這裡需要注意,如果出現make無規則錯誤 需要查看php-config路徑是否正確
<code><span>$make</span> test <span>$make</span> install</code>
增加extension = newext2.so
注意cli模式和cgi模式下的php.ini檔案是不一樣的,我在剛開始實驗的時候發現cli模式下使用
<code><span>$usr</span>/bin/php <span>-m</span></code>
後來 在cli 下輸出phpinfo 找到php.ini的路徑作出修改最後成功
控制台下phpinfo輸出過大可以使用下面方法
<code><span>$ </span>php phpinfo.php | less </code>
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i
').text(i)); }; $numbering.fadeIn(1700); }); });以上就介紹了PHP C延伸初探,包括了方面的內容,希望對PHP教程有興趣的朋友有幫助。 🎜 🎜 🎜