一、安裝和系統環境變數設置
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設置正確。
㈡ 在 linux 中安裝tomcat 還需要安裝php 嗎
要的,tomcat只是提供了php運行的環境,tomcat,php, mysql資料庫都得裝一個
㈢ 遠程伺服器如何搭建網站
遠程伺服器搭建網站,需要在伺服器上配置好IIS,這個是運行ASP網頁的環境,如果你的網站是PHP的,要安裝阿帕奇運行帶喚環境,如果你的網站是JSP的,要安裝tomcat環境.
安裝好網站程序運行環境後,就在某個盤里建個文件夾,專門用來放網站岩行乎程序..但不要放在C盤.
然後新建FTP帳號,使用FTP工具上傳網站程序到網站文件夾里.
具體步驟:
1、在遠程伺服器上先配置好PHP的運行環境,或者用XAMPP環境包也行。粗悉
2、建立站點,把路徑指向你的php網站。
3、如果有域名的話,再把域名綁定上去。
基本上就這幾個大概步驟。
㈣ apache和tomcat有安裝的先後順序嗎tomcat和php可以同時安裝嗎
沒關系盯散,可以隨便裝。只要注意一點,apache會使用80埠,裝凱鎮氏了apache後,tomcat不能旅輪再用80埠了。
㈤ 運行php文件需要安裝jdk嗎還有就是要不要安裝Tomcat
JDK和Tomcat那是Java的環境哇。。
PHP用自己的環境的,搭建PHP環境需要 Apache+MySQL+PHP,比較著名的在Windows環境下使用PHP的集成環境有WampServer,Xampp等。