當前位置:首頁 » 編程語言 » 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();?

熱點內容
hill密碼的加密 發布:2025-01-12 09:56:33 瀏覽:613
組卷源碼 發布:2025-01-12 09:51:12 瀏覽:995
java文件夾改名 發布:2025-01-12 09:49:01 瀏覽:115
腳本函數未定義 發布:2025-01-12 09:39:44 瀏覽:635
頁面PHP 發布:2025-01-12 09:38:07 瀏覽:200
郵政銀行打電話登錄密碼是什麼 發布:2025-01-12 09:37:27 瀏覽:563
linuxroot遠程登錄 發布:2025-01-12 09:37:26 瀏覽:302
怎麼算伺服器ip 發布:2025-01-12 08:59:19 瀏覽:854
安卓與ios哪個適合做主力機 發布:2025-01-12 08:54:11 瀏覽:341
微軟怎麼關閉配置更新 發布:2025-01-12 08:34:23 瀏覽:316