最近有需要,把PHP和JSP一起在一个APACHE下跑,弄了几天,算是弄出来了。
过程,首先下载编译APACHE,由于种种原因,我这里的apache在 configure的时候参数如下:
./configure --prefix=/server/httpd_tom6 \
--enable-example \
--enable-log-forensic \
--enable-logio \
--enable-mime-magic \
--enable-cern-meta \
--enable-expires \
--enable-headers \
--enable-usertrack \
--enable-unique-id \
--enable-ssl \
--enable-file-cache \
--enable-cache \
--enable-disk-cache \
--enable-mem-cache \
--enable-static-htpasswd \
--enable-static-htdigest \
--enable-static-rotatelogs \
--enable-static-ab \
--enable-static-checkgid \
--enable-http \
--disable-status \
--enable-cgi \
--enable-cgid \
--enable-rewrite \
--enable-module=so
之后make ;make install 就弄好了apache基本安装;
先弄个弄php,因为之前弄过,比较熟悉:
./configure \
--prefix=/server/php \
--with-gd \
--with-mysql=/server/mysql \
--with-apxs2=/server/httpd_tom6/bin/apxs \
--with-jpeg-dir=/usr/lib64 \
--with-png-dir=/usr/lib64 \
--with-zlib \
--enable-experimental-zts \
--enable-memory-limit \
--enable-zend-multibyte \
--enable-mbstring \
--with-iconv \
--with-mhash \
--with-mcrypt \
--with-freetype-dir=/usr \
--with-ttf \
--enable-memcache \
--with-php-config=/server/php/bin/php-config \
--enable-gd-native-ttf
之后又是 make ; make install
然后在apache的配置里面增加php相关的模块,在httpd.conf里面增加:
LoadModule php5_module modules/libphp5.so
之后再增加mimetype:
echo "application/x-httpd-php php" >>/server/httpd_tom6/conf/mime.type
之后PHP的支持就搞掂了。
之后弄TOMCAT:
原来想玩下编译,但是对TOMECAT不熟,所以弄了一下午,硬是没编译出来,就下了个编译好的。
先弄个JDK,我是解压到 /server/jdk1.5.0_16 ;
配置环境变量,人懒,所以丢到所有用户的环境变量里面去了,/etc/profile 后面增加:
export JAVA_HOME=/server/jdk1.5.0_16
export TOMCAT_HOME=/server/tomcat6
export ANT_HOME=/server/ant
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:/root/apache-tomcat-6.0.18-src/java/org/apache
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
export BASEDIR=/server/tomcat6
export CATALINA_BASE=/server/tomcat6
export CATALINA_HOME=/server/tomcat6
export CATALINA_TMPDIR=/server/tomcat6
TOMCAT准备装在/server/tomcat6 里面,所以上面的变量一起先弄了。
弄过profile之后先推出一下,重新登陆,让环境变量生效。之后把tomcat 解压到tomcat6 目录下面。
之后就可以测试了。
启动:
/server/tomcat6/bin/startup.sh
停止:
/server/tomcat6/bin/shutdown.sh
lsof -i -n 看看是不是有java 在监听
[root@test]# lsof -i -n |grep java
java 14773 root 10u IPv6 1634063 TCP *:webcache (LISTEN)
java 14773 root 22u IPv6 1634176 TCP *:8009 (LISTEN)
java 14773 root 23u IPv6 1634181 TCP 127.0.0.1:8005 (LISTEN)
java 14773 root 24u IPv6 1811199 TCP 127.0.0.1:8009->127.0.0.1:45730 (ESTABLISHED)
java 14773 root 25u IPv6 1814093 TCP 127.0.0.1:8009->127.0.0.1:45883 (ESTABLISHED)
好像一下就跑起来了。
还需要安装一个叫tomcat-connectors 的东东:
cd ../tomcat-connectors-1.2.27-src/native/
./buildconf.sh
./configure --with-apxs=/server/httpd_tom6/bin/apxs --with-java-home=${JAVA_HOME} -enable-jni
之后又是make ;make install
忘记了会不会丢那个mod_jk.so 到apache的modlues目录,如果不会,自己丢过去算了。
剩下的就是配置了,在httpd.conf里面加如下几行:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile "/server/httpd_tom6/conf/workers.properties"
JkShmFile /var/log/httpd/mod_jk.shm
JkLogFile "/var/log/httpd/mod_jk.log"
JkLogLevel info
JkMount /servlet/* worker1
JkMount /*.jsp worker1
AddType application/x-jsp .jsp
那个AddType 不知道要不要加,懒得去测试了,反正加上没错。
里面定义了*.jsp 跑那个叫worker1的worker,闹不清JAVA的概念,按配置文件里的术语说。8-(
不管有没/var/log/httpd/,强行建一个再说,我的apache是以nobody.nogroup跑的:
mkdir -p /var/log/httpd
chown nobody.nogroup /var/log/httpd
workers.properties 文件内容:
[shm]
file=/server/httpd_tom6/logs/shm.file
size=1048576
[channel.socket:localhost:8009]
tomcatId=localhost:8009
[uri:/servlet/*]
workers.tomcat_home=/server/tomcat6
workers.java_home=/server/jdk1.5.0_16
ps=/
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
哦,忘记了,该在啥时候改一下那个tomecat的server.xml了。改了之后再重启tomcat。
增加或者修改如下项目,localhost一节好像是原来有的,后面site1.com是增加的:
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
reloadable="true" crossContext="true"/>
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
reloadable="true" crossContext="true"/>
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
修改 httpd.conf 增加 include ....
然后再 httpd-vhost.conf里面增加:
ServerAdmin admin@test.com
DocumentRoot "/data/jsp"
ServerName jsp.site1.com
JkMount /*.jsp worker1
ErrorLog "logs/jsp.site1.com-error_log"
CustomLog "logs/jsp.site1.com-access_log" common
ServerAdmin admin@test.com
DocumentRoot "/data/php"
ServerName php.site1.com
ErrorLog "logs/php.site1.com-error_log"
CustomLog "logs/php.com-access_log" common
重启apache,然后
在/data/php里面做个test.php,这里比较郁闷,如果 后面不加 php 直接出SRC。这个要好好查查是啥问题。。。。。或者哪位好心人给说说?
phpinfo();
?>
/data/jsp 下面的 test.jsp:
<%@page language="java" import="java.util.*"%>
Now Time is : <% out.println(new Date()); %>
然后就可以试试了。
网友提醒,PHP5里面默认是要打全 “的话得改php.ini,打开short_open_tag .谢谢slacker群里的阿兜明
阅读(4072) | 评论(0) | 转发(0) |