PHP程序员学习笔记|如何学习PHP

个人总结的PHP学习方法


windows 下编译PHP (5.4为例)

2017-12-1 0phpcom 学习笔记


花了 2 天时间研究这个今天终于成功写个文章记录下
遇到的问题:
1.buildconfig 以后 运行configure 出现很多报错
原因:由于电脑装了2013 偷懒没装2008 用的2013版本的VS导致编译出的configure.js 各种报错不能用
2.nmake 编译提示 zlib.h无法打开
原因&&解决方法:网上下载 PHPSKD包即可 deps-5.4-vc9-x86_2015-05
下载地址:deps-5.4-vc9-x86_2015-05.7z
主要是这2个

前期工具准备
php编译需要用到的工具如 BISO php-sdk-binary-tools-20110915.zip
php5.4的SDK包 deps-5.4-vc9-x86_2015-05.7z
php5.4源码包 php-5.4.4-src.zip
vs2008:http://download.microsoft.com/download/e/7/7/e777851c-c1a4-4979-86b3-6886953b32e9/VS2008ProEdition90DayTrialCHSX1435983.iso

vs2008 SP1补丁包:http://download.microsoft.com/download/1/9/d/19d22169-a4b2-455f-8c28-ed137bd91487/VS2008SP1CHSX1512981.iso

VS的破解方法自行百度 很简单的

step1:
打开VS2008的命令行 如图所示 用 这个主要是省去了配置VS的环境变量的动作 懒嘛
飞鸽截图20171201105759.png
step2:
解压之前下载的 php-sdk-binary
执行以下命令 第二个命令会生成几个目录
  1. bin\phpsdk_setvars.bat  
  2. bin\phpsdk_buildtree.bat phpdev  
接下来,将PHP源码解压到php-sdk\phpdev\vc[x]\x[x]\<php-source-directory>目录
然后解压 deps-5.4-vc9-x86_2015-05 中的几个目录放入php源码同级目录下,切记是deps 下级的目录拖入php源码中 而不是吧deps这个目录脱进去,这样是不会生效的

执行configure --disable-calendar ,配置编译php

执行nmake,完成编译

执行“nmake snap”


编译完成

PS:编译遇到的错误

1)calendar扩展编译错误,禁止掉即可--disable-calendar

  1. ext\calendar\jewish.c(325) : error C2001: newline in constant  
  2. ext\calendar\jewish.c(326) : error C2001: newline in constant  
  3. ext\calendar\jewish.c(327) : error C2001: newline in constant  
  4. ext\calendar\jewish.c(328) : error C2001: newline in constant  
  5. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\  
  6. VC\Bin\cl.exe"' : return code '0x2'  
  7. Stop.  

2)连接错误,需要安装vs2008 SP1,下载地址(http://download.microsoft.com/download/1/9/d/19d22169-a4b2-455f-8c28-ed137bd91487/VS2008SP1CHSX1512981.iso
  1. fatal error C1900: Il mismatch between 'P1' version '20080116' and 'P2' version  
  2. '20070207'  
  3. LINK : fatal error LNK1257: code generation failed  
  4. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\  
  5. VC\Bin\cl.exe"' : return code '0x2'  
  6. Stop.  

PS:推荐的PHP常用配置

  1. configure --enable-apache2-4handler --enable-apache2-2handler --disable-cgi --disable-calendar --enable-pdo --with-pdo-sqlite=shared --enable-mbstring=shared --enable-mbregex   
« php一句话实现 取出二维数组中的某一个值作为键 | 纪念我逝去的青春»
发表评论:









订阅Rss