|NO.Z.00051|——————————|^^ 部署 ^^|——|Linux&Apache.V02|

一、查看当期Apache使用什么模式:
### --- 做软连接Apache的启动文件到系统启动目录

[root@server11 ~]# /usr/local/apache2/bin/apachectl start
[root@server11 ~]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
[root@server11 ~]# /usr/local/memcache/bin/memcached -umemcache &
[root@server11 ~]# netstat -antp
[root@server11 ~]# ln -s /usr/local/apache2/bin/* /usr/local/bin/
### --- 查看方式:
~~~		指定方式:
~~~		在编译时,此选项中指定:--with-pmp=xxx              // 添加三种工作模式的任意一种。

[root@server11 ~]# httpd -V | grep -i "server mpm"
Server MPM:     worker                                        // 目前工作模式worker模式
二、相关文件保存位置
### --- 配置文件位置:

~~~		源码安装:   PREFIX/etc/httpd.conf(主配置文件)
~~~		            PREFIX/etc/extra/*.conf(子配置文件)    // 子配置文件需要生效,需要主配置文件去调用主配置文件才可以生效。相对源码少了1000多行把,少的部分拆分在了自配置文件中了。
~~~		rpm包安装: /etc/httpd/conf/httpd.conf             // 主配置文件和自配置文件集合在来了一起。
### --- 网页文件位置:
~~~		源码包安装:   PREFIX/htdocs/              
~~~		rpm包安装:   /var/www/html

### --- 日志文件位置:
~~~		源码包安装:   PREFIX/logs/
~~~		rpm包安装:   /var/log/httpd/
三、配置文件详解
### --- 注意:Apache配置文件严格区分大小写
### --- 针对主机环境的基本配置参数

    ServerRoot      /usr/loca/apache2                       // Apache主目录
    Listen          :80                                     // 监听端口;所有网卡的80,若想指定特定网卡的80直接:网卡名+80即可
    LoadModule      php7                                    // 加载的相关模块
    User                                                    // 
    Group                                                   // 用户和组
    ServerAdmin                                             // 管理员邮箱
    ServerName                                              // 服务器名(没有域名解析时,使用临时解析,默认不开启)
    Errorlog "logs/error_log"                               // 服务器错误日志
    CustomLog "logs/access_log" common                      // 访问记录日志
    DirectoryIndex index.html index.php                     // 默认网页文件名,优先级顺序,如果没有html就会直接跳过html直接跳转到php主页
    Include etc/extra/httpd-vhosts.conf                     // 自配置文件中内容也会加载生效
### --- 主页目录及权限

    DocmentRoot "/usr/local/apache2/htdocs"                 // 网页文件存放目录(默认)声明Apache服务默认绑定的Apache主页文件;htdocs是默认网页目录
    <Directory" /usr/local/apache2/htdocs">                 // 定义指定目录的权限
        Options Indexes FollowSymLinks          
            None                                            // 没有任何额外权限
            All                                             // 所有权限(除去MultiViews以外)
            Indexes                                         // 浏览权限(当此目录下没有默认网页文件时,显示目录内容)
            
            FollowSymLinks                                  // 准许软连接到其他目录
            MultiViews                                      // 准许文件名泛匹配(需要手动开启模块有有效negotiation)
         AllowOverride None                                 // 定义是否允许目录下.htaccess文件中的权限生效
            None                                            // .htaccess中权限不生效
            All                                             // 文件中所有权限都生效
            AuthConfig                                      // 文件中,只有网页认证的权限生效
         Require all granted(denied)                        // 访问控制列表
     </Directory>
    
     <IfModule dir_module>                                  // 此标签用来指定访问到指定目录时自动加载那个页面we年
            DirectoryIndex index.php index.html             // 可以写多个,但是有优先级之分
     </IfModule>

一、Apache实验:apache的目录别名
### --- apache的目录别名
### --- 实验环境:建议使用之前搭建好的lamp环境进行测试

~~~		当Apache接收请求时,在默认情况下会将DocumentRoot目录中的文件送到客户端,
~~~		如果想将某一不在DocumentRoot目录中的文件共享到网站上,
~~~		并希望将它们留在本来位置而不需要进行移动的话,
~~~		处理这种情况可以通过建立别名的方式将URL执行特定的目录。
### --- 编辑主配置文件

[root@server11 ~]# vim /usr/local/apache2/etc/httpd.conf
Include etc//extra/httpd-autoindex.conf                     // 去掉注释,开启调用子配置文件
### --- 编辑子配置文件

[root@server11 ~]# vim /usr/local/apache2/etc/extra/httpd-autoindex.conf 
alias /iscons/ "/usr/local/apache2/icons/"                  // 结构:别名“真实目录”      #真实目录的结尾有/结束,否则报错
<Directory "/usr/local/apache2/icons">                      // 默认自带的模板
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
#
Alias /a/ "/a/b/c/"                                         // /a/:定义一个别名为a "/a/b/c/":访问目录

<Directory "/a/b/c">                                        // 访问目录
    Options Indexes MultiViews
    AllowOverride None                  
    Require all granted
</Directory>
[root@server11 ~]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@server11 ~]# /usr/local/apache2/bin/apachectl restart
[root@server11 ~]# mkdir -p /a/b/c
[root@server11 ~]# vim /a/b/c/a.html
www.a.abc.com
### --- 验证:
~~~		自带的模板http://10.10.10.11/icons

Not Found
The requested URL /icons was not found on this server.
http://10.10.10.11/icons/                                   // 加入/就可以访问到内容的
[root@server11 ~]# vim /usr/local/apache2/logs/error_log    // 查看log日志没有报错
~~~		访问添加的模板:

http://10.10.10.11/a/
Index of /a
[ICO]   Name    Last modified   Size    Description
[PARENTDIR] Parent Directory        -    
[TXT]   a.html  2021-02-11 00:03    14                      // 访问到对应文件
www.a.abc.com 
验证添加的模板
二、Apache的用户认证
### --- 有时候,我们需要给一些特殊的访问设置一个用户认证机制,
### --- 增加安全,比如我们的个人网站,一般都是有一个管理后台的,
### --- 虽然管理后台本身就有密码,但我们为了更加安全,可以再设置一层用户身份认证。

[root@server11 ~]# mkdir /usr/local/apache2/htdocs/admin
[root@server11 ~]# vim /usr/local/apache2/htdocs/admin/index.html
www.admin.com
~~~		验证:http://10.10.10.11/admin/
www.admin.com                                                    // 可以正常访问:下列实验需要先验证身份才可以看到这个页面
### --- 编辑配置文件:目录保护实验

[root@server11 ~]# vim /usr/local/apache2/etc/httpd.conf
~~~		在需要进行登录认证的目录标签中加入如下配置:    			// 在配置文件末尾添加
<Directory "/usr/local/apache2/htdocs/admin">
~~~		声明被保护目录                                          // apache配置文件中注释需要换行注释,直接注销不生效。
        Options Indexes FollowSymLinks
        AllowOverride All
        #开启权限认证文件.htaccess
        Require all granted
</Directory>
### --- 在指定目录下创建权限文件
~~~		切换到/usr/local/apache2/htdocs/admin    创建.htaccess 文件,并添加下面的内容

[root@server11 ~]# vim /usr/local/apache2/htdocs/admin/.htaccess // 创建隐藏文件
AuthName "Welcome to atyanqi"
#提示信息
AuthType basic                                                          
#加密类型
AuthUserFile /usr/local/apache2/htdocs/admin/apache.passwd              
#密码文件,文件名自定义(使用绝对路径)
require valid-user                                                      
#允许密码文件中所有用户访问
### --- 建立密码文件,加入允许访问的用户,(此用户和系统用户无关)

[root@server11 ~]# /usr/local/apache2/bin/htpasswd -c /usr/local/apache2/htdocs/admin/apache.passwd user1       #-c  建立密码文件,只有添加一个用户时,才能-c
New password: 123456
Re-type new password: 123456
Adding password for user user1      
[root@server11 ~]# /usr/local/apache2/bin/htpasswd -m /usr/local/apache2/htdocs/admin/apache.passwd user2       # -m 再添加更多用户时,使用-m参数,添加第二个用户时需要-m,只有第一次创建文件的时候需要使用-c
New password: 123456
Re-type new password:123456 
Adding password for user user2      
~~~		注意:htpasswd该命令是httpd的命令,需要绝对路径
### --- 重启Apache服务
~~~		先检查配置是否正确,然后通过浏览器输入要访问的资源时就会提示输入密码了。

[root@server11 ~]# apachectl -t
Syntax OK
[root@server11 ~]# apachectl restart
登录需要验证用户登入

 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(23)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示