费了2,3天功夫才架起来,赶紧记一下免得忘了。
1. 操作系统
win7,没有办法,小黑本的干活...
2. Apache
第一步就是去http://httpd.apache.org/,不过发现download里面只有msi的版本,出于一种喜欢绿色软件的癖好;),不想装带windows installer的那种——会产生注册表,开始菜单,或者在系统目录下留下很多东西。于是我到http://www.apachelounge.com/download/上面下了一个,这个网站我以前架apache的时候也用的是他们的版本,看介绍还不错,用vc9编译的,当然具体区别我是没体验出来。。
下载:httpd-2.2.14-win32-x86-ssl.zip
安装:a) 解压
b) 编辑conf/httpd.conf,设定DocumentRoot为"path/to/your/htdocs"
c) 安装成windows service, bin/httpd -k install
d) 启动,bin/httpd -k start,访问http://localhost, 就可以看到"It works“的界面了
小记:这个apache还是个带MPM编译参数的,关于MPM可参看http://httpd.apache.org/docs/2.0/mpm.html,运行bin/httpd -l可以发现它编译了mpm_winnt.c。
3. MySQL
同样的,找了个zip包安装的
安装:a)解压
b)copy一个ini作为你的my.ini,我选了了一个my-small.ini
c)启动,bin/mysqld --console,选择控制台启动是因为我想实时看着它看有没有特殊状况发生
4. PHP
这个东西是后来折腾最久的地方,一开始为了求新求好,选了个11月刚出的php5.3.1,架设时倒是成功了,不过却发现没办法用Zend Debugger。研究费了很长时间才发现中间有个Thread Safe的区别,php5.2之后分Thread Safe(ts)和Non Thread Safe(nts)两种编译版本(看http://www.iis-aid.com/articles/my_word/difference_between_php_thread_safe_and_non_thread_safe_binaries),对应的Zend也有两种,一开始安装了ts的php5.3.1,发现failed to load ZendDebugger,但是换成nts的php后,apache又不能load php module了,:S,总之,现在改用php5.2.11的ts版本了。
下载:PHP 5.2.11 zip package [10,270Kb] - 17 September 2009
安装:a)解压
b)copy php.ini-recommend php.ini
c)edit php.ini
i) update extension_dir 为绝对路径
ii) uncomment extensions of mbstring.dll, gd2.dll, mysql.dll, mysqli.dll(不用可以注释掉)
d)添加php目录和ext目录到PATH环境变量,不做的话后面load mysql.dll会失败。。
e)update httpd.conf of apache
i) add
加入PHPIniDir似乎可以让apache在启动时就读取php.ini并试图load里面指定的php module,出错的话会在logs/error.log里面记录。
ii) 同时加入index.php作为默认页面:
DirectoryIndex index.html index.php
小记:这种方法是按照install.txt里面php module for apache方法装的,之前放狗搜了一下发现php似乎在MPM下当访问量大的时候可能会有崩溃的情况,这里有一篇文章
http://neosmart.net/blog/2008/dont-believe-the-lies-php-isnt-thread-safe-yet/
貌似改用FastCGI模块加载比较安全,不过现在还没有到大访问量的时候,过一阵子再回来研究吧。
5. JDK
装jdk首先是为了跑eclipse,其实那样只装个jre也可以,选jdk因为可能也会开发点java
下载:我下的是jdk1.6 update17,可以到http://java.sun.com/javase/downloads/widget/jdk6.jsp页面下载
这是第一个installer的东西,不知道有没有绿色版的,没有费时间去找了。。
小记:如果找个集成jre的eclipse应该这一步都可以省了。
6. Eclipse for PHP
下载页面:http://www.eclipse.org/pdt/downloads/
All in one版本
创建project:因为已经有项目代码,但是没有eclipse的项目文件,所以选择File->Import,然后选择从Source control server——一个SVN服务器下载,再选择Create through New Project Wizard,从而导入source文件创建项目。
7. Subversion Client
Subversive, plugin for eclipse - 我选的是subversive,主页:http://www.eclipse.org/subversive/downloads.php,跟subclipse比据说比较轻一些,安装方式可以选择到它主页下载或者在Eclipse里添加Feature
装完这个feature之后重启时会继续选择connector安装,可以多选。
还有一个windows的客户端,其实有了eclipse的插件这个可以选择性安装
TortoiseSVN - http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi?download
8. Zend Debugger
配这个费了不少功夫,最后我用的是
a) download ZendDebugger from http://downloads.zend.com/pdt/server-debugger/, 我的版本是ZendDebugger-5.2.15-cygwin_nt-i386.zip ,很明显这个时间比较老,不过它能被php load进去
b) 解压出来的ZendDebugger.dll放到php目录下,修改php.ini,加入
c)配置Eclipse
i) Window->Preferences->PHP->PHP Executables->Add new
ii) Named "php5", input path to your php.exe and php.ini, type is Zend Debugger
iii) set it as the default debugger
d)解压出来的dummy.php放到httpd DocumentRoot目录下,用于在Eclipse里测试Debugger是否连通(Debug Configurations->PHP Web Page->Test Debugger),成功会出来一个success message。(通过修改worksapce的对应站点目录,Configure "Default PHP Web Server",也可以放到网站的子目录下。)
如果以上配置成功的话就不需要另外下载ZendDebugger 的feature for eclipse了,下面是添加feature下载最新ZendDebugger的方法:
i) Help->Install New Software
ii) Add site: "Zend Debugger", Url: http://downloads.zend.com/pdt/
iii) Search for "Zend Debugger"
不过因为这个是nts的,我配置完之后不能用于remote debugging我们的web site,只能debug local script
9. CakePHP
这个东西比较生,不过是我们要用的东西,是一个MVC的开源php开发框架,挺不错的,主页:http://cakephp.org/,安装就不说了,不过我不是从完整版本开始的,所以需要注意几个地方:
a) app/tmp目录下需要提前创建几个目录:cache, sessions, tests,不然后面会出warning,我在这个地方不明白为什么被挡了很久。。
b) apache的httpd.conf需要设置
i) 打开rewrite module:LoadModule rewrite_module modules/mod_rewrite.so
ii) 允许覆盖设定(不然cakephp自带的那些.htaccess文件设定不起作用),加入FollowSymlinks
Options FollowSymLinks
AllowOverride All
iii) 因为是开发环境,DocumentRoot可以设置到cakephp根目录下也可以设置到app/webroot下面
iv) copy app/config/database.php.default app/config/database.php,修改数据库连接参数
v) import database into mysql
到这里基本上就算大功告成了,可以通过Eclipse设定一个Debug Configuration启动一个index.php调试看看是否都没有问题,sigh~