源码编译安装LAMP

发布时间:2024年01月03日

目录

1.前言

2. Apache 网站服务基础

2.1 Apache简介

2.1.1 Apache起源

2.1.2 Apache 的主要特点

2.2 安装httpd服务器

2.2.1 准备工作

2.2.2 源码编译安装

(1)解包

(2)配置

(3)编译及安装?

2.2.3 确认安装结果

?2.2.4 优化执行路径

2.2.5 添加httpd系统服务

2.2.3 httpd 服务器的基本配置

2.2.3.1 Web站点的部署过程

2.2.3.1.1 确定网站名称、IP地址

2.2.3.1.2 配置并启动httpd服务

2.2.3.1.3.部署网页文档

2.2.3.1.4 在客户机中访问Web站点

2.2.3.1.5 查看Web站点的访问情况


1.前言

LAMP 架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态 Web 站点服务及其应用开发环境。 LAMP 是一个缩写词,具体包括 Linux 操作系统、 Apache 网站服务器、 MySQL 数据库服务器、 PHP (或 Perl、Python )网页编程语言。本章将以源码编译的方式搭建 LAMP 环境,能够满足企业定制化的需求。
在构建 LAMP 平台时,各组件的安装顺序依次为 Linux Apache MySQL PHP。
其中 Apache MySQL 的安装并没有严格的顺序;而 PHP 环境的安装一般放到最后,负责沟通 Web 服务器和数据库系统以协同工作。

2. Apache 网站服务基础

本章将介绍 “Apache HTTP Server” 的特点及其编译安装过程。

2.1 Apache简介

“Apache HTTP Server” 是开源软件项目的杰出代表,它基于标准的 HTTP 网络协议提供网页浏览服务,在 Web 服务器领域中长期保持着超过半数的份额。 Apache 服务器可以运行在 Linux UNIX Windows 等多种操作系统平台中。
2.1.1 Apache起源
Apache 服务器是针对之前出现的若干个 Web 服务器程序进行整合、完善后形成的软件,其名称来源于 “A Patchy Server” ,意思是 基于原有 Web 服务程序的代码进行修改(补丁)后形成的服务器程序
1995 年, Apache 服务程序发布了 1.0 版本,之后一直由 “Apache Group”负责该项目的管理和维护;直到 1999 年,在 “Apache Group” 的基础上成立了 Apache 软件基金会( Apache Software Foundation ASF )。目前 Apache 项目一直由 ASF 负责管理和维护。
ASF 是非盈利性质的组织,最初只负责 “Apache Web” 服务器项目的管理。随着 Web应用需求的不断扩大, ASF 逐渐增加了许多与 Web 技术相关的开源软件项目。因此Apache 现在不仅仅代表着 Web 服务器,更广泛地代表着 ASF 管理的众多开源软件项目。 ASF 基金会的官方网站是 http://www.apache.org/
“Apache HTTP Server” ASF 旗下著名的软件项目之一,其正式名称是 “httpd”,也就是历史上的 Apache 网站服务器。在后续内容中,若未作特殊说明,使用“Apache”或者 “httpd” ,均指的是 “Apache HTTP Server”
2.1.2 Apache 的主要特点
Apache 服务器在功能、性能和安全性等方面的表现都是比较突出的,可以较好地满足 Web 服务器用户的应用需求。其主要特点包括以下几个方面。
开放源代码:这是 Apache 服务器的重要特性之一,也是其他特性的基础。Apache
服务程序由全世界的众多开发者共同维护,并且任何人都可以自由使用,这充分体
现了开源软件的精神。
跨平台应用:这个特性得益于 Apache 的源代码开放。Apache 服务器可以运行在
绝大多数软硬件平台上,所有 UNIX 操作系统都可以运行 Apache 服务器,甚至
Apache 服务器可以良好地运行在大多数 Windows 系统平台中。Apache 服务器的
跨平台特性使其具有被广泛应用的条件。
支持各种 Web 编程语言:Apache 服务器可支持的网页编程语言包括 Perl、PHP、
Python、Java 等,甚至微软的 ASP 技术也可以在 Apache 服务器中使用。支持各
种常用的 Web 编程语言使 Apache 具有更广泛的应用领域。
模块化设计:Apache 并没有将所有的功能集中在单一的服务程序内部,而是尽可
能地通过标准的模块实现专有的功能,这为 Apache 服务器带来了良好的扩展性。
其他软件开发商可以编写标准的模块程序,从而添加 Apache 本身并不具有的
其他功能。
运行非常稳定:Apache 服务器可用于构建具有大负载访问量的 Web 站点,很多知
名的企业网站都使用 Apache 作为 Web 服务软件。
良好的安全性:Apache 服务器具有相对较好的安全性,这是开源软件共同具有的
特性。并且,Apache 的维护团队会及时对已发现的漏洞提供修补程序,为 Apache
的所有使用者提供尽可能安全的服务器程序。

