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

随笔3个月前发布 马秋楠
41 0 0
* **Step 7** 创建Apache主配置文件



  • 1
  • 2
  • 3
  • 4

$ 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** 创建默认虚拟主机

 

  • 1
  • 2
  • 3
  • 4

$ 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** 添加系统服务

 

  • 1
  • 2
  • 3

$ 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** 启动服务并添加到开机自启动

 

  • 1
  • 2
  • 3

$ systemctl start httpd
$ systemctl enable httpd

* **Step 11** 添加日志切割脚本

 

  • 1
  • 2
  • 3

$ 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



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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

<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

AddDefaultCharset UTF-8 //默认字符集

#EnableMMAP off //线程模式
EnableSendfile on //开启进程模式(默认)

IncludeOptional conf.d/*.conf //包含辅助配置文件目录下的所有以.conf结尾的文件(/etc/httpd/conf.d/*.conf)


**黑客&网络安全如何学习**


**今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。**


##### **1.学习路线图**


![](https://img-blog.csdnimg.cn/img_convert/f6d7a70326a6c0071cc4dc6b3eeb8f95.png)


攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。


##### **2.视频教程**


网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。


内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。


![](https://img-blog.csdnimg.cn/img_convert/0d8fcc94a8238255b741c19633efd10c.jpeg)


(都打包成一块的了,不能一一展开,总共300多集)


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


********************************[CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]( )********************************


##### **3.技术文档和电子书**


技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

  • 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
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...