使用测试程序:
<?php
$conn = mysql_connect("localhost", "root", "111222");
if ($conn) {
echo ”连接MySQL数据库成功”;
}
else {
echo ”连接MySQL数据库失败”;
}
?>
确认php已经与mysql连接,现在需要进行php与httpd的连接:
在httpd.conf写入
# 载入 PHP 处理模块
LoadModule php5_module “d:/PHP/ PHP-5.4.5/php5apache2_4.dll”
# 指定当资源类型为.php 时,由PHP 来处理
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .po .py .pl .hu
# 指定 php.ini 的路径
PHPIniDir “d:/PHP/ PHP-5.4.5″
# 其他相关设置
AddHandler application/x-httpd-php-source .phps
Action application/x-httpd-php “/php/php-cgi.exe”
AddDefaultCharset UTF8
加载php应用模块,在D:\PHPProj\php-5.6.10x64\php.ini-development的文件中写入
extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_intl.dll
extension=php_imap.dll
;extension=php_interbase.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll ; Must be after mbstring as it depends on it
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
extension=php_pgsql.dll
;extension=php_pspell.dll
extension=php_shmop.dll
; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=php_snmp.dll
extension=php_soap.dll
extension=php_sockets.dll
extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
fastcgi.impersonate=1
cgi.fix_pathinfo=1
cgi.force_redirect=0
extension_dir = "D:\PHPProj\php-5.6.10x64\ext"
doc_root = "D:\PHPProj\PHPWeb"
date.timezone = Asia/Shanghai
然后改文件名为php.ini。
重启httpd,但是出现了错误:LoadModule php5_module “D:/PHPProj/php-5.6.10x64/php5apache2_4.dll”。
.dll无法正确加载。
这里PHP5.6要求vc11的支持。并且httpd与php的x64/x86要一致。
成功加载PHP模块后,再进行tomcat服务器的整合:
在http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/上下载tomcat-connectors,tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x,httpd的版本要与connectors一致!
然后我用的tomcat的版本为D:\PHPProj\apache-tomcat-7.0.57,添加下载好的mod_jk.so到D:\PHPProj\Apache24\modules,在/logs下创建mod_jk.log,在/httpd.conf中添加
LoadModule jk_module "D:\PHPProj\Apache24\modulesmod_jk.so"
#加载JK模块
LoadModule jk_module "D:\PHPProj\Apache24\modules\mod_jk.so"
#加载JK模块
JkWorkersFile "D:\PHPProj\apache-tomcat-7.0.57\conf\workers.properties"
#指定先前配置的worker文件
#JkMountFile "D:\PHPProj\apache-tomcat-7.0.57\conf\uriworkermap.properties"
#指定的mount的方式的配置文档
JkLogFile "D:\PHPProj\Apache24\logs\mod_jk.log"
JkLogLevel warn
在vhost添加
<VirtualHost 127.0.0.3:80>
DocumentRoot "D:\PHPProj\PHPWeb\JSP"
ServerName tomcat-httpd
DirectoryIndex index.php index.html index.html.var
JkMount /*WEB-INF tomcat1
JkMount /*.jsp tomcat1
JkMount /servlet/* tomcat1
JkMount /*.do tomcat1
JkMount /*.action tomcat1
JkMount /Javenmy/* tomcat1
#添加jkstatus来查看jk的运行情况,用0.3/jkstatus进入
JkMount /jkstatus status
</VirtualHost>
#D:\PHPProj\apache-tomcat-7.0.57\conf\workers.properties
workers.tomcat_home="D:\PHPProj\apache-tomcat-7.0.57"
#让mod_jk模块知道Tomcat的安装路径
workers.java_home="E:\Program Files (x86)\Java\jdk1.7.0_45\"
#让mod_jk模块知道jdk路径
ps=\
#当前目录
worker.list=tomcat1 ,status
#这里是关键,名字要和httpd.conf的一致。如果这里改了httpd.conf也要改。
worker.tomcat1.port=8009
#工作端口,tomcat的jk监听端口,可以查看Server.xml中有port="8009"
worker.tomcat1.host=localhost
#Tomcat所在机器,如果安装在与apache不同的机器则需要设置IP
worker.tomcat1.type=ajp13
#协议类型,不能改变,会出问题
worker.tomcat1.lbfactor=1
#负载平衡因子
worker.status.type=status
#status的类型为status
#worker.status.read_only=True
#D:\PHPProj\apache-tomcat-7.0.57\conf\server.xml
<service>
添加D:\PHPProj\apache-tomcat-7.0.57\conf\server.xml
</service>
mod_jk可以成功加载。但是访问127.0.0.3即D:\PHPProj\PHPWeb\JSP中的.jsp时出现的是tomcat的初始页面,因为没有将.jsp放入tomcat的root下。
然后我换一种tmcat-connect的方式,用proxy连接两个服务,可查看http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/的介绍。
#D:\PHPProj\Apache24\conf\httpd.conf
#用代理的方式将/jsp,/tomcat代理到:8080下,在地址后输入/JSP会被代理到tomcat上
ProxyPass /tomcat http://localhost:8080/
ProxyPass /jsp http://localhost:8080/
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_http_module modules/mod_proxy_http.so