Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1130679
  • 博文数量: 221
  • 博客积分: 10152
  • 博客等级: 上将
  • 技术积分: 1518
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-22 10:42
文章分类

全部博文(221)

文章存档

2018年(1)

2015年(6)

2014年(3)

2013年(4)

2012年(1)

2011年(5)

2010年(14)

2009年(10)

2008年(28)

2007年(33)

2006年(114)

2005年(2)

我的朋友

分类: 系统运维

2009-03-11 17:51:28

最近有需要,把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,这里比较郁闷,如果
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群里的阿兜明
阅读(3988) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~