当前位置:首页 » 编程语言 » tomcat支持php

tomcat支持php

发布时间: 2022-09-12 09:02:49

① tomcat可以运行php

tomcat可以运行php,不过需要配置一下。

方法如下:

将php解压到tomcat的根目录下,将文件夹名字改为php

把php.exe所在的路径加入到path中

将php.ini-development复制一份。改名php.ini

打开 extension_dir = "ext"这个选项

修改cgi.force_redirect为这样 cgi.force_redirect= 0

修改tomcat/conf/context.xml文件

将<Context>加上 privileged="true"属性即:<Context privileged="true">

在<web-app>中加入

<servlet>

<servlet-name>php</servlet-name>

<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>

<init-param>

<param-name>clientInputTimeout</param-name>

<param-value>200</param-value>

</init-param>

<init-param>

<param-name>debug</param-name>

<param-value>0</param-value>

</init-param>

<init-param>

<param-name>executable</param-name>

<param-value>D: omcatphpphp-cgi.exe</param-value>

</init-param>

<init-param>

<param-name>passShellEnvironment</param-name>

<param-value>true</param-value>

</init-param>

<init-param>

<param-name>cgiPathPrefix</param-name>

<param-value>WEB-INF/phpbin</param-value>

</init-param>

<load-on-startup>5</load-on-startup>

</servlet><servlet-mapping>

<servlet-name>php</servlet-name>

