第九章:Apache服务全攻略(二案例)

2010年02月07日 Linux服务器, Linux视频 评论 6 条 阅读 16,104 views 次

理论部分,大家可以看一下这里
http://www.opsers.org/2010_02_625.html
案例详解
【案例1】建立Web服务器,并根据以下要求配置Web服务器。
(1)设置主目录的路径为/var/www/web。
(2)添加index.jsp文件作为默认文档。
(3)设置Apache监听的端口号为8888。
(4)设置默认字符集为GB2312。
(5)建立一个名为temp的虚拟目录,其对应的物理路径是/usr/local/temp,并配置Web服务器允许该虚拟目录具备目录浏览和允许内容协商的多重视图特性。仅允许来自网络192.168.16.0/24客户机的访问。
(6)建立一个名为private的虚拟目录,其对应的物理路径是/usr/local/private,并配置Web服务器对该虚拟目录启用用户认证,只允许用户名为abc和xyz的用户访问。

mkdir /var/www/web
mkdir /usr/local/temp
mkdir /usr/local/private

htpasswd -c /etc/httpd/mycreatpwd abc
htpasswd  /etc/httpd/mycreatpwd xyz

注意mycreatpwd的文件的权限,只需要设置成apaceh用户能访问就OK,而且尽可能不要放在网站的目录下,防止被下载。

配置httpd.conf
主要内容如下:

DocumentRoot "/var/www/web"
DirectoryIndex index.jsp
Litsen 8888
AddDefaultCharset GB2312

Alias /temp "/usr/local/temp/"

<Directory "/usr/local/tmp">
    Options Indexes MultiViews
    Order allow,deny
    Allow from 10.0.0.0/8
</Directory>

Alias /private "/usr/local/private/"

<Directory "/usr/local/private">
    AuthType Basic
    AuthUserFile /etc/httpd/mycreatpwd
    AuthName "this is private directory,please Login:"
    Require user abc xyz
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

【案例2】使用10.0.0.8和10.0.0.9两个IP地址创建基于IP地址的虚拟主机,其中IP地址为10.0.0.8的虚拟主机对应的主目录为/usr/www/web1,IP地址为10.0.0.9的虚拟主机对应的主目录为/usr/www/web2。
在DNS服务器中建立www.example1.com和www.example2.com两个域名,使它们解析到同一个IP地址10.0.0.8上,然后创建基于域名的虚拟主机。其中域名为www.example1.com的虚拟主机对应的主目录为/usr/www/web1,域名为www.example2.com的虚拟主机对应的主目录为/usr/www/web2。

mkdir -p /usr/www/web1
mkdir /usr/www/web2

<VirtualHost 10.0.0.8:80>
    ServerAdmin
webmaster@localhost.com
    DocumentRoot /usr/www/web1
    ServerName localhost
    ErrorLog logs/web1-error_log
    CustomLog logs/web1-access_log common
</VirtualHost>
<VirtualHost 10.0.0.9:80>
    ServerAdmin
webmaster@localhost.com
    DocumentRoot /usr/www/web2
    ServerName localhost
    ErrorLog logs/web2-error_log
    CustomLog logs/web2-access_log common
</VirtualHost>

 cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1

vim /etc/sysconfig/network-scripts/ifcfg-eth0:1

改成
DEVICE=eth0:1
IPADDR=10.0.0.9

注意:这里的HTTPD配置文件其它的都是默认。
如果说这两个IP的端口不同的话,就要在Listen 80下面增加相应的监听端口!至于通过域名来实现的过程,留给大家自己做实验!!如果DNS不明白的话,可以参考我前面的课程!

【案例3】让Web服务器支持CGI运行环境。

①安装perl-软件

②在主目录的权限设置的options里增加ExecCGI

③指定CGI文件的类型
开启AddHandler cgi-script .cgi

④创建测试文件,内容如下
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "hello world!!!";
exit

⑤给文件可执行权限

⑥进行测试

让Web服务器支持PHP运行环境。

①安装PHP软件
php-common
php-cli
php

②创建测试文件内容如下
<?
phpinfo();
?>

让Web服务器支持JSP运行环境。
由于tomcat所依赖的软件比较多,所以建议大家用YUM进行安装

1.下载或编译自己的mod_jk.so
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.21/mod_jk-1.2.21-apache-2.2.x-linux-i686.so
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz

 将编译好的mod_jk.so或下载下来的mod_jk-1.2.21-apache-2.2.x-linux-i686.so拷贝到/etc/httpd/modules目录中,并将它重命名为mod_jk.so

2、配置。
在/etc/httpd/conf/下面建立两个配置文件mod_jk.conf和workers.properties。

①# vi 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"

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

②# vi workers.properties
添加以下内容:

代码:
# Defining a worker named worker1 and of type ajp13
worker.list=worker1

# Set properties for worker1
worker.worker1.type=ajp13 
worker.worker1.host=localhost 
worker.worker1.port=8009
worker.worker1.lbfactor=50 
worker.worker1.cachesize=10 
worker.worker1.cache_timeout=600 
worker.worker1.socket_keepalive=1 
worker.worker1.socket_timeout=300

③在Apache的配置文件中,增加关于加载mod_jk的语句:

代码:
LoadModule jk_module modules/mod_jk.so
Include /etc/httpd/conf/mod_jk.conf

④最后编辑Tomcat的配置文件/etc/tomcat5/server.xml,在HOST段(倒数第四行)中加入:

代码:
<Context path="" docBase="/var/www/html" debug="0" reloadable="true" crossContext="true"/>

⑤在/var/www/html下建立一个index.jsp,启动Apache和Tomcat,用浏览器访问http://localhost/,应该可以看到正确的页面了。
jsp测试页内容

<HTML>
    <HEAD>
       <TITLE>test jsp page</TITLE>
    </HEAD>
 <BODY>
 <%out.println("<h1>Hello World! </h1>");%>
 <%out.println("<h1>Congratulations! ! </h1>");%>
 The time is <%= new java.util.Date() %>
 </BODY>
</HTML>

★★★★★★★★★★★★★★★★★视频观看地址★★★★★★★★★★★★★★★★★★
http://www.boobooke.com/v/bbk3741
http://www.boobooke.com/v/bbk3742
http://www.boobooke.com/v/bbk3743
http://www.boobooke.com/v/bbk3744
http://www.boobooke.com/v/bbk3745

6 条留言  访客:4 条  博主:2 条

  1. 案例2的http.conf需要按照案例1配置吗?

  2. avatar hugo.zhao

    看你的博客真的学了不少,请问有LAMP的视频教程吗,可以推荐一个吗?

  3. 做的JSP环境搭建,完全按照步骤操作,启用httpd服务出现这个错误.log的格式不对?
    [root@baby tomcat5]# /etc/init.d/httpd restart
    Stopping httpd: [FAILED]
    Starting httpd: Syntax error on line 10 of /etc/httpd/conf.d/mod_jk.conf:
    JkLogStampFormat takes one argument, The Tomcat module log format, follow strftime synthax
    [FAILED]

    请解决

    • avatar eloops

      已经解决了,因为复制代表的时候,””没有改掉;所以才提示出问题!
      在这个里也给大家提个醒,粘贴代码之后,要改掉””号

给我留言

Copyright © 羽飞博客 保留所有权利.   Ality主题 皖ICP备14013844号-1

用户登录