Apache安装教程(非常详细)零基础入门到精通,收藏这一篇就够了

Apache安装

  • Step 1 创建运行时用户和组

    $ groupadd www  
    $ useradd -g www www -s /sbin/nologin -M
    
  • Step 2 安装工具集和依赖

    $ yum install -y wget  
    $ wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  
    $ yum install -y gcc wget make libtool expat-devel pcre-devel openssl-devel libxml2-devel
    
  • Step 3 安装apr

    $ cd ~  
    $ wget http://10.0.16.133/src/x86\_64/apr/apr-1.6.5.tar.gz  
    $ tar -zxvf apr-1.6.5.tar.gz  
    $ cd apr-1.6.5  
    $ sed -i  s/"RM='\\$RM'"/"RM='\\$RM -f'"/ configure  
    $ ./configure --prefix=/usr/local/apr  
    $ make  
    $ make install
    
  • Step 4 安装apr-util

    $ cd ~  
    $ wget http://10.0.16.133/src/x86\_64/apr/apr-util-1.6.1.tar.gz  
    $ tar -zxvf apr-util-1.6.1.tar.gz  
    $ cd apr-util-1.6.1  
    $ ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr   
    $ make  
    $ make install
    
  • Step 5 安装httpd

    $ cd ~  
    $ wget http://10.0.16.133/src/x86\_64/httpd/httpd-2.4.43.tar.gz  
    $ tar -zxvf httpd-2.4.43.tar.gz  
    $ cd httpd-2.4.43  
    $ ./configure --prefix=/usr/local/apache \\  
      --with-apr=/usr/local/apr \\  
      --with-apr-util=/usr/local/apr-util \\  
      --enable-so \\  
      --enable-ssl \\  
      --enable-cgi \\  
      --enable-rewrite \\  
      --with-pcre \\  
      --with-zlib \\  
      --with-mpm=event \\  
      --enable-modules=most \\  
      --enable-mpms-shared=all  
    $ make  
    $ make install
    
  • Step 6 创建日志存放目录

    $ mkdir -pv /data/logs/apache  
    $ chown -R www:www /data/logs/apache
    
  • Step 7 创建Apache主配置文件

$ mv /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/http.conf.default  
$ mkdir -p /usr/local/apache/conf/vhost  
$ cat >/usr/local/apache/conf/httpd.conf <<EOF  
Listen 0.0.0.0:80  
ServerRoot /usr/local/apache  
  
\# 加载模块  
LoadModule authn\_file\_module modules/mod\_authn\_file.so  
LoadModule mpm\_prefork\_module  modules/mod\_mpm\_prefork.so  
LoadModule authn\_core\_module modules/mod\_authn\_core.so  
LoadModule authz\_host\_module modules/mod\_authz\_host.so  
LoadModule authz\_groupfile\_module modules/mod\_authz\_groupfile.so  
LoadModule authz\_user\_module modules/mod\_authz\_user.so  
LoadModule authz\_core\_module modules/mod\_authz\_core.so  
LoadModule access\_compat\_module modules/mod\_access\_compat.so  
LoadModule auth\_basic\_module modules/mod\_auth\_basic.so  
LoadModule reqtimeout\_module modules/mod\_reqtimeout.so  
LoadModule filter\_module modules/mod\_filter.so  
LoadModule mime\_module modules/mod\_mime.so  
LoadModule log\_config\_module modules/mod\_log\_config.so  
LoadModule logio\_module modules/mod\_logio.so  
LoadModule env\_module modules/mod\_env.so  
LoadModule headers\_module modules/mod\_headers.so  
LoadModule setenvif\_module modules/mod\_setenvif.so  
LoadModule version\_module modules/mod\_version.so  
LoadModule ssl\_module modules/mod\_ssl.so  
LoadModule unixd\_module modules/mod\_unixd.so  
LoadModule status\_module modules/mod\_status.so  
LoadModule autoindex\_module modules/mod\_autoindex.so  
<IfModule !mpm\_prefork\_module>  
    LoadModule cgid\_module modules/mod\_cgid.so  
</IfModule>  
<IfModule mpm\_prefork\_module>  
    LoadModule cgi\_module modules/mod\_cgi.so  
</IfModule>  
LoadModule vhost\_alias\_module modules/mod\_vhost\_alias.so  
LoadModule dir\_module modules/mod\_dir.so  
LoadModule alias\_module modules/mod\_alias.so  
LoadModule rewrite\_module modules/mod\_rewrite.so  
  
