windows 上 怎样编译 php 跟 xdebug的 源代码
windows 上 怎样编译 php 和 xdebug的 源代码
网上有很多的php源代码编译介绍,但是几乎没有xdebug 的源码编译的介绍,我这里结合自己的实际操作来谈一下,其中也会涉及到apache源代码的编译。
1. php编译
我们以vs2008来作为编译工具;其他还需要php的编译套件,这个可在php官方网下载http://windows.php.net/downloads/php-sdk/,下载这个吧:
php-sdk-binary-tools-20110915.zip
假设把它释放到e:\php-sdk目录下
从开始菜单进入command-line模式:
先把vs2008的环境配置好,在命名模式下进入2008的安转路径,假设在c:\program files\micorosft visual studio v9.0; 则再次进入该目录下的vc子目录:
cd vc
c:\program files\micorosft visual studio v9.0\vc 此时执行vcvarsall.bat
c:\program files\micorosft visual studio v9.0\vc\vcvarsall.bat
这样2008的执行环境就建立好了。
下一步就是进入到php-sdk目录下,
e:\php-sdk
执行
bin\phpsdk_setvars.bat
接下来执行:
bin\phpsdk_buildtree.bat phpdev
这下就会在当前目录创建一子目录phpdev,我们把下载回来的php源代码放入到其子目录vc9/x86下面,以5.4.73为例子,这样就会目录就会是这样:
e:\php-sdk\phpdev\vc9/x86/php-5.4.37
进入到php-5.4.37目录,执行
buildconf
这时会产生configure.bat和configure.js 文件
再次执行:
configure --disable-all --enable-cli
这时候就会产生makefile 文件,我们就可以用这个文件进行编译
直接执行nmake就可以了。
这时候只产生命令行的php执行档,如果想要架设web,那就需要一个cgi的php执行档,可在configure 后面加上 --enable-cgi,如下:
configure --disable-all --enable-cli --enable-cgi
有时候我们要需要产生apache能用的module ,就还要加上apache的参数(这里以apache 2.2为例子):
configure --disable-all --enable-cli --enable-cgi --enable-apache2-2handler
但请注意,这时候需要apache 的sdk(h文件和lib文件),官方已提供了2008的对应sdk包,它包含在deps文件里面,可在官方下载deps-5.4-vc9-x86文件。
下载后把它释放在deps目录下就可以了。
后注:这个方法也适合vc6来编译5.3版的php,只是这时候要先安装2003sdk, 出错时要手动去更改一下文件(ext/standard/broscap.c文件有几处错误);
另外官方不再提供vc6的依赖包,比如编译apache 的module就过不了,这时只有自己在去编译apache,把sdk提取出来。
2. xdebug 编译
前期准备:
需要2003sdk或 6.1 sdk,假设安装的2003sdk,现通过菜单进入在xp的编译环境,再用上面的方法把vs2008环境加进来。
要编译xdebug,需要用到php的sdk, 这个可以从php 的源代码中产生,只要在上面的环境中再次执行:
nmake install
默认情况下会在c盘产生php目录,下面包含一个sdk子目录,在这个目录中,我们将看到有一个phpize.bat文件。
把xdebug源代码释放到前面的x86目录下,假设为2.2.7版,这样目录就为xdebug-2.2.7
进入到这个目录,执行phpize,一般带全路径执行:
c:\php\sdk\phpize
这样会产生3个文档:configure.bat,configure.js,confi.nice.bat
再次执行
configure --with-xdebug
产生makefile
最后执行
nmake
这样就在
release_ts目录下产生了php_xdebug.dll
后注:2.2.7版的xdebug之能在php 5.4.37下编译成功,但不能在5.3.x 下编译成功。另外2.1.x的xdebug也不能在php 5.4.37 下正常编译。
3.apache 编译
vc6,2003sdk 可以编译2.2.22版apache,但前提条件是要下载:
apr-1.5.1-win32-src.zip,arp-iconv-1.2.1-win32-src-r2.zip,apr-util-1.5.4-win32-src.zip
解压它们并把它们放入源代码srclib目录下,如果有的就替换掉。
通过2003 sdk 的菜单项进入到xp,32位环境;
进入到源代码目录,执行 :
nmake /f makefile.win
而后执行 :
nmake /f makefilw.win INSTDIR=c:\apache
这时会抱错,缺少awk执行文件,但是你发现c:\apache目录下已经有东西了
把里面的include 路径和lib路径拷贝到php 的deps 相对应路径下,
deps\include\apache2_2 (包含h文件)
deps\lib\apache2_2 (包含lib文件)
这时执行:
configure --disable-all --enable-apache2_2handler
nmake
就可以产生apache 的module了。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

要在 Apache 中設置 CGI 目錄,需要執行以下步驟:創建 CGI 目錄,如 "cgi-bin",並授予 Apache 寫入權限。在 Apache 配置文件中添加 "ScriptAlias" 指令塊,將 CGI 目錄映射到 "/cgi-bin" URL。重啟 Apache。

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

當 Apache 80 端口被佔用時,解決方法如下:找出佔用該端口的進程並關閉它。檢查防火牆設置以確保 Apache 未被阻止。如果以上方法無效,請重新配置 Apache 使用不同的端口。重啟 Apache 服務。

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

Apache 連接數據庫需要以下步驟:安裝數據庫驅動程序。配置 web.xml 文件以創建連接池。創建 JDBC 數據源,指定連接設置。從 Java 代碼中使用 JDBC API 訪問數據庫,包括獲取連接、創建語句、綁定參數、執行查詢或更新以及處理結果。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。