2.2 安装httpd服务器

在配置 Apache 网站服务之前,需要正确安装好 httpd 服务器软件。 httpd 服务器的安装可以选用 RPM 安装、源码编译安装这两种方式,前者相对比较简单、快速,但是在功能上存在一定的局限性。在实际的生产环境中,使用源码编译安装的方式要更加普遍。
2.2.1 准备工作
为了避免发生端口冲突、程序冲突等现象,建议卸载使用 RPM 方式安装的 httpd。httpd 服务编译安装时需要依赖 apr-util-devel pcre-devel 等软件,因此在 httpd 编译安装之前需要先安装依赖软件。
[root@node1 ~]# rpm -e httpd --nodeps
错误:未安装软件包 httpd 
[root@node1 ~]# yum -y install apr-util-devel pcre-devel
2.2.2 源码编译安装
(1)解包
将下载获得的 httpd 源码包解压并释放到 /usr/src 目录下,且切换到展开后的源码目录中。
[root@node1 ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src/
[root@node1 ~]# cd /usr/src/httpd-2.4.25/
[root@node1 httpd-2.4.25]# 
(2)配置
根据服务器的实际应用需要,可以灵活设置不同的定制选项,如指定安装路径、启用字符集支持等。若要获知可用的各种配置选项及其含义,可以执行“./configure --help”命令。
[root@node1 httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
上述配置命令中,各选项的含义如下。
  • --prefix:指定将 httpd 服务程序安装到哪个目录下,如/usr/local/httpd
  • --enable-so:启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力。
  • --enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
  • --enable-charset-lite:启用字符集支持,以便支持使用各种字符集编码的网页。
  • --enable-cgi:启用 CGI 脚本程序支持,便于扩展网站的应用访问能力。
(3)编译及安装?

完成配置以后,执行“make”命令进行编译,将源代码转换为可执行的程序;然后执行“make install”命令完成最后的安装过程;将编译完的 httpd 程序及相关目录、文件自动复制到预设的安装目录(由配置时的“--prefix”选项指定)。其中“make”的过程可能会需要较长的时间。?

[root@node1 httpd-2.4.25]# make && make install 
2.2.3 确认安装结果
由于指定的安装目录为 /usr/local/httpd ,因此 httpd 服务的各种程序、模块、帮助文
件等都将复制到此目录下。
[root@node1 ~]# ls /usr/local/httpd/
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules
[root@node1 ~]# 
在安装后的 /usr/local/httpd 目录下包含 httpd 服务相关的各种子目录,主要子目录
的用途如下。
  • /usr/local/httpd/bin:存放 httpd 服务的各种可执行程序文件,包括主程序 httpd、服务控制工具 apachectl 等。
  • /usr/local/httpd/conf:存放 httpd 服务的各种配置文件,包括主配置文件 httpd.conf增强配置子目录 extra 等。
  • /usr/local/httpd/htdocs:存放网页文档,包括默认首页文件 index.html 等。
  • /usr/local/httpd/logs:存放 httpd 服务的日志文件。
  • /usr/local/httpd/modules:存放 httpd 服务的各种模块文件。
  • /usr/local/httpd/cgi-bin:存放各种 CGI 程序文件。
?2.2.4 优化执行路径
通过源码编译安装的 httpd 服务,程序路径并不在系统默认的搜索路径中,为了使该服务在使用时更加方便,可以为相关程序添加符号链接。
[root@node1 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin
[root@node1 ~]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl 
lrwxrwxrwx 1 root root 30 1月   2 10:57 /usr/local/bin/apachectl -> /usr/local/httpd/bin/apachectl
lrwxrwxrwx 1 root root 26 1月   2 10:57 /usr/local/bin/httpd -> /usr/local/httpd/bin/httpd
[root@node1 ~]# 
这样,在执行相关命令时就不用输入冗长的路径了。例如,当执行 “httpd -v”命令(用于查看程序版本)时,即相当于执行 “/usr/local/httpd/bin/httpd -v” 命令。
[root@node1 ~]# httpd -v
Server version: Apache/2.4.25 (Unix)
Server built:   Jan  2 2024 10:51:56
[root@node1 ~]# 
2.2.5 添加httpd系统服务
/lib/systemd/system/ 目录下,建立一个以 .service 结尾的单元( unit)配置文件,用于控制由 Systemd 管理或监控的 httpd 服务。
[root@node1 ~]# cd /lib/systemd/system/
[root@node1 system]# vim httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart= /usr/local/bin/apachectl $OPTIONS
ExecrReload= /bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
[root@node1 system]# 
[root@node1 system]# systemctl enable httpd.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@node1 system]# systemctl is-enabled httpd.service 
enabled
[root@node1 system]# 
成功执行上述操作后,在日常维护过程中,可直接使用 apachectl 工具或 systemctl
命令控制 httpd 服务。

2.2.3 httpd 服务器的基本配置

熟悉了 httpd 服务器的安装过程及主要目录结构之后,本章将进一步介绍使用 httpd
服务来架设 Web 站点的基本过程及常见配置。
2.2.3.1 Web站点的部署过程
CentOS 7.3 系统中,使用 httpd 服务部署 Web 站点的基本过程分析如下。
2.2.3.1.1 确定网站名称、IP地址
若要向 Internet 中发布一个 Web 站点,需要申请一个合法的互联网 IP 地址,并向DNS 服务提供商注册一个完整的网站名称。在企业内部网络中,这些信息可以自行设置。例如 Web 主机的 IP 地址为 173.17.17.11 ,网站名称为 www.kgc.com
若要在客户机的浏览器中通过地址 www.kgc.com 来访问此 Web 站点,还应该有可
用的 DNS 域名服务。例如,客户机所使用的 DNS 服务器应能够将 www.kgc.com 解析
IP 地址 173.17.17.11
Web 服务器本机中,将 IP 地址设置为 173.17.17.11 ;将主机名称设置为
www.kgc.com ;并修改 /etc/hosts 文件,添加相应的映射记录以提高本地解析速度。
[root@node1 ~]# hostname www.kgc.com
[root@node1 ~]# vim /etc/hostname
www.kgc.com
[root@node1 ~]# vim /etc/hosts
173.17.17.11 www.kgc.com
[root@node1 ~]# 
2.2.3.1.2 配置并启动httpd服务

(1)配置httpd服务

编辑 httpd 服务的主配置文件 httpd.conf ,查找配置项 “ServerName” ,在附近添加
一行内容 “ServiceName www.kgc.com” ,用于设置网站名称。
[root@node1 ~]# vim /usr/local/httpd/conf/httpd.conf
ServerName www.kgc.com
修改 httpd.conf 文件的配置内容后,建议使用带 “-t” 选项的 apachectl 命令对配置内
容进行语法检查(或使用 “httpd-t” 命令)。如果没有语法错误,将会显示 “Syntax OK”
信息,否则需要根据错误提示信息来修正配置。
[root@node1 ~]# /usr/local/httpd/bin/apachectl -t
Syntax OK
[root@node1 ~]#

(2)启动 httpd服务

使用 systemctl 命令启动 httpd 服务。正常启动 httpd 服务以后,默认将监听 TCP
协议的 80 端口。
[root@node1 ~]# systemctl start httpd.service 
[root@node1 ~]# netstat -anpt | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      21864/httpd         
[root@node1 ~]# 
2.2.3.1.3.部署网页文档
对于新编译安装的 httpd 服务,网站根目录位于 /usr/local/httpd/htdocs 下,需要将
Web 站点的网页文档复制或上传到此目录下。 httpd 服务器默认已提供了一个名为
index.html 的测试网页(可显示字串 “It works ),作为访问网站时的默认首页。
[root@node1 ~]# cat /usr/local/httpd/htdocs/index.html 
<html><body><h1>It works!</h1></body></html>
[root@node1 ~]# 
2.2.3.1.4 在客户机中访问Web站点
在客户机的网页浏览器中,通过域名或 IP 地址访问 httpd 服务器,将可以看到 Web
站点的页面内容。若使用的是 httpd 服务默认的首页,则页面会显示 “It works ,表示
httpd 服务已经正常运作。
2.2.3.1.5 查看Web站点的访问情况
httpd 服务器使用了两种类型的日志:访问日志和错误日志。这两种日志的文件名
分别为 access_log error_log ,均位于 /usr/local/httpd/logs 目录下。
通过查看访问日志文件 access_log ,可以及时了解 Web 站点的访问情况。访问日
志中的每一行对应一条访问记录,记录了客户机的 IP 地址、访问服务器的日期和时间、请求的网页对象等信息。例如,当从客户机192.168.103.1?访问 Web 站点以后,访问日志将会记录“192.168.103.1……"GET/HTTP/1.1"……” 的消息。
[root@www ~]# tail /usr/local/httpd/logs/access_log 
192.168.103.1 - - [03/Jan/2024:10:11:28 +0800] "GET /favicon.ico HTTP/1.1" 404 209
192.168.103.1 - - [03/Jan/2024:10:11:28 +0800] "GET /favicon.ico HTTP/1.1" 404 209
192.168.103.1 - - [03/Jan/2024:10:11:28 +0800] "GET /favicon.ico HTTP/1.1" 404 209
192.168.103.1 - - [03/Jan/2024:10:12:17 +0800] "-" 408 -
192.168.103.1 - - [03/Jan/2024:10:13:37 +0800] "GET / HTTP/1.1" 200 45
192.168.103.1 - - [03/Jan/2024:10:13:37 +0800] "GET /favicon.ico HTTP/1.1" 404 209
192.168.103.1 - - [03/Jan/2024:10:13:38 +0800] "GET /favicon.ico HTTP/1.1" 404 209
192.168.103.1 - - [03/Jan/2024:10:13:38 +0800] "GET /favicon.ico HTTP/1.1" 404 209
192.168.103.1 - - [03/Jan/2024:10:13:39 +0800] "GET / HTTP/1.1" 304 -
192.168.103.1 - - [03/Jan/2024:10:14:28 +0800] "-" 408 -
[root@www ~]# 
通过查看错误日志文件 error_log ,可以为排查服务器运行故障提供参考依据。错误
日志文件中的每一行对应一条错误记录,记录了发生错误的日期和时间、错误事件类型、错误事件的内容描述等信息
上述过程是使用 httpd服务器部署并验证 Web 站点的基本步骤,其中涉及httpd.conf 配置文件的改动量非常少,要搭建一台简单的 Web 服务器还是十分容易的。

?

文章来源:https://blog.csdn.net/S483374558/article/details/135334231
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。