杨海艳主讲linux之webapache配置步骤截图.docx
《杨海艳主讲linux之webapache配置步骤截图.docx》由会员分享,可在线阅读,更多相关《杨海艳主讲linux之webapache配置步骤截图.docx(14页珍藏版)》请在冰豆网上搜索。
杨海艳主讲linux之webapache配置步骤截图
apache的配置步骤讲解说明
主讲人:
杨海艳
示例:
设置apache服务器。
设置虚拟主机。
要求
配置第二个IP为192.168.10.101/24
ifconfigeth0:
0192.168.10.101netmask255.255.255.0
ifconfig查看
创建基于端口的虚拟主机。
响应IP为192.168.10.101。
其中一个监听80端口,一个监听8080端口,
vim/etc/httpd/conf/httpd.conf
listen80后面再加一行
listen8080
把上面的改成如下
然后复制示例7行7yy在粘贴p修改相应配置。
mkdir/yhy
cd/yhy
mkdirweb1web2
echo“welcometoweb1homepage”>web1/index.html
echo“welcometoweb2homepage”>web2/index.html
servicehttpdrestart
创建基于域名的虚拟主机。
域名分别为和
创建以上4个虚拟主机的默认文档文件。
写入恰当内容。
以验证配置。
四个网站:
基于ip基于端口,基于多域名的:
实例
参考文件
用户认证
①单个用户的认证
首先需要建立一个密码文件。
这个文件应该放在不能被网络访问的位置,以避免被下载,同时也要给上相应的权限,让没有权限的用户不用读取。
建立密码文件htpasswd-c/usr/local/apache/passwd/passwordsauthtest按提示输入密码
#第一次创建用户要用到-c参数第2次添加用户,就不用-c参数
#如果你们想修改密码,可以如下
htpasswd-m/usr/local/apache/passwd/passwordsauthtest
修改httpd.conf或.htaccess文件
AuthTypeBasic#对用户实施认证的方法
AuthName"justtest,pleaseLogin:
"#对这个访问的描述
AuthUserFile/usr/local/apache/passwd/passwords#指定密码文件的位置,也就是刚才我们用htpasswd建立的文件
Requireuserauthtest#允许访问的用户
②多个用户的认证
首先建立一个组文件以确定组中的用户。
格式如下
GroupName:
rbowendpittssungorshersey#每组一行的一个用空格分隔的组成员列表
向已有的密码文件中增加一个用户
htpasswd/usr/local/apache/passwd/passwordsdpitts
修改httpd.conf或.htaccess文件
AuthTypeBasic
AuthName"justtest,pleaseLogin:
"
AuthUserFile/usr/local/apache/passwd/passwords
AuthGroupFile/usr/local/apache/passwd/groups
RequiregroupGroupName
现在,GroupName组中的成员都在password文件中有一个相应的记录,从而允许他们输入正确的密码进行访问。
除了建立组文件,还有另一种途径允许多人访问,就是使用如下指令:
Requirevalid-user#允许密码文件中的所有用户使用正确的密码进行访问。
Orderallow,deny
Allowfromaddress
address可以是一个IP地址(或者IP地址的一部分),也可以是一个完整的域名(或者域名的一部分),还可以同时指定多个IP地址和域名。
Alias/authtest"/var/www/authtest/"
OptionsIndexesMultiViews
AuthTypeBasic
AuthName"justtest,pleaseLogin:
"
AuthUserFile/var/www/authtest/.htaccess
Requireusertest
Orderallow,deny
Allowfromall
为了服务器的性能,一般不推荐使用AllowOverrideAuthConfig或者AllowOverrideALL,因为这会使服务器会不断的去寻找.htaccess,从而影响服务器的效能,一般我们把一些后台管理界面或者其他特殊目录可能需要加验证这个需求。
apache+ssl
①安装openssl和mod_ssl
②产生私钥
cd/etc/pki/tls/certs/
makeserver.key
opensslrsa-inserver.key-outserver.key
cpserver.key/etc/pki/tls/private/server.key
③产生公钥
makeserver.crt
下面是具体的内容
CountryName(2lettercode)[GB]:
zg
StateorProvinceName(fullname)[Berkshire]:
qh
LocalityName(eg,city)[Newbury]:
grm
OrganizationName(eg,company)[MyCompanyLtd]:
geren
OrganizationalUnitName(eg,section)[]:
yt
CommonName(eg,yournameoryourserver'shostname)[]:
localhost
EmailAddress[]:
zxf_xxff@
④vim/etc/httpd/conf.d/ssl.conf
SSLCertificateFile/etc/pki/tls/certs/server.crt
SSLCertificateKeyFile/etc/pki/tls/private/server.key
重新启动进行测试。
在测试的时候,注意浏览器的提示:
因为公钥和私钥都是非CA签发的,在浏览器端会有相应的提示,这也是出于安全的考虑。
我们在这里只是让APACHE支持SSL,更多的SSL和APACHE的应用,大家看小布老师讲解的""在Apache中使用SSL"系列视频。
【案例1】建立Web服务器,并根据以下要求配置Web服务器。
(1)设置主目录的路径为/var/www/web。
(2)添加index.jsp文件作为默认文档。
(3)设置Apache监听的端口号为8888。
(4)设置默认字符集为GB2312。
(5)建立一个名为temp的虚拟目录,其对应的物理路径是/usr/local/temp,并配置Web服务器允许该虚拟目录具备目录浏览和允许内容协商的多重视图特性。
仅允许来自网络10.0.0.0网段客户机的访问。
(6)建立一个名为private的虚拟目录,其对应的物理路径是/usr/local/private,并配置Web服务器对该虚拟目录启用用户认证,只允许用户名为abc和xyz的用户访问。
mkdir/var/www/web
mkdir/usr/local/temp
mkdir/usr/local/private
htpasswd-c/etc/httpd/mycreatpwdabc
htpasswd/etc/httpd/mycreatpwdxyz
注意mycreatpwd的文件的权限,只需要设置成apaceh用户能访问就OK,而且尽可能不要放在网站的目录下,防止被下载。
配置httpd.conf
主要内容如下:
DocumentRoot"/var/www/web"
DirectoryIndexindex.jsp
Litsen8888
AddDefaultCharsetGB2312
Alias/temp"/usr/local/temp/"
OptionsIndexesMultiViews
Orderallow,deny
Allowfrom10.0.0.0/8
Alias/private"/usr/local/private/"
AuthTypeBasic
AuthUserFile/etc/httpd/mycreatpwd
AuthName"thisisprivatedirectory,pleaseLogin:
"
Requireuserabcxyz
AllowOverrideNone
Orderallow,deny
Allowfromall
【案例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服务器中建立和两个域名,使它们解析到同一个IP地址10.0.0.8上,然后创建基于域名的虚拟主机。
其中域名为的虚拟主机对应的主目录为/usr/www/web1,域名为的虚拟主机对应的主目录为/usr/www/web2。
mkdir-p/usr/www/web1
mkdir/usr/www/web2
80>
ServerAdminwebmaster@
DocumentRoot/usr/www/web1
ServerNamelocalhost
ErrorLoglogs/web1-error_log
CustomLoglogs/web1-access_logcommon
80>
ServerAdminwebmaster@
DocumentRoot/usr/www/web2
ServerNamelocalhost
ErrorLoglogs/web2-error_log
CustomLoglogs/web2-access_logcommon
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的端口不同的话,就要在Listen80下面增加相应的监听端口!
至于通过域名来实现的过程,留给大家自己做实验!
!
如果DNS不明白的话,可以参考我前面的课程!
【案例3】让Web服务器支持CGI运行环境。
①安装perl-软件
②在主目录的权限设置的options里增加ExecCGI
③指定CGI文件的类型
开启AddHandlercgi-script.cgi
④创建测试文件,内容如下
#!
/usr/bin/perl
print"Content-type:
text/html\n\n";
print"helloworld!
!
!
";
exit
⑤给文件可执行权限
⑥进行测试
让Web服务器支持PHP运行环境。
①安装PHP软件
php-common
php-cli
php
②创建测试文件内容如下
phpinfo();
?
>
让Web服务器支持JSP运行环境。
由于tomcat所依赖的软件比较多(45个左右),所以建议大家用YUM进行安装
①CentOS5.3本地源
mountCentOS5的ISO文件到/mnt下
编辑/etc/yum.repos.d/CentOS-Media.repo这个是本地的YUM源配置文件
[c5-media]
name=CentOS-$releasever-Media
baseurl=file:
///mnt/
gpgcheck=0
enabled=1
把/etc/yum.repos.d/CentOS-Base.repo改名或者是删除,这个是网络上的YUM源,默认的源
yumcleanall
yuminstalltomcat5tomcat5-webappstomcat5-admin-webapps安装Tomcat服务及关联程序
②RHEL5.3本地源
首先使用命令“mkdir/var/www/html/yumsource”创建目录,然后将RedHatEnterpriseLinux5的ISO文件mount到/var/www/html/yumsource中。
在/etc/yum.repos.d目录下建立一个名为update.repo的文件,该文件的内容如下。
[base]
name=yumforRHEL5
baseurl=http:
//10.0.0.8/yumsource/
enabled=1
gpgcheck=0
将/usr/lib/python2.4/site-packages/yum/yumRepo.py文件中的语句“remote=url+‘/’+relative”,修改为“remote=”http:
//10.0.0.8/yumsource/“+‘/’+relative”。
createrepo/var/www/html/yumsource/
yumcleanall
yuminstalltomcat5tomcat5-webappstomcat5-admin-webapps安装Tomcat服务及关联程序
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。
①#vimod_jk.conf
添加以下内容:
代码:
#指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile/etc/httpd/conf/workers.properties
#Wheretoputjklogs
JkLogFile/etc/httpd/logs/mod_jk.log
#Setthejkloglevel[debug/error/info]
JkLogLevelinfo
#Selectthelogformat
JkLogStampFormat"[%a%b%d%H:
%M:
%S%Y]"
#JkOptionsindicatetosendSSLKEYSIZE,
JkOptions+ForwardKeySize+ForwardURICompat-ForwardDirectories
#JkRequestLogFormatsettherequestformat
JkRequestLogFormat"%w%V%T"
#将所有servlet和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount/servlet/*worker1
JkMount/*.jspworker1
②#viworkers.properties
添加以下内容:
代码:
#Definingaworkernamedworker1andoftypeajp13
worker.list=worker1
#Setpropertiesforworker1
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的语句:
代码:
LoadModulejk_modulemodules/mod_jk.so
Include/etc/httpd/conf/mod_jk.conf
④最后编辑Tomcat的配置文件/etc/tomcat5/server.xml,在HOST段(倒数第四行)中加入:
代码:
⑤在/var/www/html下建立一个index.jsp,启动Apache和Tomcat,用浏览器访问http:
//localhost/,应该可以看到正确的页面了。
jsp测试页内容
testjsppage
<%out.println("
HelloWorld!
");%>
<%out.println("
Congratulations!
!
");%>
Thetimeis<%=newjava.util.Date()%>