ServerAdmin admin@feisu.com  
ServerName localhost  
  
###############  
\# 日志格式定义#  
###############  
<IfModule log\_config\_module>  
    LogFormat "%h %l %u %t \\"%r\\" %>s %b \\"%{Referer}i\\" \\"%{User-Agent}i\\"" combined  
    LogFormat "%h %l %u %t \\"%r\\" %>s %b" common  
    <IfModule logio\_module>  
        LogFormat "{\\"server\_ip\\": \\"%A\\",\\"client\_ip\\": \\"%a\\",\\"@timestamp\\": \\"%{%Y-%m-%dT%H:%M:%S%z}t\\",\\"server\_name\\": \\"%v\\",\\"mehtod\\": \\"%m\\",\\"request\\": \\"%U%q\\", \\"url\\": \\"%U\\",\\"query\\": \\"%q\\",\\"status\\": \\"%>s\\",\\"user\_agent\\": \\"%{User-agent}i\\",\\"referer\\": \\"%{Referer}i\\",\\"response\_time\\": \\"%D\\",\\"x\_forward\_for\\": \\"%{X-Forwarded-For}i\\",\\"send\_bytes\\": \\"%I\\",\\"recv\_bytes\\": \\"%O\\"}" json  
    </IfModule>  
</IfModule>  
  
ErrorLog  /data/logs/apache/error.log  
CustomLog /data/logs/apache/access.log json  
LogLevel warn  
  
###############  
\# Mime类型加载#  
###############  
  
<IfModule mime\_module>  
    TypesConfig conf/mime.types  
    AddType application/x-gzip .tgz  
    AddEncoding x-compress .Z  
    AddEncoding x-gzip .gz .tgz  
    AddType application/x-compress .Z  
    AddType application/x-gzip .gz .tgz  
    AddType text/html .shtml  
    AddOutputFilter INCLUDES .shtml  
    AddType application/x-httpd-php .php  
</IfModule>  
  
###############  
\# 全局安全规则#  
###############  
  
\# 禁止通过web访问.htaccess  
<Files ".ht\*">  
    Require all denied  
</Files>  
  
\# 隐藏Apache版本号  
ServerTokens ProductOnly  
ServerSignature Off  
  
\# 开启同源策略限制,只允许同域名访问  
<IfModule headers\_module>  
    Header always append X-Frame-Options SAMEORIGIN  
</IfModule>  
  
\# 禁止.ssh访问  
<LocationMatch "\\.ssh">  
    Order allow,deny  
    Deny from all  
</LocationMatch>  
  
\# 禁止.git访问  
<LocationMatch "\\.git">  
    Order allow,deny  
    Deny from all  
</LocationMatch>  
  
\# 限制Apache运行时用户  
<IfModule unixd\_module>  
    User  www  
    Group www  
</IfModule>  
  
###########  
\# 虚拟主机#  
###########  
Include conf/vhost/\*.conf  
EOF
  • Step 8 创建默认虚拟主机

    $ mkdir -pv /data/wwwroot/default  
    $ echo "hello world" > /data/wwwroot/default/index.html  
    $ cat >/usr/local/apache/conf/vhost/0.conf <<EOF  
    <VirtualHost \*:80>  
        DocumentRoot /data/wwwroot/default  
        ServerName localhost  
      DirectoryIndex index.html  
    </VirtualHost>  
    EOF
    
  • Step 9 添加系统服务

    $ cat > /usr/lib/systemd/system/httpd.service << \_EOF  
    \[Unit\]  
    Description=The Apache HTTP Server  
    After=network.target remote-fs.target nss-lookup.target  
      
    \[Service\]  
    Type=forking  
    ExecStartPre=/usr/local/apache/bin/httpd  -t  
    ExecStart=/usr/local/apache/bin/httpd -k start  
    ExecReload=/usr/local/apache/bin/httpd -k graceful  
    ExecStop=/usr/local/apach/bin/httpd -k stop  
    KillSignal=SIGKILL  
    PrivateTmp=true  
      
    \[Install\]  
    WantedBy=multi-user.target  
    \_EOF  
      
    $ systemctl daemon-reload
    
  • Step 10 启动服务并添加到开机自启动

    $ systemctl start httpd  
    $ systemctl enable httpd
    
  • Step 11 添加日志切割脚本

    $ cat > /etc/logrotate.d/httpd << \_EOF  
    /data/logs/apache/\*.log {  
      daily  
      rotate 15  
      compress  
      nodelaycompress  
      ifempty  
      dateext   
      missingok  
      postrotate   
          \[ -e /usr/local/apache/bin/httpd \] && /usr/local/apache/bin/httpd -k graceful &>/dev/null  
      endscript  
    }  
    \_EOF
    

