源代码配置安装Apache
????博客主页: 微笑的段嘉许博客主页
????欢迎关注????点赞????收藏⭐留言????
????本文由微笑的段嘉许原创!
????51CTO首发时间:????2022年12月日3????
✉️坚持和努力一定能换来诗与远方!
????作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!
⭐本文介绍⭐
Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
????理论讲解:
详细介绍
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。
它可以运行在几乎所有广泛使用的计算机平台计算机平台上。
Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是*软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加[服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。
Apache的诞生极富有戏剧性。当NCSAWWW服务器项目停顿后,那些使用NCSAWWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。
注:图片来源百度百科
Apacheweb服务器服务器软件拥有以下特性:
- 支持最新的HTTP/1.1通信协议
- 拥有简单而强有力的基于文件的配置过程
- 支持通用网关接口
- 支持基于IP和基于域名的虚拟主机
- 支持多种方式的HTTP认证
- 集成Perl处理模块
- 集成代理服务器模块
- 支持实时监视服务器状态和定制服务器日志
- 支持服务器端包含指令(SSI)
- 支持安全Socket]层(SSL)
- 提供用户会话过程的跟踪
- 支持FastCGI
- 通过第三方模块可以支持JavaServlets
????如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。
????实验配置与实现:
一、挂载光盘
1)挂载云计算光盘
[root@centos03 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos03 ~]# ls /mnt
httpd-2.2.17.tar.gz //挂载后查看是否有这个程序包
二、配置源代码Apache
1、安装Apache
1)解压Apache
[root@centos03 ~]# tar zxf /mnt/httpd-2.2.17.tar.gz -C /usr/src/
[root@centos03 ~]# cd /usr/src/httpd-2.2.17/
2)配置Apache
[root@centos03 httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
3)编译安装Apache
[root@centos03 httpd-2.2.17]# make && make install
4)检查是否安装成功
[root@centos03 httpd-2.2.17]# ls -ld /usr/local/httpd/
drwxr-xr-x 15 root root 175 12月 4 02:52 /usr/local/httpd/
2、配置Apache
1)优化Apache
[root@centos03 httpd-2.2.17]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
2)生成服务配置文件
[root@centos03 httpd-2.2.17]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
3)添加执行权限
[root@centos03 httpd-2.2.17]# chmod +x /etc/init.d/httpd
[root@centos03 httpd-2.2.17]# ls -ld /etc/init.d/httpd
-rwxr-xr-x 1 root root 3422 12月 4 03:01 /etc/init.d/httpd
4)修改服务控制文件控制服务启动
[root@centos03 httpd-2.2.17]# vim /etc/init.d/httpd
---
#!/bin/sh
#chkconfig:35 80 21
#description:Apache Sever
5)添加系统服务
[root@centos03 httpd-2.2.17]# chkconfig --add httpd
[root@centos03 httpd-2.2.17]# chkconfig --level 35 httpd on
6)启动Apache
[root@centos03]# systemctl start httpd
三、配置Apache虚拟主机
1、挂载系统光盘
1)卸载云计算光盘挂载系统光盘
[root@centos03]# umount /mnt/ //卸载云计算光盘
[root@centos03]# ls /mnt/ //查看是否卸载成功
[root@centos03 ~]# mount /dev/cdrom /mnt/ //挂载系统光盘
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos03 ~]# ls /mnt/ //查看是否挂成功
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
2、搭建DNS服务器
1)安装DNS程序包
[root@centos03 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:bind-32:9.9.4-50.el7 ################################# [100%]
[root@centos03 ~]# rpm -ivh /mnt/Packages/bind-utils-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-utils-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
软件包 bind-utils-32:9.9.4-50.el7.x86_64 已经安装
[root@centos03 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:bind-chroot-32:9.9.4-50.el7 ################################# [100%]
2)设置开机自动启动
[root@centos03 ~]# systemctl start named
[root@centos03 ~]# systemctl enable named
3、配置DNS主配置文件和区域配置文件
1)备份主配置文件防止修改错误源文件丢失
[root@centos03 ~]# cp /etc/named.conf /etc/named.conf.bak //备份主配置文件
[root@centos03 ~]# ls /etc/named.conf.bak //查看是否备份成功
/etc/named.conf.bak
2)清空源配置文件的内容手动配置
[root@centos03 ~]# echo "" > /etc/named.conf
[root@centos03 ~]# cat /etc/named.conf
3)编辑主配置文件
[root@centos03 ~]# vim /etc/named.conf
---
options{
listen-on port 53 {192.168.100.30;};
directory "/var/named/";
};
zone "bdqn.com" IN {
type master;
file "/var/named/bdqn.com.zone";
};
zone "accp.com" IN {
type master;
file "/var/named/accp.com.zone";
};
检查配置文件语法结构是否错误
[root@centos03 ~]# named-checkconf /etc/named.conf
4)编辑区域配置文件
[root@centos03 ~]# vim /var/named/bdqn.com.zone
---
$TTL 86400
@ SOA bdqn.com. root.bdqn.com. (
2022120310
1H
15M
1W
1D
)
@ NS centos03.bdqn.com.
centos03 A 192.168.100.30
www A 192.168.100.30
检查配置文件是否错误
[root@centos03 ~]# named-checkzone bdqn.com /var/named/bdqn.com.zone
zone bdqn.com/IN: loaded serial 2022120301
OK
编辑accp区域配置文件
[root@centos03 ~]# cp /var/named/bdqn.com.zone /var/named/accp.com.zone //直接复制bdqn的区域配置文件
[root@centos03 ~]# vim /var/named/accp.com.zone
:%s/bdqn.com/accp.com/g //进入accp区域配置文件里面在末行模式输入命令把bdqn.com替换位accp.com
替换前:
替换后:
查看accp区域配置文件是否错误
root@centos03 ~]# named-checkzone accp.com /var/named/accp.com.zone
zone accp.com/IN: loaded serial 2022120301
OK
5)配置DNS
[root@centos03 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32 //进入网卡配置文件
---
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.30
NETMASK=255.255.255.0
DNS1=192.168.100.30 //DNS指向本机的IP地址
重新启动网卡
[root@centos03 ~]# systemctl restart network //重新启动网卡
[root@centos03 ~]# cat /etc/resolv.conf //查看DNS是否配置成功
# Generated by NetworkManager
nameserver 192.168.100.30
启动DNS服务
[root@centos03 ~]# systemctl start named //启动DNS服务
[root@centos03 ~]# netstat -anptu | grep named //查看DNS服务是否成功监听
tcp 0 0 192.168.100.30:53 0.0.0.0:* LISTEN 94045/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 94045/named
tcp6 0 0 ::1:953 :::* LISTEN 94045/named
udp 0 0 192.168.100.30:53 0.0.0.0:* 94045/named
查看是否能够成功解析
[root@centos03 ~]# nslookup www.bdqn.com
Server: 192.168.100.30
Address: 192.168.100.30#53
Name: www.bdqn.com
Address: 192.168.100.30
[root@centos03 ~]# nslookup www.accp.com
Server: 192.168.100.30
Address: 192.168.100.30#53
Name: www.accp.com
Address: 192.168.100.30
4、配置Apache虚拟主机
1)创建虚拟主机网站根目录
[root@centos03 ~]# mkdir -p /www/bdqncom
[root@centos03 ~]# mkdir -p /www/accpcom
2)打包好的源代码上传到网站跟目录(可以使用WinSCP软件上传)
accp:
bdqn:
查看是否上传成功
[root@centos03 ~]# ls -R /www/
3)备份Apache主配置文件避免修改错误源文件丢失
root@centos03 ~]# cp /usr/local/httpd/conf/httpd.conf /usr/local/httpd/conf/httpd.conf.bak //备份主配置文件
[root@centos03 ~]# ls /usr/local/httpd/conf/ //查看是否备份成功
extra httpd.conf httpd.conf.bak magic mime.types original
4)修改Apache主配置文件
[root@centos03 ~]# vim /usr/local/httpd/conf/httpd.conf
---
1 ServerRoot "/usr/local/httpd"
2 Listen 80
3 <IfModule !mpm_netware_module>
4 <IfModule !mpm_winnt_module>
5 User daemon
6 Group daemon
7 </IfModule>
8 </IfModule>
9 ServerAdmin you@example.com
10 DocumentRoot "/usr/local/httpd/htdocs"
11 <Directory />
12 Options FollowSymLinks
13 AllowOverride None
14 Order deny,allow
15 Deny from all
16 </Directory>
17 <Directory "/usr/local/httpd/htdocs">
18 Options Indexes FollowSymLinks
19 AllowOverride None
20 Order allow,deny
21 Allow from all
22 </Directory>
23 <Directory "/www/">
24 Options Indexes FollowSymLinks
25 AllowOverride None
26 Order allow,deny
27 Allow from all
28 </Directory>
29 <IfModule dir_module>
30 DirectoryIndex index.html
31 </IfModule>
32 <FilesMatch "^\.ht">
33 Order allow,deny
34 Deny from all
35 Satisfy All
36 </FilesMatch>
37 ErrorLog "logs/error_log"
38 LogLevel warn
39 <IfModule log_config_module>
40 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
41 LogFormat "%h %l %u %t \"%r\" %>s %b" common
42 <IfModule logio_module>
43 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
44 </IfModule>
45 CustomLog "logs/access_log" common
46 </IfModule>
47 <IfModule alias_module>
48 ScriptAlias /cgi-bin/ "/usr/local/httpd/cgi-bin/"
49 </IfModule>
50 <IfModule cgid_module>
51 </IfModule>
52 <Directory "/usr/local/httpd/cgi-bin">
53 AllowOverride None
54 Options None
55 Order allow,deny
56 Allow from all
57 </Directory>
58 DefaultType text/plain
59 <IfModule mime_module>
60 TypesConfig conf/mime.types
61 AddType application/x-compress .Z
62 AddType application/x-gzip .gz .tgz
63 </IfModule>
64 Include conf/extra/httpd-vhosts.conf
65 <IfModule ssl_module>
66 SSLRandomSeed startup builtin
67 SSLRandomSeed connect builtin
68 </IfModule>
开启虚拟主机配置
在末行模式输入命令删除注释行
在末行模式输入命令删除空行
找到…标签,在命令行模式下输入6yy复制6行,然后输入p粘贴。
粘贴后修改为网站主页的根目录,然后保持退出
5、修改虚拟主机配置
1)备份避免修改错误源文件丢失
[root@centos03 ~]# cp /usr/local/httpd/conf/extra/httpd-vhosts.conf /usr/local/httpd/conf/extra/httpd-vhosts.conf.bak //备份原文件
[root@centos03 ~]# ls /usr/local/httpd/conf/extra/ //查看是否备份成功
httpd-autoindex.conf httpd-languages.conf httpd-ssl.conf
httpd-dav.conf httpd-manual.conf httpd-userdir.conf
httpd-default.conf httpd-mpm.conf httpd-vhosts.conf
httpd-info.conf httpd-multilang-errordoc.conf httpd-vhosts.conf.bak
2)修改配置文件
[root@centos03 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
---
NameVirtualHost 192.168.100.30:80
<VirtualHost 192.168.100.30:80> //第一个虚拟主机监听的IP地址和端口
DocumentRoot "/www/bdqncom/" //虚拟主机网站根目录
ServerName www.bdqn.com //域名
ErrorLog "logs/dummy-host.example.com-error_log" //错误日志
CustomLog "logs/www.bdqn.com-access_log" common //成功日志
</VirtualHost>
<VirtualHost 192.168.100.30:80>
DocumentRoot "/www/accpcom"
ServerName www.accp.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/www.bdqn.com-access_log" common
</VirtualHost>
在末行模式下输入命令删除注释行
检查配置文件是否修改错误
[root@centos03 ~]# httpd -t
httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe38:619c for ServerName
Syntax OK
启动Apache服务
[root@centos03 ~]# systemctl restart httpd //重启启动Apache服务
[root@centos03 ~]# netstat -anptu | grep httpd //查看是否成功监听80端口
tcp6 0 0 :::80 :::* LISTEN 95312/httpd
四、验证是否能够成功访问网站
1、使用win10虚拟机验证
1)配置IP地址和DNS
2)访问http://www.bdqn.com
3)访问http://www.accp.com
????作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!