<url-pattern>/phpbin/*</url-pattern>

</servlet-mapping>

重启tomcat服务:

在webappsROOTWEB-INF下新建一个phpbin的文件夹

在下面新建一个index.php

<?phpphpinfo();?

② apache tomcat装了之后能用php么

可以的,不影响;tomcat默认的端口是8080,apache默认的端口80,不会冲突,不知您系统安装了iis没,iis默认的端口也是80,需要停止iis服务,不然启动apache会报错。

③ tomcat下,怎么安装配置php (linux系统)

一、安装和系统环境变量设置
1、我使用的PHP为php-5.4.31,不用5.5以上版本的原因是,因为他们都是使用VC11编译的,需要一个DLL,win7及一下都不支持。下载VC9编译的PHP 5.4(5.4.31) for X86的已编译版本。我的安装目录是D:\Application\php-5.4.31,
将安装后的路径设置到系统环境变量path中。
2、perl直接下载安装即可(会自动配置环境变量,不用操心)。
3、Tomcat用的是7.0.41版本。很多文档要求将server/lib下servlets-cgi改名为servlets-cgi.jar。从6版本以后,好像就没有server目录,内部已经自动支持cgi,只需要进行配置即可。
Tomcat需要JDK 1.6以上,所以JDK需要先安装好。

二、配置步骤:
1、到D:\Application\php-5.4.31目录下
将php.ini-development复制一份同一目录下,命名为php.ini
<1>设置extension_dir参数:
extension_dir="D:\Application\php-5.4.31\ext"
<1>设置cgi.force_redirect参数:
cgi.force_redirect = 0

2、打开Tomcat的conf下的context.xml文件
给Context增加属性privileged="true",修改后的Context元素属性如下所示:
<Context privileged="true">

3、打开Tomcat的conf下的web.xml文件
在servlet和servlet-mapping之间增加如下的内容:(注意,注释不能放到配置项里面,否则启动报错)
<!—Add to support PHP & Perl -->
<servlet>
<servlet-name>cgi</servlet-name>
<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/cgi-bin</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>

<servlet>
<servlet-name>php</servlet-name>
<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
<init-param>
<param-name>clientInputTimeout</param-name>
<param-value>200</www.gzlij.com param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>executable</param-name>
<param-value>D:\Application\php-5.4.31\php-cgi.exe</param-value>
</init-param>
<init-param>
<param-name>passShellEnvironment</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/php-bin</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>php</servlet-name>
<url-pattern>/php-bin/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>
备注:
1、我们配制了两个servlet,分别是php、CGI
2、在servlet参数中
<param-name>executable</param-name>
<param-value>D:\Application\php-5.4.31\php-cgi.exe</param-value>
指向CGI程序执行器,其实就一可被调用的可执行程序。(这里带全路径,好像不带路径也可以,因为path环境变量里已经配置了),记住不要用php.exe。
如果没有配置,缺省就是调用perl执行程序。

3、脚本存放路径
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/cgi-bin</param-value>
这里将perl脚本配置的是指向webapps/web-inf/cgi-bin目录下。
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/php-bin</param-value>
PHP的脚本指向的是webapps/web-inf/php-bin目录下。

4、资源URL路径映射。
这里如果请求的资源是/php-bin/*则,指向php服务程序,如果是/cgi-bin/*则指向cgi服务程序。
<servlet-mapping>
<servlet-name>php</servlet-name>
<url-pattern>/php-bin/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>

三、测试
1、分别将如下的test.php和test.cgi测试程序放到webapps\ROOT\WEB-INF\php-bin和webapps\ROOT\WEB-INF\cgi-bin目录下。
其中test.php内容如下:
<?php phpinfo();?>
Test.cgi内容如下:
# filename: test1.cgi
print "Content-type: text/html\n\n";
print "Hello, world!\n"

2、重新启动tomcat。
浏览器地址栏输入:http://127.0.0.1:8080/php-bin/test.php
如果显示如下,则说明PHP设置正确。

<?php
echo "hello World!\n\n";
echo "hello World!\n\n";
echo "hello World!\n\n";
?>
针对上面的程序,如果配置中使用的是PHP.exe,则只能现实两行“hello world!”, 第一行总是莫名其妙地丢失。而且对php-info()函数,第一行也会丢失。
(很多文档中都提到这个问题,其实就是因为用错了程序。)

浏览器地址栏输入:http://127.0.0.1:8080/cgi-bin/test.cgi
如果显示“hello world!”,则说明cgi设置正确。

④ tomcat支持php吗

当然支持了。你在网络里面搜一搜有很多解决办法的。具体问题需要具体分析。

⑤ tomcat支持php吗

让Tomcat支持PHP
在负责一个采用JSP动态网页技术的网站时,刚好手头有PHP写的一部分功能,所以就很直接地想到让Tomcat支持PHP。Tomcat也是Apache出的,难道就只支持JSP吗?到底能否在Tomcat上用PHP呢?上网搜索了一番,很快有了第一个问题的答案:Tomcat可以支持CGI,如Perl(具体设置见附文)。但继续搜索,却迟迟无法找到让Tomcat使用PHP的方法,一般都是采取装Apache和Tomcat共存的方法来搭建所谓的支持PHP+JSP的Web平台。
当然,其实PHP本身也支持CGI方式的使用,所以就自己动手试了一试(在Windows操作系统上):先按照附文的做法让Tomcat支持CGI,然后再改web.xml,在servlet-name为cgi的一段配置中加上:

<init-param>
<param-name>executable</param-name>
<param-value>php</param-value>
</init-param>
并把PHP安装路径加入Path,这样Tomcat就能运行到PHP.exe了。重启Tomcat后,在WEB-INF目录下新建一个cgi目录,把php文件放在这里,然后访问时用虚拟映射出来的cgi-bin目录来访问这些PHP文件。
但是如果对PHP文件不加任何改动的话,可能会发现什么输出都没有。需要在PHP文件头部加一行,输出两个回车:
echo "\n\n";
原因不太清楚。可能在等待Content-type输入,或是Perl的cgi程序风格。
但这样配置,PHP(4.1.0以上版本)中$_REQUEST、$_GET、$_POST等变量就无法用了,只能从服务器变量或环境变量中获取QueryString了:$_SERVER["QUERY_STRING"]、$_ENV["QUERY_STRING"]。也许不支持表单的POST提交了……具体还没试过。
由于对Tomcat不熟悉,所以这些只是在现在方法上的小修小补,可能有好的做法,还希望大家不吝指教!

⑥ php 能不能在tomcat上运行

可以运行的. 不过要稍微配置下

将php解压到tomcat的根目录下,将文件夹名字改为php
把php.exe所在的路径加入到path中。
将php.ini-development 复制一份。改名php.ini
打开 extension_dir = "ext" 这个选项
修改cgi.force_redirect 为这样 cgi.force_redirect = 0
修改tomcat/conf/context.xml文件
将<Context >加上 privileged="true" 属性即:<Context privileged="true">
在<web-app>中加入
<servlet>
<servlet-name>php</servlet-name>
<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
<init-param>
<param-name>clientInputTimeout</param-name>
<param-value>200</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>executable</param-name>
<param-value>D:\tomcat\php\php-cgi.exe</param-value>
</init-param>
<init-param>
<param-name>passShellEnvironment</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/phpbin</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>php</servlet-name>
<url-pattern>/phpbin/*</url-pattern>
</servlet-mapping>
重启tomcat服务:
在webapps\ROOT\WEB-INF 下新建一个phpbin的文件夹
在下面新建一个index.php
<?php phpinfo();?

热点内容
电脑启动后无法连接服务器 发布:2025-05-16 10:06:39 浏览:982
jar包编译过程 发布:2025-05-16 10:03:37 浏览:677
选举源码 发布:2025-05-16 09:58:59 浏览:748
超级访问陈小春应采儿 发布:2025-05-16 09:43:29 浏览:478
缓存视频合并工具最新版 发布:2025-05-16 09:35:03 浏览:194
花雨庭服务器ip地址和端口 发布:2025-05-16 09:34:58 浏览:239
同时修改多台服务器管理地址工具 发布:2025-05-16 09:20:36 浏览:421
什么配置就能玩地平线 发布:2025-05-16 09:13:46 浏览:82
python旋转图片 发布:2025-05-16 09:13:40 浏览:638
少女前线防检测脚本 发布:2025-05-16 08:59:07 浏览:728