zoukankan      html  css  js  c++  java
  • php源码的编译

    本片文章主要介绍windows下的php源码的编译。

    1.1 编译环境

    软件

    环境

    操作系统

    Windows 7 专业版 32bit

    Visual studio

    2012 专业版

    PHP

    5.5.2.1 线程安全版本

    PHP-SDK

    下载

    1.2 编译步骤

    该配置步骤参考PHP官方文档

    1  解压PHP-sdk文件,分别放置于D:/PHP/PHP-sdk/;

    2  在PHP-sdk下打开VS2012 x86本机工具命令行提示(该命令行提示符包含了VS的编译、链接等命令的path路径),跳转至PHP-sdk目录下,输入命令:

    binphpsdk_setvars.bat

    配置PHPsdk的包含路径;

    3   运行命令

    binphpsdk_buildtree.bat phpdev

    得到生成配置PHP编译路径,得到phpdev目录,该目录下得到VC6、VC8、VC9三个目录,分别对应不同编译器的编译环境,目录内容如下所示:

    ─vc9

        ├─x64

        │  └─deps

        │      ├─bin

        │      ├─include

        │      └─lib

        └─x86

            └─deps

                ├─bin

                ├─include

                └─lib

    4  由于没有生成vs2012(VC11)的编译目录,因此可以将phpdev文件夹中的vc9文件夹复制为VC11.

    5  将PHP源码解压至D:phpphp-sdkphpdevvc11x86 目录下。

    6  运行命令

    Buildconf.bat

    7  该命令会扫描所有可用包的路径,并得到配置文件configure.js。

    8  运行命令

    configure.bat

    该命令可以配置需要安装的扩展,以及SAPI命令。帮助可使用命令:

    configure.bat --help

    官方给出的建议是

    configure --disable-all --enable-cli

    其中 cli (command-line interface)是命令行版本的PHP,可以设置 cgi、apache module等sapi接口生成。

    9  运行命令

    nmake [clean]

    该命令类似与linux版本的make,是VS的生成工具。其Makefile程序是以mak结尾的文件。Clean 参数可以清除生成文件。       

    若无任何错误,则在源码目录的Release_TS目录下生成了PHP.exe 可执行程序。该程序中包含了配置的所有模块,无需再手动添加dll库。

    1.3 可能的问题

    1. 没有包含CL 、MC程序,需要重新打开VS2012 x86本机工具命令行提示
    2. 未找到bison、re2c等程序。re2c是PHP5.5采用的词法分析器,bison是gnu项目的一种语法分析器。该类程序在php-sdk/bin目录下包含。需要重新运行命令
    binphpsdk_setvars.bat

              添加。

    1. 扩展 calendar中存在文件编码问题。将 phpsource/ext/calendar/ 目录下jewish.c 文件修改编码为utf-8即可。(可以采用notepad++修改)
    2. 编译php5apache2_4模块时,需要下载apache2.4,并需要配置include、lib、bin目录。本文通过添加用户的include、lib、bin(path路径)目录的方法配置。配置方法类似配置path路径。
    3. 在配置mysqlnld扩展时,可能会出现zlib未包含的情况。可以下载zlib,编译,并在deps的bin、include、lib目录下分别放zlib的dll、zlib.h zcon.h、lib文件。
  • 相关阅读:
    统计数据库中表,视图,存储过程个数
    MVC4 上传图片并生成缩略图
    如何获取版本的 Internet 信息服务器 (IIS)
    验证码(中)——封装.使用
    验证码(上)——创建验证码
    javascript中window.open()与window.location.href
    PHP-文件目录操作
    功能三——读取试题列表与分页显示
    PHP开发-模板的使用
    面向对象
  • 原文地址:https://www.cnblogs.com/-lee/p/4248971.html
Copyright © 2011-2022 走看看