我的Linux生涯之APACHE的配置

APACHE的配置

配置DNS服务

#先复习一下DNS的正向配置。

[root@server1 ~]# yum install bind bind-chroot caching-nameserver
[root@server1 etc]# cd /var/named/chroot/etc/
[root@server1 etc]# cp -p named.caching-nameserver.conf named.conf
[root@server1 etc]# vim named.conf
....
 15         listen-on port 53 { any; };
....
 27         allow-query     { any; };
 28         allow-query-cache { any; }
....
 37         match-clients      { any; };
 38         match-destinations { any; };
....
[root@server1 etc]# vim named.rfc1912.zones 
....
 50 zone "tarena.com" IN {
 51         type master;
 52         file "tarena.com.zone";
 53 };

[root@server1 etc]# cd /var/named/chroot/var/named/
[root@server1 named]# cp -p named.local tarena.com.zon
[root@server1 named]# vim tarena.com.zone
$TTL    86400
@       IN      SOA     tarena.com. root.tarena.com.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
        IN      NS      dns1.tarena.com.
dns1    IN      A       192.168.10.254
www     IN      A       192.168.10.254

[root@server1 named]# service named restart
Stopping named: [  OK  ]
Starting named: [  OK  ]

[root@server1 named]# dig www.tarena.com
....
;; ANSWER SECTION:
www.tarena.com.         86400   IN      A       192.168.10.254
....

 

现在开始配置简单的APACHE服务,能使网页显示出来。

安装APACHE

[root@server1 named]# yum install httpd
Failed to set locale, defaulting to C
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
.....
Dependency Installed:
  apr.x86_64 0:1.2.7-11.el5_6.5             apr-util.x86_64 0:1.2.7-11.el5_5.2  
  postgresql-libs.x86_64 0:8.1.23-6.el5_8  

Complete!

再来写入主页文件

来测试一下。

[root@server1 named]# echo "<h1>Hello World</h1>" > /var/www/html/index.html
[root@server1 named]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: httpd: apr_sockaddr_info_get() failed for server1.tarena.com
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

##这里提示了说无法确定可靠的完全合格的域名。那么就是/etc/hosts文件的问题了。
[  OK  ]
[root@server1 named]# hostname 
server1.tarena.com
[root@server1 named]# grep server /etc/hosts
192.168.10.254          server1.tarena.com      server1
[root@server1 named]# !ser
service httpd restart
Stopping httpd: [  OK  ]

Starting httpd: [  OK  ]

 

[root@server1 ~]# links www.tarena.com

224834553.png

###好,可以正常显示了。

再来对主机做访问限
不允许192.168.10.10主机访问/var/www/html/news/,允许其它主机访问

[root@server1 ~]# mkdir /var/www/html/news -p
[root@server1 ~]# mkdir /var/www/html/bbs -p
[root@server1 ~]# echo "<h1>bbs.tarena.com</h1>" > /var/www/html/bbs/index.html
[root@server1 ~]# echo "<h1>news.tarena.com</h1>" > /var/www/html/news/index.html
[root@server1 ~]# vim /etc/httpd/conf/httpd.conf
332 #    Order allow,deny
333 #    Allow from all
334      Order deny,allow
335      Deny 192.168.10.30
[root@server1 ~]# service httpd restart
Stopping httpd: [FAILED]

Starting httpd: [  OK  ]

使用客户端访问

225602550.png

225605400.png

 

#那,192.168.10.30的主机不能访问了,再换个主机试试。

225607989.png

#可以吧~说明成功了呢。

 

再来做验证用户密码访问
要求admin用户使用密码访问/var/www/html

[root@server1 ~] vim /etc/httpd/conf/httpd.conf
.....
306 <Directory "/var/www/html">
.....
332     Order allow,deny
333     Allow from all
334     AuthName "Please Input Password!!"
335     AuthType Basic
336     AuthUserFile  "/etc/httpd/.user.pass"
337     Require valid-user
338 </Directory>
.....
[root@server1 ~]# htpasswd -c  /etc/httpd/.user.pass  admin
New password: 
Re-type new password:   
Adding password for user admin
#输入两次密码
[root@server1 ~]# service httpd restart
Stopping httpd: [  OK  ]
Starting httpd: [  OK  ]

##再来用客户端测试

 

230059181.png

##输入帐户密码之后。。

230101637.png

##可以了~ ^_^

接下来是alias
要求用户访问http://www.tarena.com/news 时等于访问/http://www.tarena.com/test/file/news/

 

[root@server1 ~]# vim /etc/httpd/conf/httpd.conf 
.....
546 Alias /news/  "/var/www/html/test/file/news/"
....
[root@server1 ~]# mkdir /var/www/html/news/
[root@server1 ~]# mkdir /var/www/html/test/file/news/ -p
[root@server1 ~]# echo "<h1>New.tarena.com</h1>" > /var/www/html/test/file/news/index.html
[root@server1 ~]# cat /var/www/html/test/file/news/index.html 
<h1>New.tarena.com</h1>
[root@server1 ~]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: [  OK  ]

