原因:
通常情况下apache运行的是80端口,比如apache启动后运行localhost:80就可以出现It works页面,这里的80也可以不写,会默认的。而tomcat启动时默认的端口是8080端口,需要在localhost后面加上8080,但这样比较不专业,域名还带端口,因此我们可以在tomcat的server.xml修改为80。但此时的问题出来了,当已有一个php写的项目在使用apache作为服务时,我们如何将让有php写的项目和jsp写的项目同时运行起来呢,这里就需要用到插件mod_jk,它可以将jsp要访问的url投入到tomcat中由tomcat来进行处理。
Tomcat直接在官网下载解压就可以了(http://tomcat.apache.org/),当然启动tomcat的前提是你安装了jdk,必将JAVA_HOME=jdk安装目录 放在你的环境变量中了,这个都比较简单,我们主要讲解apache2.4和mod_jk的配置。
一:apache2.4及php5.5及mysql的配置
这部分我也不想多讲可以参考:http://jingyan.baidu.com/article/9faa723152c5d6473d28cb47.html
二:mod_jk配置
首先需要从官网上下载apache版本所对应的mod_jk.so 文件放在apache的modules目录下面
然后在conf目录下面建立两个文件为workers.properties和mod_jk.conf
workers.properties内容:
workers.tomcat_home="D:/apache-tomcat7"workers.java_home="D:/Tools/java/jdk"# Defining a worker named worker1 and of type ajp13worker.list=worker1# Set properties for worker1worker.worker1.type=ajp13worker.worker1.host=localhostworker.worker1.port=8009worker.worker1.lbfactor=1
mod_jk.conf内容:(myproject 为jsp的工程名)
LoadModule jk_module modules/mod_jk.soJkWorkersFile conf/workers.propertiesJkLogFile logs/mod_jk.logJkLogLevel infoJkLogStampFormat "[%a %b %d %H:%M:%S %Y]"JkOptions +ForwardKeySize +ForwardURICompatUnparsed +ForwardDirectoriesJkRequestLogFormat "%w %V %T"JkMount /servlet/* worker1JkMount /*.jsp worker1JkMount /*.action worker1JkMount /*.do worker1JkMount /myproject/* worker1
注意:JkOptionszhong 中为ForwardURICompatUnparsed不是ForwardURICompat,否则会出现乱码
然后在apache的conf目录下httpd.conf中添加:
Include conf/mod_jk.conf
三:tomcat配置
将tomcat中server.xml中appBase改名指向你在apache配置工程所存放的位置就可以了。
这样你在浏览器中访问jsp的工程时,apache会自动将你的访问投递到tomcat中进行处理,这样就能实现php和jsp都无需写端口号而可以被访问。
备注:参考文献也有配置virtualHost, 这个可能是当tomcat所使用的端口号不能为外网访问时所做的,这里我没有研究,但是也正常工作了。
参考文献:
1:http://jingyan.baidu.com/article/9faa723152c5d6473d28cb47.htmlwin7(64位)php5.5-Apache2.4-mysql5.6环境安装
2: http://wenku.baidu.com/view/9288fa2058fb770bf78a55cf.html?re=viewwindows下apache+tomcat+php+mysql+zend optimizer
3:http://adaishu.blogspot.com/2008/08/apachetomcatstrutsphpmysql-apache.html
4:http://www.iteye.com/topic/80667 Apache+Tomcat+Php+Mysql的集成
5:http://www.linuxquestions.org/questions/linux-software-2/example-servlets-not-working-with-mod_jk-apache2-webserver-and-tomcat6's-web-container-692783/

DependencyInjection(DI)inPHPenhancescodeflexibilityandtestabilitybydecouplingdependencycreationfromusage.ToimplementDIeffectively:1)UseDIcontainersjudiciouslytoavoidover-engineering.2)Avoidconstructoroverloadbylimitingdependenciestothreeorfour.3)Adhe

到Improveyourphpwebsite的实力,UsEthestertate:1)emplastOpCodeCachingWithOpcachetCachetOspeedUpScriptInterpretation.2)优化的atabasequesquesquesquelies berselectingOnlynlynnellynnessaryfields.3)usecachingsystemssslikeremememememcachedisemcachedtoredtoredtoredsatabaseloadch.4)

是的,itispossibletosendMassemailswithp.1)uselibrarieslikeLikePhpMailerorSwiftMailerForeffitedEmailSending.2)enasledeLaysBetemailStoavoidSpamflagssspamflags.3)sylectynamicContentToimpovereveragement.4)

DependencyInjection(DI)inPHPisadesignpatternthatachievesInversionofControl(IoC)byallowingdependenciestobeinjectedintoclasses,enhancingmodularity,testability,andflexibility.DIdecouplesclassesfromspecificimplementations,makingcodemoremanageableandadapt

使用PHP发送电子邮件的最佳方法包括:1.使用PHP的mail()函数进行基本发送;2.使用PHPMailer库发送更复杂的HTML邮件;3.使用SendGrid等事务性邮件服务提高可靠性和分析能力。通过这些方法,可以确保邮件不仅到达收件箱,还能吸引收件人。

计算PHP多维数组的元素总数可以使用递归或迭代方法。1.递归方法通过遍历数组并递归处理嵌套数组来计数。2.迭代方法使用栈来模拟递归,避免深度问题。3.array_walk_recursive函数也能实现,但需手动计数。

在PHP中,do-while循环的特点是保证循环体至少执行一次,然后再根据条件决定是否继续循环。1)它在条件检查之前执行循环体,适合需要确保操作至少执行一次的场景,如用户输入验证和菜单系统。2)然而,do-while循环的语法可能导致新手困惑,且可能增加不必要的性能开销。

在PHP中高效地哈希字符串可以使用以下方法:1.使用md5函数进行快速哈希,但不适合密码存储。2.使用sha256函数提高安全性。3.使用password_hash函数处理密码,提供最高安全性和便捷性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3汉化版
中文版,非常好用

Dreamweaver CS6
视觉化网页开发工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境