zoukankan      html  css  js  c++  java
  • 在windows平台上构建自己的PHP(php5.3+)

    这是一篇翻译的文章,原文参见:https://wiki.php.net/internals/windows/stepbystepbuild

    顺便提一句,wiki.php.net有很多精彩的内容,想深入了解php的同学千万不要错过:)

    准备工作

    在windows平台上编译php,需要三样准备工作:

    1,合适的编译环境,包括安装一个编译器、正确的SDK以及对应的binary tools

    2,编译PHP需要用到的第三库、头文件

    3,PHP源代码

    构建环境

    这是在windows平台上编译php最困难的部分,因为建立这样的编译环境需要大量的磁盘空间,可能会有数G

    需求:

    注:

    最新的php5.5可以用VC++9或者VC++11编译,不过5.5尚未正式发布。

    如果使用的是VC6,则需要安装Windows Server Feb.2003 SDK,如果使用的VC9则需安装SDK6.1

    构建步骤

    1,安装vs2008

    2,安装windows sdk 6.1

    3,获得php 5.3源码,可以从此处获取snapshot (先不要解压)

    4,创建文件夹c:\php-sdk

    5,解压binary-tools.zip 至c:\php-sdk文件夹中。binary-tools.zip可以从此处获取(http://windows.php.net/downloads/php-sdk/)。解压后C:\php-sdk中应该包含bin,script,share等子目录。

    6,打开windows sdk 6.1 shell,直接下述指令:

      PHP 5.2, 5.3 and 5.4:

    setenv /x86 /xp /release

      PHP 5.5+:

    setenv /x86 /2008 /release

    7,

    cd c:\php-sdk\

    8,

    bin\phpsdk_setvars.bat

    9,

    bin\phpsdk_buildtree.bat php53dev

    10,现在解压第3步中下载的snapshot至C:\php-sdk\php53dev\vc9\x86文件夹中。解压完成之后,目录路径形如C:\php-sdk\php53dev\vc9\x86\php5.3-xyz。

    11,在C:\php-sdk\php53dev\vc9\x86中,有一个deps文件夹。下载编译所依赖的一些libraries,并且解压至其中。这些libraries可以从http://wiki.php.net/internals/windows/libs获得。确保解压完成之后,deps下包含/include和/lib目录。(注:笔者直接从http://windows.php.net/downloads/php-sdk/下载了deps-5.3-vc9-x86.7z可以顺利编译通过)

    12,继续在windows-sdk-shell中运行

    cd C:\php-sdk\php53dev\vc9\x86\php5.3-xyz

    13,

    buildconf

    14,查看编译选项

    configure --help

    15,根据自己的需要输入构建指令:

    configure --disable-all --enable-cli 编译最简单的PHP内核并且只支持cli运行方式

    configure --disable-all --disable-zts --enable-cli --enable-debug --enable-mbstring --enable-session --enable-sockets --enable-json

    (注: 一些扩展需要lib,头文件甚至其他程序,详见libs ,下载自己所需的版本并且解压至deps文件夹c:\php-sdk\php53\vc9\x86\deps)

    16,

    nmake

    17,如果你需要压缩编译好的php文件,继续执行:

    nmake snap

    18,编译完的PHP位于C:\php-sdk\php53dev\vc9\x86\php5.3-SNAPSHOTTIME\Release_TS目录。

    修改并重新编译

    1,清除上次的编译结果

    nmake clean

    2,如果你需要重新config

    buildconf --force

    3,输入新的configure配置

    configure --disable-all --enable-cli --enable-$remains

    4,编译

    nmake

    如果只编译最精简的PHP(仅enable-cli),编译成功之后,可以观察一下编译了哪些EXT,SAPI:

    除了standard(标准扩展),这个php版本只含有date,ereg,pcre,reflection,SPL几个扩展,它们的源码都可以在php-src/ext中找到。

    知识共享许可协议
    本作品由driftcloudy创作,采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。欢迎自行转载,发布,演绎,但必须保留本文作者署名driftcloudy(包含链接http://www.cnblogs.com/driftcloudy),且不得用于商业目的。
  • 相关阅读:
    1.1 java变量及数据类型
    3. 软件测试的类型
    2.3 软件测试模型之 敏捷测试
    2.2 软件测试的手段
    2.1 软件测试的阶段
    1.1 软件测试基础概念
    浅谈内联元素inline
    微信内置浏览器清除缓存的方法
    我的package.json清单
    我的gulp.js清单
  • 原文地址:https://www.cnblogs.com/driftcloudy/p/3138049.html
Copyright © 2011-2022 走看看