codename::boilingbit www.boilingbit.com/blog

15一/124

Windows下从源码建立PHP开发环境

由于开始写博客,免不了要自己定制一下主题和插件什么的,那么一个本地的PHP开发环境是必须的,好处就不多说了,总之就是修改快捷,测试方便,避免一个小错误就让你的博客挂掉。

考虑到国内大部分人都用的Windows系统,所以打算写个Windows系统上,从源码构建整个PHP环境的教程,目标是做一个绿色,不需要安装的PHP运行环境,一键运行,再装上WordPress或者Drupal,就可以随时写你的网站了。

做过跨平台开发的程序员大概都知道,开源软件对于Windows是有一点不友好的,编译中会有比较多的问题,好在现在越来越多的软件开始使用CMake编译(这个是个好东西),情况也有所改善了。不过,今天一天折腾的结果告诉我,其实最坑爹的是官方文档啊,按那个做没几次能成功的,不过遇到问题就去Google,总能解决的。

言归正传,首先是我的编译环境:

  • Windows7 64bit
  • VC2010
  • CMake 2.8.6
  • Perl

其他的没测试也不知道。Perl我是从 http://strawberryperl.com/ 下载的,用portable版本即可,下载地址:

http://strawberryperl.com/download/5.12.3.0/strawberry-perl-5.12.3.0-portable.zip

解压到比如 E:\Softwares\strawberry-perl-5.12.3.0-portable\,我个人不太喜欢装太多不常用的软件,也不喜欢把执行路径加入系统PATH。所以,后面的教程中,需要执行perl的时候,都需要先把perl.exe 所在的路径临时加入系统PATH环境变量,方法是:

SET PATH=E:\Softwares\strawberry-perl-5.12.3.0-portable\perl\bin;%PATH%

CMake也是类似。后面就不再说明了。

编译的次序是按我的直觉来的,所以,整个过程会有反复,可能会因为加一个参数,把前面编译过的东西再编译一遍,但这样有个好处,对于学习来说,知道为什么这么做远比知道怎么做要重要。所以,用好的命令行窗口别关,后面可能还用得着,长的命令我会折行,显示好看点,不过你用的时候最好去掉折行,避免可能的问题。

  • 如果你对具体繁琐的过程不感兴趣,只想得到最直接的步骤列表的话,请直接移步这里(未来的某篇博客 :whistle: )
  • 如果你对所有的过程都不敢兴趣,只想得到我们最终完美的执行程序的话,请点这里(未来某天我会打包的 :sleeping: )

好了,我们一步步来,首先是Web服务器,Apache(以后可能会换成nginx,效率高一个数量级):

© 2012, codename::boilingbit. 版权所有. 署名-非商业性使用-相同方式共享 (by-nc-sa)

by 标签: 发表评论
评论 (4) 引用 (0)
  1. 官方帮助文档和那个所谓的翻译版本都一样坑爹…..
    我的环境是WIN7 X64+VS2010,照着帮助文档和网上的各种资料,各种的编译…
    统统失败….
    通过你的文章终于成功编译了apache2.2.20,但是怎么没有下文了呢???
    期待啊!!! :wub: :wub:

    • 谢谢支持,php和mysql的,这两天就整理一下,发出来 :happy:

      • 嗯嗯,还有个问题请教下:
        我编译完后,跟网上下载的免安装版的比较了一下,少了几个文件
        apr_dbd_mysql-1.dll,
        apr_dbd_oracle-1.dll,
        apr_dbd_pgsql-1.dll,
        apr_dbd_sqlite3-1.dll,
        apr_dbd_db-1.dll,
        不知道这几个文件怎么编译出来的?或者在哪下载的??

        • 这些是apache对各种数据库的客户端接口实现。是在编译apache时加上类似DBD_LIST=”oracle mysql”这样的参数编译出来的,还需要先把各种数据库sdk的路径指定一下。

          后面的文章里我会提到这个,我编译的时候加上了mysql的支持,因为官方文档里提到了。但如果我们只是用到php的pdo方式存取数据库的话,这些文件很可能是不需要的,你可以试试先别编译这些,以后有问题再说。


Leave a comment

(required)

:alien: :angel: :angry: :blink: :blush: :cheerful: :cool: :cwy: :devil: :dizzy: :ermm: :face: :getlost: :biggrin: :happy: :heart: :kissing: :lol: :ninja: :pinch: :pouty: :sad: :shocked: :sick: :sideways: :silly: :sleeping: :smile: :tongue: :unsure: :w00t: :wassat: :whistle: :wink: :wub:

还没有引用.