linux系统的Apache服务

1.什么是apache

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

网站架构lamp ===linux apahce+mysql+php        
curl -I www.baidu.com

2.搭建apache:
配置静态网络,搭建yum源


下载http服务           yum install httpd -y


#http服务的man手册无法用man 5 httpd.cof打开,需在yum源上下载,在网页中输入本机IP/manual打开
下载apache的man手册     yum install httpd-manual -y


开启http服务        systemctl start httpd
将http服务设置为开机自启    systemctl enable httpd


设置防火墙        systemctl start firewalld
             firewall-cmd --list-all
            firewall-cmd --permanent --add-service=http
            firewall-cmd --reload


添加apache默认发布文件中内容cd /var/www/html
            vim index.html

              <h1>内容</h1>


测试  在网页中输入    http://本机IP
            http://本机IP/manual

3.apache的基础信息:
主配置目录    /etc/httpd/conf
主配置文件    /etc/httpd/conf/httpd.conf
默认发布目录    /etc/www/html
默认发布文件    index.html
默认端口        80
默认安全上下文    http_sys_content_t

4.修改apache的默认信息:
修改默认端口:
进入主配置文件        vim /etc/httpd/conf/httpd.conf
                41  Listen 8080

重启http服务        systemctl restart httpd

查看对应端口号是否开启        netstat -antlupe | grep 8080


防火墙中开启对应端口    firewall-cmd --list-all
            firewall-cmd --permanent --add-port=8080/tcp
            firewall-cmd --reload
            firewall-cmd --list-all

修改默认发布文件:
#此发布文件可以指定多个,访问时将有顺序的访问
进入主配置文件        touch /var/www/html/文件名.html   

                   vim /var/www/html/文件名.html 

                   vim /etc/httpd/conf/httpd.conf
                    164 DircetoryIndex 文件名.html
          


重启http服务        systemctl restart httpd

修改默认发布目录:
进入主配置文件        mkdir /目录名/html -p

                        vim /目录名/html/index.html

                        vim /etc/httpd/conf/httpd.conf
                         119 DocumentRoot "/目录名/html"
                               <Directory "/目录名">
                               Require all granted
                               </Directory>


重启http服务        systemctl restart httpd


#特定服务的安全上下文规定只能访问指定的配置文件
解决方法:方案一:selinux设置为disabled
                 方案二:修改安全上下文


##########网络不通时怎么办############(高级网络配置部分)
查看网络桥接    brictl show
查看网络配置文件    ls /etc/sysconfig/network-scripts/
修改配置文件    vim ifcfg-enp0s25
        DEVICE=enp0s25
        BOOTPROTO=none
        ONBOOT=yes
        bridge=br0
##################################################

五.访问控制:
特殊IP可以访问:
mkdir /var/www/html/文件名
vim /var/www/html/文件名/index.html
vim /etc/httpd/conf/httpd.conf

1.所有的除IP1以外都可以访问:
120 <Directory "/var/www/html/文件名">
    Order Allow,Deny          
  ##读取顺序,后读取的语句会覆盖前一句
    Allow from All
    Deny from IP1
    </Directory>    

重启http服务              systemctl restart httpd

172.25.152.10访问结果

172.25.152.250访问结果

2.除IP2以外都不能访问:
120 <Directory "/var/www/html/文件名">
    Order Deny,Allow
    Allow from IP2
    Deny from All
    </Directory>

重启http服务              systemctl restart httpd

172.25.152.10访问结果

172.25.152.250访问结果

3.输入密码才可以访问:
cd /etc/httpd/conf
实现用户验证    htpasswd -cm 文件名 用户名
 -cm 覆盖原文件
 -m 不覆盖原文件

cat 文件名
vim /etc/httpd/conf/httpd.conf


只有用户名1才可以输入密码访问
120 <Directory "/var/www/html/文件名">
        AuthUserFile    /etc/httpd/conf/文件名         
##读取保存用户名和密码的文件
        AuthType        basic               ##访问类型为基础密码访问
        AuthName        "Please input your name and password!"        ##用户访问时所能看到的提示语句
        Require user    用户名1                       ##允许输入密码进行访问的用户名
        </Directory>
#此访问只有指定用户输入正确密码后才可以访问

重启http服务              systemctl restart httpd

用户不为用户1时

用户为用户1且密码正确时

所有有效用户都可以输入密码访问
120 <Directory "/var/www/html/文件名">
        AuthUserFile    /etc/httpd/conf/文件名
        AuthType        basic
        AuthName        "Please input your name and password!"
        Require         valid-user
        </Directory>

重启http服务              systemctl restart httpd

此时输入用户2的姓名和密码也可以登陆网页了

六.apache的虚拟主机:

(参考百度,同一个IP地址访问不同的域名可以访问不同的界面)
配置本地域名解析文件    vim /etc/hosts
##在客户端(使用浏览器登陆的主机)配置简单的本地域名解析文件
            5 IP www.westos.com news.westos.com music.westos.com login.westos


            mkdir /var/www/virtual
##apache的子配置目录/etc/httpd/conf.d/
            cd /etc/httpd/conf.d/
