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

本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。

最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。

最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

学习路线图

其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。

相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。

网络安全工具箱

当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。

项目实战

最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~

面试题

归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

* **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 mpm_prefork_module>
LoadModule cgi_module modules/mod_cgi.so

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

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

###############
# 全局安全规则#
###############

# 禁止通过web访问.htaccess
<Files “.ht*”>
Require all denied

# 隐藏Apache版本号
ServerTokens ProductOnly
ServerSignature Off

# 开启同源策略限制,只允许同域名访问
<IfModule headers_module>
Header always append X-Frame-Options SAMEORIGIN

# 禁止.ssh访问
<LocationMatch “\.ssh”>
Order allow,deny
Deny from all

# 禁止.git访问
<LocationMatch “\.git”>
Order allow,deny
Deny from all

# 限制Apache运行时用户
<IfModule unixd_module>
User www
Group www

###########
# 虚拟主机#
###########
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

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

—容器,对整个目录中的东西进行设置,权限等等
AllowOverride none
Require all denied

DocumentRoot “/var/www/html” //web服务文档根路径

<Directory “/var/www”>
AllowOverride None
# Allow open access:
Require all granted

<Directory “/var/www/html”>
Options Indexes FollowSymLinks //Indexes:索引目录,(默认没有主页时),允许索引目录 FollowSymLinks:支持符号链接 软连接
AllowOverride None //和访问权限有关 可以进行认证 None --不使用认证 all–应用所有的认证指令 AuthConfig --允许使用与认证授权相关的指令
Require all granted //访问控制 所有人方行

<IfModule dir_module>
DirectoryIndex index.html //网站索引页的名称

<Files “.ht*”> //以所有.ht开头进行模式匹配不能进行访问
Require all denied

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 //日志格式规定

CustomLog “logs/access_log” combined //访问日志

<IfModule alias_module>
# Alias /webpath /full/filesystem/path //给路径设置别名 意味着访问http://Server_ip/webpath时,其页面文件来自于/full/filesystem/path中
ScriptAlias /cgi-bin/ “/var/www/cgi-bin/” //脚本路径的别名

<Directory “/var/www/cgi-bin”>
AllowOverride None
Options None
Require all granted

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。

需要完整版PDF学习资源

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值