从安装PHP到第一个tomcat执行的hello world其实没那么难
001
初入门的朋友问我为什么她的PHP老是不能安装运行成功,作为一个乐(shi)于(li)助(liao)人(mei)的半程序员,
自然是要好好研究然后手把手教妹纸了!
002
话不多说,进入正题
为了公平公正公开,我新开了个空的虚拟机,一切从零开始安装的
电脑操作系统位64位 win10,其他系统未经测试可能有未知问题
开始---
- 首先,没有什么比下载并……解压一个php更重要的了(是的,并不需要执行安装程序什么的,解压就好)
天生习惯,就是喜欢最新版的软件,下载后解压到本地。

- 然后是环境变量配置,没什么好说的,在Path后面加上php的地址

用命令行执行php -v 可发现php安装成功!

至此,我们可以看到php已经装好了,然后就是配置tomcat了
- 接着下载tomcat并解压,这里我用的是8.5.23版本,大同小异,推荐使用6.0以上版本tomcat
解压好后修改tomcat的conf下的web.xml文件,如图在web.xml文件中的web-app标签里加入以下内容:
<listener>
<listener-class>php.java.servlet.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>PhpJavaServlet</servlet-name>
<servlet-class>php.java.servlet.PhpJavaServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>PhpCGIServlet</servlet-name>
<servlet-class>php.java.servlet.fastcgi.FastCGIServlet</servlet-class>
<init-param>
<param-name>prefer_system_php_exec</param-name>
<param-value>On</param-value>
</init-param>
<init-param>
<param-name>php_include_java</param-name>
<param-value>Off</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>PhpJavaServlet</servlet-name>
<url-pattern>*.phpjavabridge</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>PhpCGIServlet</servlet-name>
<url-pattern>*.php</url-pattern>
</servlet-mapping>
以及在welcome-file-list标签内加入
<welcome-file>index.php</welcome-file>


- OK,以上都简单,关键的一步的来了,
tomcat运行在JVM上,要能解析php还得下载几个jar包,点击下载jar包
链接:http://pan.baidu.com/s/1sloLuHJ 密码:kxjs
将下载好的JavaBridge.jar、php-servlet.jar和php-script.jar复制到tomcat的lib目录下;
至此,所有配置完成,在tomcat的webapp目录下新建一个php目录,php目录下新建一个index.php文件
<!DOCTYPE html>
<html>
<head>
<title>hello world</title>
</head>
<body>
<?php
echo "hello world!我的第一段 PHP 脚本!";
?>
</body>
</html>
进入tomcat bin目录启动tomcat,就可以正常访问尼德php项目了

FAQ
Q:为什么tomcat启动不成功?
A:tomcat依赖jvm,无法启动时请检查JAVA_HOME,CATALINA_HOME是否配置以及path是否配置jdk路径,还可打开一个命令行,将startup.bat文件拖至命令行回车,可查看启动日志
作者:不玩藤球的猫
链接:https://www.jianshu.com/p/6ed8b1ae275a
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
从安装PHP到第一个tomcat执行的hello world其实没那么难的更多相关文章
- [视频解说]Java(JDK的下载安装及第一个程序执行)
(JDK的下载安装及第一个程序执行) 内容:Java JDK 的安装以及HelloWorld 程序的执行 欢迎童鞋们前往围观 http://v.youku.com/v_show/id_XODA3Mzk ...
- CentOS Linux下一个tomcat起停,查看日志的shell script
CentOS 的tomcat安装目录:/usr/local/tomcat vi MyTomcatUitl.sh 创建文件chmod u+x MyTomcatUtil.sh 赋执行 ...
- tomcat 安装配置部署到nginx+tomcat+https
目录 1 Tomcat简介 2.下载并安装Tomcat服务 2.2 部署java环境 2.3 安装Tomcat 2.4 Tomcat目录介绍 (关注点 bin conf logs webapps) 2 ...
- Docker实战之创建一个tomcat容器
一.Docker与虚拟机的区别 二.Docker学习步骤 2.1:安装宿主操作系统 在VMVare中安装了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic ...
- 如何在Cent OS上安装和部署jdk与tomcat?
Cent OS是一款Linux系统.在商业应用中,Linux操作系统在服务器市场有着广泛的运用,这源于Linux系统的几大优点: 1.跨平台的硬件支持 由于Linux 的内核大部分是用C 语言编写的, ...
- Linux下安装和配置JDK与Tomcat(升级版)
在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...
- Centos安装MySql、Java、Tomcat
一.安装MySql 安装MySql yum install -y mysql-server mysql mysql-devel 启动MySql服务 service mysqld start 为root ...
- 阿里云centos下安装nginx、jdk、tomcat、绑定域名、解析域名
1.ESC后安全设置(管理控制台->本实例安全组->配置规则->添加安全组规则->3306.80端口配置) 2.nginx 安装,首先安装三大件 PCRE.zlib.ope ...
- 安装oracle11g client 【INS-30131】执行安装程序验证所需的初始设置失败的解决方法
今天在服务器(操作系统windows server 2008R2)上安装Oracle11g 客户端,弹出“执行安装程序验证所需的初始设置失败”,如上图.网上找了一些方法,简单整理如下,仅供参考. 问题 ...
随机推荐
- GreenPlum数据库搭建原原则
1.平衡: 性能 容量 成本 2.高可用(主节点高可用): 节点 网络 磁盘 3.部署方案: Master和Standby Master分机部署 primaty segment 与miiror Seg ...
- Docker01-学习环境
目录 安装VMware 安装Ubutu CRT连接Ubutu 设置root密码 安装VMware 下载 VMware-workstation-15 https://dwz.cn/sSAat65l 密码 ...
- Docker容器网络篇
Docker容器网络篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker的网络模型概述 如上图所示,Docker有四种网络模型: 封闭式网络(Closed conta ...
- HTML&CSS基础-html常用的标签
HTML&CSS基础-html常用的标签 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.html的源代码 <!DOCTYPE html> <html& ...
- Python应用之-修改通讯录
#-*- coding:utf-8 -*- import sqlite3 #打开本地数据库用于存储用户信息 conn = sqlite3.connect('mysql_person.db') #在该数 ...
- 深入详解JVM内存模型
JVM内存结构 由上图可以清楚的看到JVM的内存空间分为3大部分: 堆内存 方法区 栈内存 其中栈内存可以再细分为java虚拟机栈和本地方法栈,堆内存可以划分为新生代和老年代,新生代中还可以再次划分为 ...
- 关于input标签checkbox属性 和checked
我们设置了type的属性为checkbox时,记住以下3个关键点 1.点勾选时或者说点击时,checked为选中,在input标签中是checked=“checked”,注意这里面无论checked= ...
- Python 3.6 抓取微博m站数据
Python 3.6 抓取微博m站数据 2019.05.01 更新内容 containerid 可以通过 "107603" + user_id 组装得到,无需请求个人信息获取: 优 ...
- fitnesse wiki界面设置变量
有时候我们可能多组测试数据会到同一个值,这样我们就可以设置一个变量,修改时只需要修改一个地方即可,而不需要对每组测试数据的这列数据进行修改 如下图: (1)定义变量:!define A {10} , ...
- Discrete Cosine Transform
离散余弦变换 由于实信号傅立叶变换的共轭对称性,导致DFT后在频域中有一半的数据冗余.离散余弦变换(DCT)在处理实信号时比离散傅立叶(DFT)变换更具优势.在处理声音信号这类实信号时,DFT得到的结 ...