修改默认虚拟主机的配置文件  vim a_default.conf        ##文件名以字母顺序排序,以a开头保证第一个访问此文件
         

            <VirtualHost _default_:80>                ##默认访问80端口
             DocumentRoot /var/www/html                 ##此时访问的发布目录
            CustomLog logs/default.log combined                   ##此时此文件为混合型日志
            </VirtualHost>


修改指定名称的虚拟主机的配置文件1mkdir -p /var/www/virtual/news/html
            vim /var/www/virtual/news/html/index.html
            vim news.conf

            <VirtualHost *:80>
            ServerName news.westos.com                  
  ##访问的域名
            DocumentRoot /var/www/virtual/news/html
            CustomLog logs/news.log combined
            </VirtualHost>
            <Directory "/var/www/virtual/news/html">
                  ##允许所有人访问
                Require all granted
            </Directory>


修改指定名称的虚拟主机的配置文件2mkdir -p /var/www/virtual/music/html
            vim /var/www/virtual/music/html/index.html
            vim music.conf


            <VirtualHost *:80>
            ServerName music.westos.com
            DocumentRoot /var/www/virtual/music/html
            CustomLog logs/music.log combined
            </VirtualHost>
            <Directory "/var/www/virtual/music/html">
             Require all granted
            </Directory>


重启http服务        systemctl restart httpd

七.修改apache为支持多语言:
#apache默认支持的语言:html
1.支持php:
下载php服务    yum install php -y
编辑php默认发布文件    vim /var/www/html/index.php


            1  <?php
            2      phpinfo()
            3  ?>


重启http服务  systemctl restart httpd 

2.支持cgi(多用于用户注册):
mkdir /var/www/html/cgi
编辑cgi默认发布文件    vim /var/www/html/cgi/index.cgi


            1  #!/usr/bin/perl
            2  print "Content-type: text/html\n\n";
            3  print `date`;


修改发布文件权限        chmod 775 /var/www/html/cgi/index.cgi
执行index.cgi的内容        ./index.cgi

此时无法识别cgi,网页上出现的是裸露的代码而不是要显示的内容:

修改默认虚拟主机的配置文件     vim a_default.conf


            5  <Directory "/var/www/html/cgi">
            6        Options +ExecCGI
            7        AddHandler cgi-script .cgi
            8  </Directory>


重启http服务    systemctl restart httpd        

八.制作apache访问证书:
1.制作apache访问证书:
下载mod-ssl协议    yum install mod_ssl -y
##mod-ssl是一种以openssl的工具箱为基础,专门为apache webserver提供密码保护,ssl(安全套阶层)和tls(传输套件层安全)的协议


下载软件包分发  yum install crypto-utils -y
##crypto-utils提供纯Java的加密API,用来简化公私钥和证书存储、对称和非对称加密方法的封装

生成自签名证书及其关联密钥  genkey www.westos.com


Next >(选择密钥大小)1024 ,next>(给CA发送证书)No >(apache添加密钥)Next >CN,shannxi,xi'an,westos,linux >(生成密钥时须在虚拟机上随意敲击键盘或任意移动鼠标)
##密钥较大安全性较好但是生成时间较长

vim /etc/httpd/conf.d/ssl.conf

101  SSLCertificateFile 证书地址
109  SSLCertificateKeyFile  钥匙地址


重启网络  systemctl restart httpd

2.设置网页自动调转:
mkdir -p /var/www/virtual/login/html
vim /var/www/virtual/login/html/index.html


cp /etc/httpd/conf.d/news.conf /etc/httpd/conf.d/login.conf
vim /etc/httpd/conf.d/login.conf


1 <VirtualHost *:443>
2         ServerName login.westos.com
3         DocumentRoot /var/www/virtual/login/html
4         CustomLog logs/login.log combined
5         SSLEngine on
6         SSLCertificateFile 证书地址
7         SSLCertificateKeyFile 密钥地址
8 </VirtualHost>
9 <Directory "/var/www/virtual/login/html">
10        Require all granted
11</Directory>
12<VirtualHost *:80>                
 ##设置访问80端口时自动调转到443端口所访问页面(网页重启)
13        ServerName login.westos.com
14        RewriteEngine On
15        RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
16</VirtualHost>     
      
## ^(/.*)        $客户主机在浏览器中输入的所有字符
## https://    强制客户加密访问
## $1        表示 ^(/.*) 的值
## [redirect=301]    转换时的临时重写,若值为302表示永久转换

九.搭建简易论坛:
下载数据库    yum install mariadb -y
作数据库安全初始化        mysql_secure_installation
下载论坛压缩包        cd /var/www/html
        lftp 172.25.254.250
        cd /pub/
        get Discuz_x3.2_SC_UTF8.zip

解压压缩包unzip Discuz_x3.2_SC_UTF8.zip
检测  网页查询 172.25.254.122/upload
依据网页提示修改对应文件权限
下载php和mysql对应转换服务        yum install php-mysql -y
重启http服务    systemct restart httpd
根据网页提示进行安装

猜你喜欢

转载自blog.csdn.net/forever_yh/article/details/81605682
今日推荐