Apache
#一.Apache的安装#
[root@localhost ~]# yum install httpd -y
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
#二.Apache信息#
1.apache的默认发布目录
/var/www/html
2.apache的默认发布文件
/var/www/html/index.html
3.apache的配置文件
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
4.apache的默认端口
80
#三.Apache的基本配置#
1.修改默认发布文件
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# vim westos.html
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
164 DirectoryIndex index.html ----------> DirectoryIndex westos.html
[root@localhost html]# systemctl restart httpd
浏览器访问:http://172.25.254.129
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
164 DirectoryIndex index.html ----------> DirectoryIndex westos.html index.html
[root@localhost html]# systemctl restart httpd
浏览器访问:http://172.25.254.129
[root@localhost html]# rm -fr westos.html
浏览器访问:http://172.25.254.129
2.修改默认发布目录[当selinux是disable状态时]
[root@localhost ~]# mkdir /mnt/westos/html -p
[root@localhost ~]# vim /mnt/westos/html/westos.html
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
119 #DocumentRoot "/var/www/html"
120 DocumentRoot "/mnt/westos/html"
121
122 <Directory "/mnt/westos/html"> ##授权
123 Require all granted ##允许任何人访问
124 </Directory>
[root@localhost ~]# systemctl restart httpd
浏览器访问:http://172.25.254.129
3.修改默认发布目录[当selinux是enforcing状态时]
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
119 #DocumentRoot "/var/www/html"
120 DocumentRoot "/mnt/westos/html"
121
122 <Directory "/mnt/westos/html"> ##授权
123 Require all granted ##允许任何人访问
124 </Directory>
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t '/mnt(/.*)?'
[root@localhost ~]# restorecon -RvvF /mnt
浏览器访问:http://172.25.254.129
4.apache的访问控制
[root@localhost html]# mkdir admin
1)设定IP的访问
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
126 <Directory "/var/www/html/admin"> ##只允许172.25.254.129主机访问admin目录
127 Order Deny,Allow
128 Allow from 172.25.254.129
129 Deny from All
130 </Directory>
[root@localhost ~]# systemctl restart httpd
浏览器访问:http://172.25.254.129/admin
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
132 <Directory "/var/www/html/admin"> ##允许除了172.25.254.129主机的所有用户访问admin目录
133 Order Allow,Deny
134 Allow from All
135 Deny from 172.25.254.129
136 </Directory>
[root@localhost ~]# systemctl restart httpd
浏览器访问:http://172.25.254.129/admin
2)设定用户的访问
htpasswd -cm /etc/httpd/accessuser admin ##设定帐号密码 [-c会覆盖原内容]
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
138 <Directory "/var/www/html/admin">
139 AuthUserFile /etc/httpd/accessuser ##用户认证文件
140 AuthName "Please input name and password !" ##用户认证提示信息
141 AuthType basic ##认证类型
142 Require valid-user ##认证用户,认证文件中所有用户都可以通过
or [Require user admin] ##只允许认证文件中admin用户访问
143 </Directory>
[root@localhost ~]# systemctl restart httpd
浏览器访问:http://172.25.254.129/admin
5.apache语言支持
html语言默认支持
php语言
[root@localhost ~]# yum install php -y
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# vim /var/www/html/index.php ##php测试页
<?php
phpinfo();
?>
[root@localhost ~]# systemctl restart httpd
cgi语言
[例子]
[root@localhost ~]# mkdir /var/www/html/cgi
[root@localhost ~]# vim /var/www/html/cgi/index.cgi ##cgi测试页
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`; ##执行date指令
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
145 <Directory "/var/www/html/cgi">
146 Options +ExecCGI ##可执行CGI语言命令
147 AddHandler cgi-script .cgi ##添加操作者为以.cgi结尾的cgi脚本
148 </Directory>
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]#chmod +x /var/www/html/cgi/index.cgi
测试
#四.Apache的虚拟主机#
1.定义
实现apache服务器在被访问不同域名时显示不同的主页
2.建立测试页
[root@localhost ~]# cd /var/www/
[root@localhost www]# mkdir -p virtual/news.westos.com
[root@localhost www]# mkdir -p virtual/money.westos.com
[root@localhost www]# mkdir virtual/news.westos.com/html -p
[root@localhost www]# mkdir virtual/money.westos.com/html -p
[root@localhost www]# echo "<h1>money.westos.com's page</h1>" > money.westos.com/html/index.html
[root@localhost www]# echo "<h1>news.westos.com's page</h1>" > news.westos.com/html/index.html
3.配置
[root@localhost ~]# cd /etc/httpd/conf.d/
[root@localhost conf.d]# vim default.conf ##未指定域名的访问都访问default
<Virtualhost _default_:80> ##虚拟主机开启的默认端口为80
DocumentRoot "/var/www/html" ##默认虚拟主机发布目录
CustomLog "logs/default.log" combined ##指定虚拟主机日志(全部)
</Virtualhost>
[root@localhost conf.d]# vim news.conf ##指定域名news.westos.com的访问都指定默认发布目录中
<Virtualhost *:80>
ServerName "news.westos.com"
DocumentRoot "/var/www/virtual/news.westos.com/html"
CustomLog "logs/news.log" combined
</Virtualhost>
<Directory "/var/www/virtual/news.westos.com/html"> ##默认发布目录的访问权限
Require all granted
</Directory>
[root@localhost conf.d]# cp news.conf money.conf
[root@localhost conf.d]# vim money.conf ##指定域名money.westos.com的访问>都指定默认发布目录中
<Virtualhost *:80>
ServerName "money.westos.com"
DocumentRoot "/var/www/virtual/money.westos.com/html"
CustomLog "logs/money.log" combined
</Virtualhost>
<Directory "/var/www/virtual/money.westos.com/html"> ##默认发布目录的访问权限
Require all granted
</Directory>
【浏览器所在主机】
[root@foundation66 ~]# vim /etc/hosts
172.25.254.129 www.westos.com news.westos.com money.westos.com
4.测试
浏览器访问 www.westos.com news.westos.com money.westos.com