《apache_php_tomcat基于主机名的多虚拟主机整合笔记》

环境:rhel4 x86-64 + apache2.0.52 + php5.2.17 + jdk1.6.0_29 + tomcat6.0.35, apache为系统缺省安装

一,php安装,参见《rhel4_x86_64_php5.2.17_make安装支持mysqli》-> http://blog.csdn.net/lazyclough/article/details/7103948

二, tomcat 6 安装

1, 下载jdk-6u29-linux-i586-rpm.bin, 为其加上可执行权限并执行,jdk将安装于/usr/java/jdk1.6.0_29

2, 下载apache-tomcat-6.0.35.tar.gz并解压至任意目录,如:/home/molin/program/apache-tomcat-6.0.35

3,配置java和tomcat环境变量

$ sudo vi /etc/profile, 在文件末尾加上以下内容:

###########################################################
export JAVA_HOME=/usr/java/jdk1.6.0_29
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$PATH:$JAVA_HOME/bin
export CATALINA_HOME=/home/molin/program/apache-tomcat-6.0.35
export CATALINA_BASE=$CATALINA_HOME
###########################################################

$ sudo source /etc/profile (使环境变量直接生效)

4, 将tomcat配置为系统服务

$ sudo vi /etc/init.d/tomcat

#############################################################
#!/bin/bash
#
#tomcat Startup script for the Tomcat Server
#
#set options related to chkconfig
#chkconfig: 345 80 20
#description: start the tomcat deamon
#
# Source function library
if [ -f /etc/init.d/functions ] ; then
        . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
        . /etc/rc.d/init.d/functions
else
        exit 0
fi

prog=tomcat
JAVA_HOME=/usr/java/jdk1.6.0_29
export JAVA_HOME
CATALINA_HOME=/home/molin/program/apache-tomcat-6.0.35
export CATALINA_HOME

# start tomcat service
case "$1" in
start)
        echo "Starting Tomcat ... "
        $CATALINA_HOME/bin/startup.sh
        ;;
stop)
        echo "Stopping Tomcat ... "
        $CATALINA_HOME/bin/shutdown.sh
        ;;
restart)
        echo "Stopping Tomcat ... "
        $CATALINA_HOME/bin/shutdown.sh
        sleep 2
        echo
        echo "Starting Tomcat ... "
        $CATALINA_HOME/bin/startup.sh
        ;;
*)
        echo "Usage: $prog {start | stop | restart}"
        ;;
esac
exit 0
#############################################################

$ sudo chkconfig --add tomcat    (注:添加成服务)
$ sudo chkconfig --list tomcat
$ sudo chkconfig --del tomcat    (注:删除服务)
$ sudo service tomcat start      (注:启动服务)

三、配置apache和tomcat以整合APACHE、PHP、TOMCAT并多主机

1, 目的为完成以下功能

www.php.com 访问 php 站点, 站点主目录/var/www/html
www.eda.com 访问tomcat站点1, 站点主目录/home/molin/program/apache-tomcat-6.0.35/eda
www.flow.com 访问tomcat站点2, 站点主目录/home/molin/program/apache-tomcat-6.0.35/flow

2, 到http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.31/x86_64/下载 mod_jk-1.2.31-httpd-2.0.x.so, 注意应下载与apache版本相应的版本。

3, 复制mod_jk-1.2.31-httpd-2.0.x.so到apache模块目录

$ sudo cp mod_jk-1.2.31-httpd-2.0.x.so /etc/httpd/modules/
$ sudo chmod a+x mod_jk-1.2.31-httpd-2.0.x.so

4, 添加mod_jk的配置文件

a) $ sudo vi /etc/httpd/conf/mod_jk.conf

#############################################################

# 指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile /etc/httpd/conf/workers.properties

# Where to put jk logs
JkLogFile /etc/httpd/logs/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info

# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

# JkOptions indicate to send SSL KEY SIZE,
JkOptions  +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"

#############################################################

b) $ sudo vi /etc/httpd/conf/mod_jk_to.conf