###看效果

 

230547955.png

##看,这两个是一样的。是不是方便了很多呢。

再来是虚拟主机头

[root@server1 /]# cat /etc/httpd/conf.d/name-virtual.conf 
NameVirtualHost *:80
<VirtualHost *:80>
   DocumentRoot /data/web/bbs
   ServerName  bbs.tarena.com
   ErrorLog  logs/dummy-bbs.tarena.com-error_log
   CustomLog logs/dummy-bbs.tarena.com-access_log common
</VirtualHost>
<VirtualHost *:80>
   DocumentRoot  /data/web/blog
   ServerName  blog.tarena.com
   ErrorLog   logs/dummy-blog.tarena.com-error_log
   CustomLog logs/dummy-blog.tarena.com-access_log common
</VirtualHost>
[root@server1 /]# echo "bbs      IN     A   192.168.10.254"  >> /var/named/chroot/var/named/tarena.com.zone 
[root@server1 /]# echo "blog     IN     A   192.168.10.254"  >> /var/named/chroot/var/named/tarena.com.zone
[root@server1 /]# service httpd restart
Stopping httpd: [  OK  ]
Starting httpd: [  OK  ]
[root@server1 /]# service named restart
Stopping named: [  OK  ]
Starting named: [  OK  ]
[root@server1 /]# dig blog.tarena.com 
....
;; ANSWER SECTION:
blog.tarena.com.        86400   IN      A       192.168.10.2
....
[root@server1 /]# dig bbs.tarena.com
;; ANSWER SECTION:
bbs.tarena.com.         86400   IN      A       192.168.10.254

##测试下。

 

230103953.png

然后是基于IP地址的虚拟主机。

#该IP必须是主机所有的IP才行。

 

[root@server1 /]# rm /etc/httpd/conf.d/name-virtual.conf 
rm: remove regular empty file `/etc/httpd/conf.d/name-virtual.conf'? y
#为了避免冲突
[root@server1 /]# vim /etc/httpd/conf.d/ip-virtual.conf
<VirtualHost 192.168.10.100:80>
        DocumentRoot /data/web/100
        ServerName   100.tarena.com
        ErrorLog  logs/dummy-100.tarena.com-error_log
        CustomLog logs/dummy-100.tarena.com-access_log common
</VirtualHost>
[root@server1 /]# mkdir /data/web/100
[root@server1 /]vim /data/web/100/index.html
<h1>110.tarena.com</h1>
[root@server1 /]# vim /var/named/chroot/var/named/tarena.com.zone
10     IN     A   192.168.10.100
[root@server1 ~]# cd /etc/sysconfig/network-scripts/
[root@server1 network-scripts]# cp ifcfg-eth0 ifcfg-eth0:
[root@server1 network-scripts]# cat ifcfg-eth0:1
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0:1
BOOTPROTO=static
BROADCAST=192.168.10.255
HWADDR=00:0C:29:41:4F:08
IPADDR=192.168.10.100
NETMASK=255.255.255.0
NETWORK=192.168.10.0
ONBOOT=yes
[root@server1 /]# service named restart
Stopping named: [  OK  ]
Starting named: [  OK  ]
[root@server1 /]# service httpd restart
Stopping httpd: [  OK  ]
Starting httpd: [  OK  ]
[root@server1 network-scripts]#  service network restart
Shutting down interface eth0:  [  OK  ]
Shutting down loopback interface:  [  OK  ]
Bringing up loopback interface:  [  OK  ]
Bringing up interface eth0:  [  OK  ]
[root@server1 network-scripts]# ifconfig eth0:1
eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:41:4F:08  
          inet addr:192.168.10.100  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

 

 

###再来测试,不过好像主页内容好像错了。。。

230105648.png

 

最后一个,基于端口的虚拟主机

#要注意的是必须侦听对应的端口才可以,如果有iptables时记得要开放端口。

 

[root@server1 ~]# rm /etc/httpd/conf.d/ip-virtual.conf 
rm: remove regular file `/etc/httpd/conf.d/ip-virtual.conf'? y
#同样为了避免冲突
[root@server1 ~]# vim /etc/httpd/conf.d/port-Virtual.conf
Listen 8080
Listen 8181
<Directory *:8080>
        DocumentRoot /data/web/8080
        ErrorLog  logs/dummy-8080.tarena.com-error_log
        CustomLog logs/dummy-8080.tarena.com-access_log common
</Directory>
<Directory *:8181>
        DocumentRoot /data/web/8181
        ErrorLog  logs/dummy-8181.tarena.com-error_log
        CustomLog logs/dummy-8181.tarean.com-access_log common
</Directory>

[root@server1 ~]# mkdir /data/web/8080
[root@server1 ~]# mkdir /data/web/8181
[root@server1 ~]# echo "<h1>8080.tarena.com</h1>" > /data/web/8080/index.html
[root@server1 ~]# echo "<h1>8181.tarena.com</h1>" > /data/web/8181/index.html

 

 

##测试吧。。。终于完了。。。。

230108320.png

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(apache,linux)