本文目錄一覽:
- 1、php擴展問題怎麼都編譯通過不了
- 2、我在linux下安裝php5.3.5時 編譯時出錯, 具體錯誤如下
- 3、windows下開發並編譯PHP擴展的方法
- 4、ubuntu下安裝PHP,編譯時候報錯
- 5、如何在編譯好的PHP環境中安裝PHP擴展模塊
php擴展問題怎麼都編譯通過不了
法一,用集成包來安裝;
法二,清理你的註冊表項,這是安裝後,有餘項所致辭。
我在linux下安裝php5.3.5時 編譯時出錯, 具體錯誤如下
你的LINUX系統缺少這個libltdl.so.3的模塊呀。
插入安裝盤,然後進入RPM包的目錄裡面執行
rpm -Uvh libltdl*
如果提示100%安裝完成。那就可以啦。
然後,先刪除原來的PHP,再編譯安裝PHP。
希望能幫到你,祝你好運啦。
windows下開發並編譯PHP擴展的方法
現在就簡單說一在WINDOWS下開發PHP擴展的步驟:
首先需要準備的軟件有:
cygwin
安裝路徑e:\app\cygwin
visual
studio
C++
6.0,
修改環境變量,把已經安裝好的PHP路徑設置為環境變量。在這裡,假設我的PHP安裝目錄是:e:\app\php5.2.5,那麼我把WINDOWS環境變量後面加上這個安裝目錄。方便一會兒使用php.exe。
PHP源代碼,這裡假設為e:\c_source_code\php-5.2.5
1、修改文件
“PHP源文件目錄/ext/ext_skel_win32.php”,在這裡就是:E:\c_source_code\php-5.2.5\ext,其中主要是修改其中的cygwin路徑。$cygwin_path
=
‘e:\app\cygwin\bin’;
把$cygwin_path修改為你實際安裝cygwin的路徑。
2、在源代碼ext目錄也就是e:\c_source_code\php-5.2.5\ext下,執行
php
ext_skel_win32.php
–extname=EXT_NAME,此時會在ext目錄下生成EXT_NAME目錄,這個目錄就是我們將要進行PHP擴展開發的框架。比如你運行php.exe
ext_skel_win32.php
–extname=foo,會在ext目錄下生成foo目錄。
3、將php-root\dev\php5ts.lib拷貝至
“ext/EXT_NAME”中。比如你要開發的PHP擴展名為foo,那麼就需要把php-root\dev\php5ts.lib拷貝到PHP源文件目錄\ext\foo中。
4、修改foo.c內容,編寫我們需要的C代碼。
5、進入EXT_NAME目錄,打開EXT_NAME.dsp。
設置VC6工程,
設置菜單“組建”-“移除工程配置”,選中“Win
32
Release_TS”,
設置菜單“工程”,選中“Win
32
Release_TS”
打開Tab“連接”,設置“輸出文件名”中的目錄,
[可選]打開Tab“C/C++”,增加“預處理器定義”“,COMPILE_DL_EXT_NAME”(注意全大寫,默認加入的),取消預定義“LIBZEND_EXPORTS”(否則不可引入zend函數)。
6、設置好以後,進行編譯,會生成一個dll文件,文件名是EXT_NAME.dll,比如在我們的例子中就為foo.dll
把foo.dll拷到e:\app\ext目錄下,並在php.ini里加上一行extension=foo.dll,重啟一下apache,查看phpinfo();,會發現我們的PHP擴展foo()已經加載進來,已經可以使用這個foo擴展了。
ubuntu下安裝PHP,編譯時候報錯
應該是缺少openssl-dev之類的頭文件,不用ubuntu,所以不知道具體名稱,你可以
apt-cache search openssl,查看輸出內容,尋找類似openssl-dev的包安裝 。
因為ubuntu的包一般只包括運行文件,編譯用的頭文件是單獨打包的。
如何在編譯好的PHP環境中安裝PHP擴展模塊
1、先進入php解壓縮後的源碼包中,找到要安裝的擴展模塊的目錄。
[root@redhat5 sockets]# cd /home/soft/php-5.2.12/ext/sockets
在sockets目錄下面以絕對路徑運行phpize程序,這時會自動生成sockets的configure程序,在sockets目錄下面可以看到。
[root@redhat5 sockets]# /home/webserver/php5.2.12/bin/phpize
2、進行編譯安裝
[root@redhat5 sockets]# ./configure –with-php-config=/home/webserver/php5.2.12/bin/php-config
[root@redhat5 sockets]#make
[root@redhat5 sockets]#make install
執行完make install屏幕上會提示sockets.so存放的路徑,然後把它複製到php的extensions目錄中,例如我的路徑為 /home/webserver/php5.2.12/lib/php/extensions
3、修改php.ini文件
找到extension_dir = “./” 這行,修改為:
extension_dir = “/home/webserver/php5.2.12/lib/php/extensions/”
然後再新增加一行:
extension=sockets.so
4、重啟apache即可生效。
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/130193.html