#############################################################

# 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /servlet/*  worker1
JkMount /eda/*  worker1
JkMount /*.jsp worker1

# 将所有文件均送给tomcat
JkMount /* worker1

#############################################################

c) 注:实际上以上a),b)是将一般配置的mod_jk分拆为两个文件,以便只在虚拟主机中包含JkMount语句

5, 编辑httpd.conf

$ sudo vi /etc/httpd/conf/httpd.conf

添加以下内容:
#############################################################

LoadModule jk_module modules/mod_jk.so
Include /etc/httpd/conf/mod_jk.conf

# ........
AddDefaultCharset off   #(注, 这条语句关闭缺省字符集,以便各站点使用自己的字符集)
# ........

NameVirtualHost *:80

<VirtualHost *:80>
        ServerName www.php.com
        DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost *:80>
        ServerName www.eda.com
        DocumentRoot /home/molin/program/apache-tomcat-6.0.35/webapps/eda
        Include /etc/httpd/conf/mod_jk_to.conf
</VirtualHost>

<VirtualHost *:80>
        ServerName www.flow.com
        ServerAlias flow.com, *.flow.com
        DocumentRoot /home/molin/program/apache-tomcat-6.0.35/webapps/flow
        Include /etc/httpd/conf/mod_jk_to.conf
</VirtualHost>

#############################################################

6, 编辑tomcat配置文件

A) $ vi ~/program/apache-tomcat-6.0.35/conf/server.xml

a) 删除原来的<Host></Host>节

b) 添加以下内容(#行勿拷入)

#############################################################

<Host name="www.eda.com" appBase="/home/molin/program/apache-tomcat-6.0.35/webapps/eda"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
    <Context path="/" docBase="/home/molin/program/apache-tomcat-6.0.35/webapps/eda"></Context>
</Host>

<Host name="www.flow.com" appBase="/home/molin/program/apache-tomcat-6.0.35/webapps/flow"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
    <Context path="/" docBase="/home/molin/program/apache-tomcat-6.0.35/webapps/flow"></Context>
</Host>

#############################################################

B) $ vi ~/program/apache-tomcat-6.0.35/conf/context.xml (这个步骤或许可以不要?)

将原<context>标签内容改为:
<Context path="" docBase="/home/molin/program/apache-tomcat-6.0.35/webapps" debug="0" reloadable="true" crossContext="true">

7, 重启服务生效(注:apache监听于80端口, tomcat监听于8080端口)

$ sudo service httpd restart
$ sudo service tomcat restart

8, 错误处理

a) service httpd restart 时报错host路径/home/molin/program/apache-tomcat-6.0.35/webapps/eda找不到, 此为SELinux的问题,可通过关闭SELinux对httpd daemon的保护解决,命令:$ sudo setsebool -P httpd_disable_trans true

apache_php_tomcat基于主机名的多虚拟主机整合笔记相关推荐

  1. linux apache 多域名配置,apache-2.4.12基于域名访问的多虚拟主机配置

    apache-2.4.12基于域名访问的多虚拟主机配置 原始配置: ServerAdmin kk@etiantian.org DocumentRoot "/data/cms" Se ...

  2. 申请服务器就是申请虚拟主机吗,申请一个虚拟主机和云主机哪个更好呢?

    最近几年, 我们来了解一下云主机和虚拟主机是一个什么样的概念吧! 云主机相当于是一台独立的虚拟 虚拟主机又叫空间,它是利用虚拟化技术在服务器硬盘上划分出来的一部分容量.共享的服务器IP以及带宽等资源, ...

  3. java主机哪儿好_java虚拟主机哪个好,香港java虚拟主机哪里有!

    当然,使用Java程序建站,就必须要用支持Java程序的香港虚拟主机了.虽然用Java建站,总有种"浪费"的感觉,没有优势可言.而且香港Java虚拟主机的价格也都比较贵.但是,很多 ...

  4. 主机屋虚拟主机php版本,5款免费虚拟主机管理系统(云虚拟主机管理)

    大家来推荐一下,虚拟主机管理系统哪家比较好呢?看过pesk,慧林,蓝芒,. 蓝芒的吧,虚拟主机管理系统好,服务态度超赞的. WINDOWS一般用的是IIS..建议你还是用LINUX系统吧.. L1型( ...

  5. linux 命令查询主机名,主机名命令,linux查看主机名命令

    琪琪词资源网 - 主机名命令,linux查看主机名命令 1.linux查看主机名命令 [root@zijuan /]# hostname zijuan 技巧:两个简单的命令临时临时设置主机名. (1) ...

  6. linux查看本地主机名,linux如何查看主机名

    DIEA 分析如下:1.查看本机的hostname#hostname在Linux中和hostname相关的有几个:1.       系统中有HOSTNAME环境变量, 用命令echo $HOSTNAM ...

  7. 独享云虚拟主机和云服务器,共享虚拟主机和独享虚拟主机的区别

    共享虚拟主机和独享虚拟主机的区别 内容精选 换一换 专属主机是部署了虚拟化环境的专属物理服务器,用户独享整台物理服务器资源,与其他租户的服务器物理隔离.用户申请后,可以在专属主机上创建虚拟机,支持用户 ...

  8. 云服务器和共享主机,共享虚拟主机、独享虚拟主机还是云服务器?

    共享虚拟主机的CPU.内存.空间和带宽等资源与其他网站空间共享,当一台服务器上开设的空间越多,每个空间可以使用的资源就越少,尤其在网络高峰时段,相互"争抢"的现象比较严重.而独享虚 ...

  9. linux 修改主机名 命令,Linux修改主机名命令详解

    Linux修改主机名命令 1.如果只需要临时更改主机名,可以使用hostname命令. sudo hostname # 例如: sudo hostname myDebian 这条命令不会更改/etc/ ...

最新文章

  1. 使用JavaMail发送邮件
  2. ./configure --with-package=dir指定依赖的软件包
  3. python爬虫自学笔记分析解密_python爬虫学习笔记——1 各种文本分析工具简介之汇总...
  4. 线性代数导论4——A的LU分解
  5. SAP UI5 应用开发教程之十 - 什么是 SAP UI5 应用的描述符 Descriptor
  6. sulin Python3.6爬虫+Djiago2.0+Mysql --实例demo
  7. Struts2源码阅读(六)_ActionProxyActionInvocation
  8. pinctrl子系统和gpio子系统
  9. java堆栈信息查看,以及JVM性能查看工具-jconsole+jmap
  10. Java中文jsp页面_java中文乱码解决之道(七)—–JSP页面编码过程
  11. HTML怎么写入形状,css3写各种形状(收集篇...)
  12. python np数组中括号里面‘:n‘与‘n:‘什么意思
  13. 死磕java并发系列
  14. shinelon笔记本进bios设置u盘启动_重装系统—BIOS设置 U盘启动
  15. 中控,中控系统,中控会议室
  16. 360wifi驱动linux驱动安装,ubuntu安装360随身wifi驱动
  17. ****怎么解决UBUNTU里面VIM编辑器键盘错乱问题****
  18. 数显之家快讯:【SHIO世硕心语】一个人成功之前,需要失去五样东西!
  19. DA03 – Schemas导论
  20. 信息系统项目管理师学习笔记5——信息化与信息系统5

热门文章

  1. Twig模板语言入门
  2. Vue中foreach数组与js中遍历数组的写法
  3. PowerDesigner逆向工程从SqlServer数据库生成PDM(图文教程)
  4. CS中实现简单的注册验证窗体程序
  5. Thymeleaf在循环时设置递增序号
  6. Unknown system variable 'tx_isolation'] with root cause
  7. Eclipse安装从dao层直接到mapper层的插件
  8. springboot-springmvc响应json与xml原理-详解数据响应与内容协商(长文预警,收藏慢啃)
  9. 【NLP】Task3:特征选择
  10. 如何在 Flutter 中使 Expanded 中的文本可滚动