Win2008R2+Apache+PHP+Tomcat配置
一、VC运行库
对于Apache和PHP,在Windows上运行的话都需要对应VC运行库的支持,即Apache、PHP和VC运行库这三者的版本必须相对应,这就会带来很多问题,比如下了较新的Apache或PHP,但是找不到对应的和对方连接的VC运行库,此外还要注意系统是32位还是64位。而Linux就没这种破问题,所以我很想不通那些用Windows来做这种较复杂服务器的人脑子里装的是神马。当前常见的VC运行库包括VC9和VC11,x86和x64都装上才保险。可以去http://www.microsoft.com/zh-cn/download/上进行下载。
如果服务器上装了神马安全狗,全都给它退出,否则很可能会报以下错误:
二、Apache代理服务器
这个可以采用较新的Apache 2.4.9,功能更强大一些。下载Apache的话有一个很好的网站http://www.apachelounge.com/download/。
做代理的话,除了要在配置文件httpd.conf中指定ServerRoot和DocumentRoot,还需要指定它的端口为80。此外,要加载proxy对应模块,即将LoadModule proxy_module modules/mod_proxy.so、LoadModule proxy_html_module modules/mod_proxy_html.so、LoadModule proxy_http_module modules/mod_proxy_http.so这三行代码前面的注释“#”去掉,以及启用虚拟主机,即将Include conf/extra/httpd-vhosts.conf前面的注释“#”去掉,这样对应的配置就是在httpd-vhosts.conf里生效了,代码如下:
<VirtualHost *:80>
ServerAdmin crytoll@163.com
ServerName localhost
ProxyRequests Off
ProxyPass / http://127.0.0.1:8081/
ProxyPassReverse / http://127.0.0.1:8081/
ErrorLog "logs/dummy-localhost-error.log"
CustomLog "logs/dummy-localhost-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin crytoll@163.com
ServerName 127.0.0.1
ProxyRequests Off
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
ErrorLog "logs/dummy-127-error.log"
CustomLog "logs/dummy-127-access.log" common
</VirtualHost>
意思就是代理服务器的监听端口是80,如果访问的是localhost,就将请求转发到8081端口;如果访问的是127.0.0.1,就将请求转发到8080端口。
最后为其安装服务,设置自动启动。
此外,有的系统比较奇葩,整体是PHP写的,某个子目录却是JSP写的,比如zsb.xidian.edu.cn,访问它需要转发给Apache解析PHP,但若是访问zsb.xidian.edu.cn/zzzs,就需要转发给Tomcat来解析JSP了。对于这样的系统,需要在同一个VirtualHost里配置两个ProxyPass。需要注意的是,按照Apache的url匹配策略,一旦从前到后匹配成功它就不再继续匹配了,所以子目录的ProxyPass一定要写在前面。配置代码如下:
<VirtualHost *:80>
ServerAdmin crytoll@163.com
ServerName localhost
ProxyRequests Off
ProxyPass /zzzs/ http://127.0.0.1:8080/
ProxyPassReverse /zzzs/ http://127.0.0.1:8080/
ProxyPass / http://127.0.0.1:8081/
ProxyPassReverse / http://127.0.0.1:8081/
ErrorLog "logs/dummy-localhost-error.log"
CustomLog "logs/dummy-localhost-access.log" common
</VirtualHost>
三、PHP
PHP不同版本间的差别还是比较大的,保守起见可选择php-5.3.28-Win32-VC9-x86.msi直接进行安装,安装包在http://windows.php.net/download/上可以找到。
四、Apache解析服务器
考虑到要与PHP进行连接,可以选用httpd-2.2.27-win32-VC9,网上有很多。同样是要在配置文件中指定ServerRoot,令其监听端口为8081,将Include conf/extra/httpd-vhosts.conf前面的注释“#”去掉,其中httpd-vhosts.conf的代码如下:
<VirtualHost *:8081>
ServerAdmin crytoll@163.com
DocumentRoot "C:/WebSite"
<Directory "C:/WebSite">
DirectoryIndex index.php
Order deny,allow
allow from all
</Directory>
ServerName localhost
ErrorLog "logs/dummy-localhost-error.log"
CustomLog "logs/dummy-localhost-access.log" common
</VirtualHost>
意思是本虚拟主机的端口是8081,网站根目录是C:/WebSite,默认主页是index.php。然后需要为Apache解析服务器添加解析PHP文件的功能,即修改 Apache解析服务器的 httpd.conf 文件。在该文件中添加如下2行,表示以模块方式安装PHP进入Apache:
LoadModule php5_module D:/php/php5apache2_2.dll
AddType application/x-httpd-php .php
如图所示:
最后为其安装服务,设置自动启动。
五、JDK
目前既新且较稳定的版本为1.7.53,可以在http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html上下载到。
六、Tomcat
可以选用7.0.53版本,在官网上可以下载到。部署完成后为其安装服务,设置自动启动。而JSP子系统部分为了方便起见,就可以直接放到Tomcat的默认Web目录下