Windows上编译PHP+Imagick

Windows上编译PHP+Imagick
PHP通过Imagick扩展来实现对图片的处理,Imagick扩展是基于ImageMagick的,但Imagick扩展不是PHP自带的,如果用户想使用它,要么寻找Windows的Binary文件,要么自己编译一个。如果在Linux上,这些都不是问题。但Windows上相关的资料少之又少。下面简单介绍一下本人的编译过程。
准备过程:
1. 下载PHP源代码和编译工具
PHP的源代码可以从www.php.net上下载,具体的下载地址可以到download页面(http://www.php.net/downloads.php)上寻找。
然后到documentation页面(http://www.php.net/docs.php)上寻找编译过程的帮助,具体页面是:http://www.php.net/manual/zh/install.windows.building.php。
可以从这个页面上下载相关的编译工具:win32build和bindlib_w32,并将他们解压缩到源代码放在同级的目录中,具体目录结构如下:
+–BuildRootDir
| |
| +–bindlib_w32
| | |
| | +–arpa
| | |
| | +–conf
| | |
| | +–…
| |
| +–php-5.x.x
| | |
| | +–build
| | |
| | +–…
| | |
| | +–win32
| | |
| | +–…
| |
| +–win32build
| | |
| | +–bin
| | |
| | +–include
| | |
| | +–lib
将win32build\bin目录添加到系统环境变量Path中,这一步也可以在编译的时候指定。此外,需要在C盘建一个目录C:\usr\local\bin,将win32build\bin\目录下的bison.simple拷贝到此目录中。
完成上述工作后,编译resolv.lib。此文件的VC工程文件位于:bindlib_w32下,可以使用VC打开工程文件然后编译即可,将编译产生的resolv.lib拷贝到win32build\lib目录下(如果此文件已存在,覆盖之)。
至此,PHP的编译准备工作已完成。
2. 下载ImageMagick安装包并安装
到ImageMagick主页(http://www.imagemagick.org/script/index.php)上下载Windows的Binary文件(http://www.imagemagick.org/script/binary-releases.php?ImageMagick=ir9ijldaeppff0fudjv4kmfcj0#windows),请选择dll版本,因为只有dll版中有development相关的文件。安装dll版本,安装过程中一定要勾选:install development headers and libraries for C and C++和Add application directory into your system path两个选项。
3. 下载Imagick源代码
到ImageMagick的Program interface页面上(http://www.imagemagick.org/script/api.php)寻找PHP接口Imagick。然后下载(http://pecl.php.net/package/imagick)并解压到php源代码目录下的ext目录中(BuildRootDir/php-5.x.x/ext/imagick)。打开imagick目录下的config.w32文件,替换imagick_read.c为imagick_file.c。此处很可能是imagick的一个Bug。切记。
4. 配置Windows
如果你的Windows系统不是英文版或者默认打开文件的编码不是English(US),编译过程很可能会fail。因此需要对Windows系统的配置稍作改动,具体为:打开控制面板,选择区域与语言,找到非Unicode程序的语言项,然后配置默认使用语言为英语(美国)/English(US)。
经过以上4步之后,终于可以进行编译了。
编译过程:
使用VC的Command Prombt进入字符界面(cmd界面),然后cd到php的目录,检查一下path,看系统path中是否包括win32build\bin目录,如果没有包含进来,需要执行:set path=BuildRootDir\win32build\bin;%path%.
然后在php的源代码目录下执行buildconf.bat文件用于产生configure.js文件。然后系统提示键入”configure –help”.此时可以直接键入configure –enable-snapshot-build –disable-zip –disable-zlib –with-imagick=shared
注意以下最后生成的报告中是否包含imagick shared这样的一行。如果有,表示configure已经成功。可以键入nmake snap进行编译了。建议使用nmake snap >build.log将编译输出重定向到一个文件中。因为编译过程太长,使用日志文件方便日后检查。
编译完成之后会有一个Release_TS目录,下面会有php-5.x.x(5.x.x是你的php版本号)和3个zip文件。
编译的最终结果就位于php-5.x.x目录中。可以将它Copy到你需要的位置使用它。
测试编译结果:
以下是phpinfo()返回的关于imagick的相关信息。

好夫妻日

11月22日是阳历一年中的第326天(闰年第327天),离全年的结束还有39天。而这一天在世界上发生过许多重大事件,也被现代人作为好夫妻日。

好夫妻日

“好夫妇日”之所以被定为11月22日,主要是因为在日文里11的发音与“好”字同音,而22的发音又与夫妇同音。谐音11(いい)22(ふふ)所以,1988年日本的“自由时间设计协会”将此日定为纪念日,以此促进夫妻感情。

“好夫妻日”由11月22日的谐音而来,今年是第20年。然而,在这个时节公布的各种“夫妻调查”却屡屡让丈夫们心灰意懒。彼此的心思大相径庭,丈夫对妻子“单相思”的情形似乎越来越多。

例如,越来越多的丈夫希望夫妻在一起的时间过得充实些,而这样想的妻子却越来越少了。中老年夫妇中有15%的妻子对丈夫感到“厌恶、不快”。听了这些,阳春三月的晴天也会阴下来吧。

其原因从田边圣子的随笔中可见一端。田边女士认为这是缘自退休后人生战线开始缩短的男人与试图扩大战线的女人的差别,是固步自封的丈夫与准备享受剩余人生的妻子之间的摩擦。

丈夫梦想着要一幢别墅,而妻子却绝不肯跑到别墅去做家务。哪里比得上跟知心朋友去度假酒店呢?“大叔读司马辽太郎,大婶就读渡边淳一。”等等这些都是熟稔人类心理的田边女士观察的结果,她同时表示,中老年男性更需要家人的关心。

6c63514afeca013009f7efa7

天蝎座

天蝎座,黄道十二宫之一。它位于南半球,在西面的天秤座与东面的人马座之间,是一个接近银河中心的大星座。阳历10月23日(霜降)~11月22日(小雪)此期间出生的人为天蝎座。

也有人认为是射手座,

一般晚上20:00后星盘为人马座(射手座),20:00前星盘为天蝎座