源代码配置安装Apache

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 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。


01680284909260afdb75036b2069bc1.png注:图片来源百度百科



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

34b7ea8ef7f6bee0f4d0dee51647366.png


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/

bdc002a662990f0bbaa85cfcbe44bc2.png


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

b450195f5d0978ca626b82d410be659.png


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/         //查看是否卸载成功

d0a92c2b05deeddf97bd4414286ae65.png



[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)编辑主配置文件

[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";
};

4817130d6b59743c2568096a6ad898d.png

检查配置文件语法结构是否错误

[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

4308b0a6ed4c6bea88d47aa7b077e14.png


检查配置文件是否错误

[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


替换前:

e4db43060b779b3690a759d668d4faf.png

替换后:


109c8ec87411e9a2b226e499cbe144f.png


查看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软件上传)

be730af7a32ff5b97def8efc99ea6fc.png

accp:

7e12c7f643f2f4787fa16655956187c.png

bdqn:


56922c5acb8e50fb0078ce9e21a7af7.png


查看是否上传成功

[root@centos03 ~]# ls -R /www/

dd9fae20539396cec75e5114c6b5e99.png


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>

开启虚拟主机配置

c055713edcfadf868eb9d2d9443c4b7.png


在末行模式输入命令删除注释行


85a3865a6d09b4a9a7f670bc08f4996.png


在末行模式输入命令删除空行

a9d15aa5fb4185762c726682fd03785.png


找到…标签,在命令行模式下输入6yy复制6行,然后输入p粘贴。

aaf934896125e8e21115f53427ed6bb.png


粘贴后修改为网站主页的根目录,然后保持退出


d4d63be8353dc32d832136c85ad2440.png


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>

在末行模式下输入命令删除注释行

f6dd96001f6b8e0a24328a5e37a3482.png


检查配置文件是否修改错误

[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

4dd6e9072eadd33b473e475eb08f7e3.png


2)访问 http://www.bdqn.com


7fe6c5f28049236307cc7a2acb8f39c.png


3)访问 http://www.accp.com


2e54d2245400debbb7e0f325fb9bae1.png


相关文章
|
1月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
200 1
|
1月前
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
39 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
1月前
|
缓存 前端开发 应用服务中间件
CORS跨域+Nginx配置、Apache配置
CORS跨域+Nginx配置、Apache配置
131 7
|
1月前
|
消息中间件 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
40 2
|
16天前
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
1月前
|
存储 消息中间件 druid
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
80 1
|
1月前
apache+tomcat配置多站点集群的方法
apache+tomcat配置多站点集群的方法
33 4
|
1月前
|
负载均衡 应用服务中间件 Apache
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
37 3
|
1月前
|
Ubuntu 网络安全 Apache
Ubuntu下安装Apache2.4.7遇到的问题及解决办法
Ubuntu下安装Apache2.4.7遇到的问题及解决办法
|
1月前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
47 1

推荐镜像

更多