linux--apache

Apache的安装部署与基本设定

apache:企业中常用的web服务,用来提供http://(超文本传输协议)

1.apache的安装部署

yum install httpd -y ##apache软件

yum install httpd-manual ##apache的手册

systemctl start httpd

systemctl enable httpd

firewall-cmd --list-all ##列出火墙信息

firewall-cmd --permanent --add-service=http ##永久允许http

firewall-cmd --reload ##火墙从新加载策略

让防火墙允许http这个服务,效果如图:
linux--apache
linux--apachelinux--apache
linux--apache/var/www/html ##apache的目录,默认发布目录

/var/www/html/index.html ##apache的默认发布文件

编辑文件vim /var/www/html/index.html

hello world

linux--apachelinux--apache
linux--apache

2.apache的基本信息

主配置目录:/etc/httpd/conf

主配置文件:/etc/httpd/conf/httpd.conf

子配置目录:/etc/http/conf.d

子配置文件:/etc/httpd/conf.d/*.conf

默认发布目录:/var/www/html

默认发布文件:index.html

默认监听端口:80

默认安全上下文:httpd_sys_content_t

程序开启默认用户: apache

apache日志: /etc/httpd/logs/*

rpm -ql httpd #查看下载apache时系统存在的目录和文件
rpm -qc httpd #查看apache的配置文件
如:端口的查看及其修改用此命令netstat -anutlpe | grep httpd查看

linux--apache

3.修改Apache的配置
3.1修改默认端口

当selinux 为关闭 或者警告时,可以改端口为6666。
linux--apache
端口修改编辑这个vim /etc/httpd/conf/httpd.conf即可

如图:将80 改为6666
linux--apache
semanage port -l | grep http #发现selinux 默认不允许6666,这里出现的端口,除了80,其他都可以很便捷的更改
linux--apache
linux--apache
最后,在6666端口可以看到index.html文件中内容。
linux--apache

3.2修改默认发布文件
已知:默认发布目录:/var/www/html

这里我们将其修改为自己新建的目录:
mkdir -p /westos/html
vim /westos/html/index.html
semanage fcontext -a -t httpd_sys_content_t ‘/westos(/.*)?’ ##修改安全上下文
restorecon -RvvF /westos
vim /etc/httpd/conf/httpd.conf
systemctl restart httpd
linux--apache

linux--apache

linux--apache
3.3修改默认发布文件
建立 /var/www/html/westos.html
添加westos.html
linux--apachevim /etc/httpd/conf/httpd.conf

linux--apache
systemctl restart httpd
linux--apache

4.apache的虚拟主机:这里是指一台服务器上面,可以存在多个“主网页”。
虚拟主机指的是在单一机器上运行多个网站 (例如 company1.example.com 和 company2.example.com) 。

虚拟主机可以“基于 IP”,即每个 IP 一个站点; 或者“基于名称”, 即每个 IP 多个站点。

这些站点运行在同一物理服务器上的事实不会明显的透漏给最终用户。

Apache 是第一个支持基于 IP 的虚拟主机的服务器。

Apache 版本 1.1 和更新的版本同时支持基于 IP 和基于名称的虚拟主机。
基于名称的虚拟主机有时候称为基于主机或非 IP 的虚拟主机。

mkdir -p /var/www/virtual/westos.org/{music,news}
touch /var/www/virtual/westos.org/{music,news}/index.html
vim /var/www/virtual/westos.org/music/index.htmllinux--apache
2.
cd /etc/httpd/conf.d/
vim vhost.conf
linux--apache
将上述域名写入浏览器所在主机的本地解析
linux--apachesystemctl restart httpd
尝试在主机*问:
linux--apache
linux--apache
linux--apache
注意:做虚拟主机实验时,注意文件与防火墙的端口应该一致

5.apache内部的访问控制
5.1
vim /etc/httpd/conf.d/vhost.conf
linux--apache上述结果为先拒绝172.25.254.2主机的访问,然后接受所有主机的访问,即所有主机都可以访问。

5.2配置对有效的用户都可以看
-cm中的c是覆盖性创建,常用在第一次创建:
htpasswd -cm /etc/httpd/.htpassfile admin ###生成认证文件,添加用户admin
htpasswd -m /etc/httpd/.htpassfile admin1 ###添加用户admin1.注意参数不加c,加c会重新生成认证文件,覆盖原来写入的用户。
linux--apachevim /etc/httpd/conf.d/vhost.conf
写入:
<Directory “/var/www/html”>
AuthUserFile /etc/httpd/.htpasswdfile
Authtype basic #代表最基本的密码认证
AuthName “please input username and passwd” #是在浏览器里认证框里提示的话语
Require valid-user
<Directory

linux--apache
Require user admin 代表只允许admin认证,对其他用户没有授权
Require valid-user 代表使得htpassfile里的用户都可以使用认证登陆
systemctl restart httpd
linux--apache
注意:在浏览器中实验成功一次之后,记得清楚浏览器的history 缓存。

6.apache支持的语言
Apache除了默认支持html语言。
做相应配置还可支持 php perl python语言。
6.1php语言:

yum install php -y
linux--apache
linux--apache6.2cgi语言:
CGI是什么:公共网关接口(Common Gateway Interface,CGI)是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。
CGI 应用程序能与浏览器进行交互,还可通过数据API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。
格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI

yum install httpd-manual #下载httpd的帮助手册
systemctl restart httpd
linux--apache
在浏览器里
172.25.254.110/manual/
点击CGI——
查看CGI的实例命令
linux--apachemkdir /var/www/html/cgi
ls -Zd /var/www/html/cgi
semanage fcontext -a -t httpd_sys_script_exec_t “/var/www/html(/.*cgi)?”
restorecon -FvvR /var/www/html/cgi/
linux--apache
vim index.cgi
linux--apache
chmod +x index.cgi
./index.cgi #测试文件内容是否正确
linux--apache
vim /etc/httpd/conf.d/vhost.conf
linux--apache
systemctl restart httpd
linux--apache
6.3python语言:
wsgi是什么:Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口.
yum search wsgi
yum install mod_wsgi.x86_64 -y
linux--apachevim /etc/httpd/conf.d/vhost.conf
linux--apachevim /var/www/html/scripts.wsgi
chmod +x script.wsgi
linux--apachesystemctl restart httpd
linux--apache