验证

$curl http://localhosthello world

配置文件详解

配置文件详解文件位置:/etc/httpd/conf/httpd.conf

ServerRoot "/etc/httpd"      //服务器的根路径,改文件中所有涉及到的路径的根都是相对它而言的。  
Listen 80        //监听的端口  
Include conf.modules.d/\*.conf   //包含辅助配置文件目录下的所有以.conf结尾的;;;文件(/etc/httpd/conf.modules.d/\*.conf)  
  
User apache       //运行web服务的用户  
Group apache      
  
ServerAdmin root@localhost    //管理员邮件地址  
#ServerName www.example.com:80  //服务器的名字  
ServerName www.uplooking.com:80  
  
<Directory />   ---容器,对整个目录中的东西进行设置,权限等等  
    AllowOverride none  
    Require all denied  
</Directory>  
  
DocumentRoot "/var/www/html"    //web服务文档根路径  
  
<Directory "/var/www">  
    AllowOverride None  
    # Allow open access:  
    Require all granted  
</Directory>  
  
<Directory "/var/www/html">  
    Options Indexes FollowSymLinks     //Indexes:索引目录,(默认没有主页时),允许索引目录   FollowSymLinks:支持符号链接  软连接  
    AllowOverride None     //和访问权限有关  可以进行认证        None --不使用认证  all--应用所有的认证指令  AuthConfig  --允许使用与认证授权相关的指令  
    Require all granted    //访问控制  所有人方行  
</Directory>  
      
<IfModule dir\_module>  
    DirectoryIndex index.html    //网站索引页的名称  
</IfModule>  
  
<Files ".ht\*">   //以所有.ht开头进行模式匹配不能进行访问  
    Require all denied  
</Files>  
  
ErrorLog "logs/error\_log"    //错误日志的设定  
  
LogLevel warn  //日志级别  
  
<IfModule log\_config\_module>  
    LogFormat "%h %l %u %t \\"%r\\" %>s %b \\"%{Referer}i\\" \\"%{User-Agent}i\\"" combined   //日志格式规定  
    LogFormat "%h %l %u %t \\"%r\\" %>s %b" common     //日志格式规定  
    <IfModule logio\_module>  
    LogFormat "%h %l %u %t \\"%r\\" %>s %b \\"%{Referer}i\\" \\"%{User-Agent}i\\" %I %O" combinedio   //日志格式规定  
    </IfModule>  
    CustomLog "logs/access\_log" combined  //访问日志  
</IfModule>  
  
<IfModule alias\_module>     
    # Alias /webpath /full/filesystem/path   //给路径设置别名  意味着访问http://Server\_ip/webpath时,其页面文件来自于/full/filesystem/path中  
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"   //脚本路径的别名  
</IfModule>  
  
<Directory "/var/www/cgi-bin">     
    AllowOverride None  
    Options None  
    Require all granted  
</Directory>  
  
<IfModule mime\_module>  
    TypesConfig /etc/mime.types    //支持哪些非二进制文件  
    AddType application/x-compress .Z  
    AddType application/x-gzip .gz .tgz  
    AddType text/html .shtml  
    AddOutputFilter INCLUDES .shtml  
</IfModule>  
  
AddDefaultCharset UTF-8   //默认字符集  
  
  
#EnableMMAP off    //线程模式  
EnableSendfile on   //开启进程模式(默认)  
  
IncludeOptional conf.d/\*.conf    //包含辅助配置文件目录下的所有以.conf结尾的文件(/etc/httpd/conf.d/\*.conf)

黑客/网络安全学习包

资料目录

  1. 成长路线图&学习规划

  2. 配套视频教程

  3. SRC&黑客文籍

  4. 护网行动资料

  5. 黑客必读书单

  6. 面试题合集

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

3.SRC&黑客文籍

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!

4.护网行动资料

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

5.黑客必读书单

**

**

6.面试题合集

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值