源码编译安装LAMP

作者 : admin 本文共13958个字,预计阅读时间需要35分钟 发布时间: 2024-06-16 共1人阅读

LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Wb站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。本章将以源码编译的方式搭建LAMP环境,能够满足企业定制化的需求。

在构建LAMP平台时,各组件的安装顺序依次为Linux、Apache、MySQL、PHP。
其中Apache和MySQL的安装并没有严格的顺序;而PHP环境的安装一般放到最后,负责沟通Wb服务器和数据库系统以协同工作。

Apache网站服务基础

Apache简介

“Apache HTTP Server’”是开源软件项目的杰出代表,它基于标准的HTTP网络协议提供网页浏览服务,在Web服务器领域中长期保持着超过半数的份额。Apache服务器可以运行在Linux、UNIX 、Windows等多种操作系统平台中。

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逐渐增加了许多与Wb技术相关的开源软件项目。因此Apache现在不仅仅代表着Web服务器,更广泛地代表着ASF管理的众多开源软件项目。ASF基金会的官方网站是http:lww.apache.org/。

“Apache HTTP Server”是ASF旗下著名的软件项目之一,其正式名称是“httpd”,也就是历史上的Apache网站服务器。在后续内容中,若未作特殊说明,使用“Apache”或者“httpd”,均指的是“Apache HTTP Server”。

2.Apache的主要特点

Apache服务器在功能、性能和安全性等方面的表现都是比较突出的,可以较好地满足Wb服务器用户的应用需求。其主要特点包括以下几个方面。

开放源代码:这是Apache服务器的重要特性之一,也是其他特性的基础。Apache服务程序由全世界的众多开发者共同维护,并且任何人都可以自由使用,这充分体现了开源软件的精神。

跨平台应用:这个特性得益于Apache的源代码开放。Apache服务器可以运行在绝大多数软硬件平台上,所有UNIX操作系统都可以运行Apache服务器,甚至Apache服务器可以良好地运行在大多数Vindows系统平台中,Apache服务器的跨平台特性使其具有被广泛应用的条件。

支持各种Web编程语言:Apache服务器可支持的网页编程语言包括Perl、PHP、Python、Java等,甚至微软的ASP技术也可以在Apache服务器中使用。支持各种常用的Web编程语言使Apache具有更广泛的应用领域。

模块化设计:Apache并没有将所有的功能集中在单一的服务程序内部,而是尽可能地通过标准的模块实现专有的功能,这为Apache服务器带来了良好的扩展性。其他软件开发商可以编写标准的模块程序,从而添加Apache本身并不具有的其他功能。

运行非常稳定:Apache服务器可用于构建具有大负载访问量的Web站点,很多知名的企业网站都使用Apache作为Web服务软件。

良好的安全性:Apache服务器具有相对较好的安全性,这是开源软件共同具有的特性。并且,Apache的维护团队会及时对己发现的漏洞提供修补程序,为Apache的所有使用者提供尽可能安全的服务器程序。

安装httpd服务器

在配置Apache网站服务之前,需要正确安装好httpd服务器软件。httpd服务器的安装可以选用RPM安装、源码编译安装这两种方式,前者相对比较简单、快速,但是在功能上存在一定的局限性。在实际的生产环境中,使用源码编译安装的方式要更加普遍。

本小节将以下载的源码包httpd-2.4.25.tar.gz为例,介绍htpd服务的定制安装过程。

1.准备工作

为了避免发生端口冲突、程序冲突等现象,建议卸载使用RPM方式安装的httpd。
httpd服务编译安装时需要依赖apr-util-devel、pcre-devel等软件,因此在httpd编译安装之前需要先安装依赖软件。

源码编译安装LAMP插图

2.源码编译及安装

(1)解包

将下载获得的httpd源码包解压并释放到usr/src目录下,且切换到展开后的源码目录中。

源码编译安装LAMP插图(1)

(2)配置

根据服务器的实际应用需要,可以灵活设置不同的定制选项,如指定安装路径、启用字符集支持等。若要获知可用的各种配置选项及其含义,可以执行“./configure-help命令。

源码编译安装LAMP插图(2)

上述配置命令中,各选项的含义如下。

–prefix:指定将htpd服务程序安装到哪个目录下,如/usr/local/httpd。
–enable-so:启用动态加载模块支持,使htpd具备进一步扩展功能的能力。
–enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
–enable-charset-lite:启用字符集支特,以便支持使用各种字符集编码的网页。
–enable-cgi:启用CGl脚本程序支持,便于扩展网站的应用访问能力。

(3)编译及安装

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

源码编译安装LAMP插图(3)

3.确认安装结果

由于指定的安装目录为usr/local/httpd,因此httpd服务的各种程序、模块、帮助文件等都将复制到此目录下。

源码编译安装LAMP插图(4)

在安装后的usr/local/httpd目录下包含htpd服务相关的各种子目录,主要子目录的用途如下。

  • 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:存放各种CGl程序文件。

4.优化执行路径

通过源码编译安装的htpd服务,程序路径并不在系统默认的搜索路径中,为了使该服务在使用时更加方便,可以为相关程序添加符号链接。

源码编译安装LAMP插图(5)

这样,在执行相关命令时就不用输入冗长的路径了。例如,当执行httpd-V”命令(用于查看程序版本)时,即相当于执行“usr/local/httpd/bin/httpd-v”命令。

源码编译安装LAMP插图(6)

5.添加httpd系统服务

在ib/systemd/system/日录下,建立一个以.service结尾的单元(unit)配置文件,用于控制由Systemd管理或监控的httpd服务。

源码编译安装LAMP插图(7)

成功执行上述操作后,在日常维护过程中,可直接使用apachectl工具或systemctl命令控制httpd服务。

httpd服务器的基本配置

Web站点的部署过程

在CentOS7.3系统中,使用htpd服务部署Web站点的基本过程分析如下。

1.确定网站名称、IP地址

若要向Internet中发布一个Web站点,需要申请一个合法的互联网IP地址,并向DNS服务提供商注册一个完整的网站名称。在企业内部网络中,这些信息可以自行设置。例如Web主机的P地址为173.17.17.11,网站名称为ww.kgc.com。

若要在客户机的浏览器中通过地址www.kgc.com来访问此Web站点,还应该有可用的DNS域名服务。例如,客户机所使用的DNS服务器应能够将ww.kgc.com解析为IP地址173.17.17.11。

在Wb服务器本机中,将IP地址设置为173.17.17.11;将主机名称设置为www.kgc.com;并修改/etc/hosts文件,添加相应的映射记录以提高本地解析速度。

源码编译安装LAMP插图(8)

2.配置并启动httpd服务

(1)配置htpd服务

编辑httpd服务的主配置文件httpd.conf,查找配置项“ServerName”,在附近添加行内容“ServiceName www.kgc.com”,用于设置网站名称。

源码编译安装LAMP插图(9)源码编译安装LAMP插图(10)

修改httpd.conf文件的配置内容后,建议使用带“-t”选项的apachect!命令对配置内容进行语法检查(或使用“httpd-t”命令)。如果没有语法错误,将会显示“Syntax OK”的信息,否则需要根据错误提示信息来修正配置。

源码编译安装LAMP插图(11)

(2)启动httpd服务

使用systemctl!命令启动httpd服务。正常启动htpd服务以后,默认将监听TCP协议的80端口。

源码编译安装LAMP插图(12)

3.部署网页文档

对于新编译安装的httpd服务,网站根目录位于usr/local/httpd/htdocs下,需要将Web站点的网页文档复制或上传到此目录下。httpd服务器默认己提供了一个名为index.html的测试网页(可显示字串“It works!”),作为访问网站时的默认首页。

源码编译安装LAMP插图(13)

4.在客户机中访问Web站点

在客户机的网页浏览器中,通过域名或P地址访问httpd服务器,将可以看到Web站点的页面内容。若使用的是httpd服务默认的首页,则页面会显示“It works!”,表示htpd服务已经正常运作。

5.查看Web站点的访问情况

httpd服务器使用了两种类型的日志:访问日志和错误日志。这两种日志的文件名分别为access_.Ilog和error_.Iog,均位于usr/local/httpd/logs目录下。

通过查看访问日志文件access_log,可以及时了解Web站点的访问情况。访问日志中的每一行对应一条访问记录,记录了客户机的P地址、访问服务器的日期和时间、请求的网页对象等信息。例如,当从客户机173.17.17.2访问Wb站点以后,访问日志将会记“173.17.17.2…”GET/HTTP/1.1″…”的消息。

源码编译安装LAMP插图(14)

通过查看错误日志文件error_log,可以为排查服务器运行故障提供参考依据。错误日志文件中的每一行对应一条错误记录,记录了发生错误的日期和时间、错误事件类型、错误事件的内容描述等信息

上述过程是使用httpd服务器部署并验证Web站点的基本步骤,其中涉及httpd.conf配置文件的改动量非常少,要搭建一台简单的Web服务器还是十分容易的。

httpd.conf配置文件

若要对Web站点进行更加具体、更加强大的配置,仅仅学会添加“ServerName”配置项显然是远远不够的,还需要进一步熟悉htpd.conf配置文件,了解其他各种常见的配置项。

主配置文件httpd.conf由注释行、设置行两部分内容组成。与大多数Linux配置文件一样,注释性的文字以“#”开始,包含了对相关配置内容进行的说明和解释。除了注释行和空行以外的内容即设置行,构成了Wb服务的有效配置。根据配置所作用的范围不同,设置行又可分为全局配置、区域配置。

1.全局配置项

全局配置决定httpd服务器的全局运行参数,使用“关键字值”的配置格式。例如,配置网站名称时使用的“ServerName www.kgc.com”,其中“ServerName”为配置关键字,而ww.kgc.com”为对应的值。

每一条全局配置都是一项独立的配置,不需要包含在其他任务区域中。以下列出了httpd.conf文件中最常用的一些全局配置项。

源码编译安装LAMP插图(15)

在上述设置行中,各全局配置项的含义如下。

ServerRoot:.设置httpd服务器的根目录,该目录下包括了运行Web站点必需的子目录和文件。默认的根目录为usr/local/httpd,与httpd的安装目录相同。在httpd.conf配置文件中,如果指定目录或文件位置时不使用绝对路径,则目录或文件位置都认为是在服务器的根目录下。

  • Listen:设置httpd服务器监听的网络端口号,默认为80。
  • User:设置运行httpd进程时的用户身份,默认为daemon。
  • Group:设置运行httpd进程时的组身份,默认为daemon。
  • ServerAdmin:设置httpd服务器的管理员E-mail地址,可以通过此E-mail地址及时联系Web站点的管理员。
  • ServerName:设置Web站点的完整主机名(主机名+域名)。
  • DocumentRoot::设置网站根目录,即网页文档在系统中的实际存放路径。此配置项比较容易和ServerRoot混淆,需要格外注意。
  • Directorylndex:设置网站的默认索引页(首页),可以设置多个首页文件,以空格分开,默认的首页文件为index.html。
  • ErrorLog:设置错误日志文件的路径,默认路径为logs/error_Iog。
  • LogLevel:设置记录日志的级别,默认级别为warn(警告)。
  • CustomLog:设置访问日志文件的路径、日志类型,默认路径为logs/access_Iog,使用的类型为common(通用格式)。
  • PidFile:设置用于保存httpd进程号(PID)的文件,默认保存地址为logs/httpd.pid,logs目录位于Apache的服务器根目录下。
  • AddDefaultCharset:设置站点中的网页默认使用的字符集编码,如UTF-8、gb2312等。
  • Include:包含另一个配置文件的内容,可以实现将一些特殊功能的配置放到一个单独的文件中,再使用Include配置项将其包含到httpd.conf文件中,这样便于独立进行配置功能的维护而不影响主配置文件。

以上配置项是httpd.conf文件中主要的全局配置项。还有其他很多配置项,在此不一一列举,如果需要使用可以查看Apache服务器中的相关帮助手册文档。

2.区域配置项

除了全局配置项以外,htpd.conf文件中的大多数配置是包括在区域中的。区域配置使用一对组合标记,限定了配置项的作用范围。例如,最常见的目录区域配置的形式如下所示。

在以上区域定义中,设置了一个根日录的区域配置,其中添加的访问控制相关配置只对httpd服务的根目录有效,而不会作用于全局或其他目录区域。

构建虚拟Web主机

  • 虚拟Wb主机指的是在同一台服务器中运行多个Web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟Web主机。通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。
  • 使用httpd服务可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的Web站点。httpd服务支持的虚拟主机类型包括以下三种。
  • 基于域名:为每个虚拟主机使用不同的域名,但是其对应的P地址是相同的。例如,ww.kgc.com和www.kcce.com站点的P地址都是173.17.17.11。这是使用最为普遍的虚拟Web主机类型。
  • 基于P地址:为每个虚拟主机使用不同的域名,且各自对应的P地址也不相同。
  • 这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。
  • 基于端口:这种方式并不使用域名、P地址来区分不同的站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。

在上述几种虚拟W6主机中,基于域名的虚拟主机是使用最为广泛的,也是介绍的重点内容。关于另外两种类型的虚拟主机,将只介绍其配置要点。另外,因不同类型的虚拟主机其区分机制各不相同,建议不要同时使用,以免相互混淆。

基于域名的虚拟主机

本小节以实现两个虚拟Web主机www.kgc.com和ww.kcce.com为例,使用一台httpd服务器搭建,1P地址为173.17.17.11。具体构建过程介绍如下。

1.为虚拟主机提供域名解析

首先需要向DNS服务提供商注册各虚拟Web站点的域名,以便当访问其中任何一个虚拟Web站点时,最终访问的都是同一个IP地址一一实际支撑所有虚拟Web站点的服务器的IP地址。

在本案例中,需要将两个虚拟Web主机www.kgc.com和www.kcce.com解析为同一个P地址一一173.17.17.11。而在实际的htpd服务器173.17.17.11中,可以使用虚拟Web站点中的任何一个作为主机名称,如www.kgc.com。

实验过程中可以自行搭建测试用的DNS服务器。主配置文件named.conf中需要添加kgc.com和kgc.com两个区域;各区域的地址数据库中均设置www->173.17.17.11”的A记录。确认客户机能够正确解析到www.kgc.com和www.kgc.com的地址。例如,若要在IP地址为173.17.17.2的服务器中构建BND服务,具体配置方法就不赘了。

2.为虚拟主机准备网页文档

为每个虚拟Wb主机准备网站目录及网页文档。为了测试方便,分别为每个虚拟Web主机提供包含不同内容的首页文件。例如,在var/www/html目录下创建两个子文件夹kgc.com、kgc.com,分别作为www.kgc.com和www.kgc.com的网站根目录,并分别编写测试网页文件。

3.添加虚拟主机配置

在httpd服务器的主配置文件中,若要启用基于域名的虚拟Web主机,通常需要配置以下几个方面的内容。

虚拟主机区域:使用…:区域配置,为每一个虚拟Wb主机建立独立的配置内容。其中至少应包括虚拟主机的网站名称、网页根目录的配置项;其他(如管理邮箱、访问日志等)配置项可根据实际需要添加。

目录权限:使用..区域配置,为每一个虚拟Web主机的网站目录设置访问权限,如允许任何人访问。目录访问可以继承其父目录的授权许可,因此可以采取直接为父文件夹授权访问权限的方法来简化配置。

httpd.conf文件中通过Include加载这些配置。这样可以将对httpd.conf文件的改动减至最少,更方便配置内容的维护。

源码编译安装LAMP插图(16)源码编译安装LAMP插图(17)

4.在客户机中访问虚拟Web主机

在客户机的浏览器中,使用网站名称分别访问不同的虚拟Wb主机,确认能够看到不同的网页内容,此时表示基于域名的虚拟主机配置成功。若无法看到此结果,则需要检查两个站点的首页文件,根据上述过程排查配置错误,必要时清空浏览器缓存后重新访问。

基于P地址、基于端口的虚拟主机

构建基于P地址或基于端口的虚拟主机的过程与基于域名的虚拟主机类似,也需要先提供域名解析、准备网页文档,再调整httpd配置、重启httpd服务,然后在客户机中访问虚拟主机进行测试。其中最主要的区别是,不同类型的虚拟主机在httpd.conf文件中的配置内容略有不同。

1.基于P地址的虚拟主机

对于基于P地址的虚拟主机,每个虚拟Wb主机各自使用不同的P地址,但是都通过同一台httpd服务器对外提供Web浏览服务。正因为如此,用来支撑这些虚拟Web主机的服务器也就需要有大量的网络接口,这在实际应用中往往不太方便,所以基于IP地址的虚拟主机并不像基于域名虚拟主机那样应用广泛。

配置基于IP地址的虚拟Web主机时,需要在每个虚拟Web主机的VirtualHost配置项中指定各自域名所对应的P地址。例如,站点ww.kgc.com的P地址为220.181.120.61,站点ww.kcce.c0m的P地址为122.115.32.133,若要实现基于IP地址的虚拟Web主机,则可参考以下内容调整httpd服务器的配置。

源码编译安装LAMP插图(18)

需要注意的是,在做基于P地址的虚拟主机实验时,为了简化操作、方便测试,各虚拟Wb主机可以是同一个DNS区域的,使用的P地址也可以是同一个网段的。例如,两个虚拟主机www.kgc.com和ftp.kgc.com,使用的IP地址分别为173.17.17.11和173.17.17.12,这样可以减少DNS配置和网段调整的工作。

2.基于端口的虚拟主机

基于端口的虚拟主机通常只用于同一个Wb站点,其针对的网站名称、P地址往往是相同的,但通过不同的TCP端口来提供访问不同网页内容的服务入口。在浏览器中访问非80端口的Wb服务器时,需要明确指出服务器的端口号,如访问http://www.kgc.com:8353/.

配置基于端口的虚拟Web主机时,要通过多个Listen配置项来指定要监听的TCP端口号,每个虚拟Web主机的VirtualHost配置中应同时指定IP地址和端口号。

例如,若要实现当通过80端口访问www.kcce.com站点时,看到的是正常的kcce站点内容;而当通过8353端口来访问www.kcce.com站点时,可以看到kcce站点的后台管理系统页面,则可参考以下内容调整httpd服务器的配置。

源码编译安装LAMP插图(19)

MySQL的编译安装

MySQL是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。本节将介绍小ySQL的编译安装过程、服务控制方法。
为了确保ySQL数据库功能的完整性、可定制性,将以mysql–5.6.36.tar.gz为例使用源代码编译的方式安装MySQL数据库系统。

1.准备工作

为了避免发生端口冲突、程序冲突等现象,建议先查询MSQL软件的安装情况,确认没有使用以RPM方式安装的mysql-server、.mysql、MariaDB软件包;否则建议将其卸载。

源码编译安装LAMP插图(20)

由于MySQL5.5需要cmake编译安装,所以先安装cmake包。

源码编译安装LAMP插图(21)

2.源码编译及安装

(1)创建运行用户

为了加强数据库服务的权限控制,建议使用专门的运行用户,如MySql。此用户不需要直接登录到系统,可以不创建宿主文件夹。

源码编译安装LAMP插图(22)源码编译安装LAMP插图(23)

(2)解包

将下载的ySQL源码包解压,释放到us/sc目录下,并切换到展开后的源码目录。

源码编译安装LAMP插图(24)

(3)配置

在内容丰富、结构庞大的企业网站平台中,可能会用到多种字符集的网页,相应地数据库系统也应该支持不同的字符集编码。在配置过程中,可以将默认使用的字符集设置为uf8,并添加其他字符集的支持。

源码编译安装LAMP插图(25)

上述配置命令中,各选项的含义如下。

  • -DCMAKE_INSTALL_PREFIX:指定将MySQL数据库程序安装到某目录下,如目录/usr/local/mysql。
  • -DSYSCONFDIR:指定初始化参数文件目录。
  • -DDEFAULT_CHARSET:指定默认使用的字符集编码,如uf8。
  • -DDEFAU儿T_COLLATION:指定默认使用的字符集校对规则,utf8 general_ci是适用于UTF-8字符集的通用规则。
  • -DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码。
(4)编译并安装

源码编译安装LAMP插图(26)

3.安装后的其他调整

(1)对数据库目录进行权限设置

源码编译安装LAMP插图(27)

(2)建立配置文件

源码编译安装LAMP插图(28)

(3)初始化数据库

为了能够正常使用MySQL数据库系统,应以运行用户ysql的身份执行初始化脚本mysql_install_db,指定数据存放目录等。

源码编译安装LAMP插图(29)

(4)设置环境变量

为了方便在任何目录下使用mysql命令,需要在/etc/profile设置环境变量。

源码编译安装LAMP插图(30)

4.启动并访问MySQL服务

MySQL源码包中提供的服务控制脚本,使用该脚本即可控制ySQL服务。找到support-.files文件夹下的mysql.server脚本文件,将其复制到/etc/rc.d/init.d目录下,并改名为mysqld,然后再设置执行权限。

源码编译安装LAMP插图(31)

这样,以后就可以直接执行/etc/init.d/mysqld脚本来控制MySQL数据库服务了。例如,若要启动mysqld服务,并查看其运行状态,可以执行以下操作。

源码编译安装LAMP插图(32)

MySQL服务器默认通过TCP3306端口提供服务。通过编辑/etc/my.cnf配置文件中[mysqld]配置段的“port=3306”行,可以更改监听端口。
经过安装后的初始化过程,MySQL数据库的默认管理员用户名为“oot”,密码为给定的随机密码。以root用户登录本机的MySQL数据库,可以执行以下操作。

源码编译安装LAMP插图(33)

构建PHP运行环境

PHP即“Hypertext Preprocessor’”(超级文本预处理语言)的缩写,是一种服务器端的HTML嵌入式脚本语言。PHP的语法混合了C、Java、Perl及部分自创的新语法,拥有更好的网页执行速度,更重要的是PHP支持绝大多数流行的数据库,在数据库层面的操作功能十分强大,而且能够支持UNIX、Windows、Linux等多种操作系统。

安装PHP软件包

PHP项目最初由Rasums Lerdorf在1994年创建,1995年发布第一个版本PHP1.0。
将以稳定版源码包php-5.5.38.tar.gz为例。该版本可以从PHP官方站点http:lw.php.net下载。
下面介绍编译安装PHP相关软件包的基本过程。

1.准备工作

为了避免发生程序冲突等现象,建议先将RPM方式安装的PHP及相关依赖包(如果已存在)卸载。例如,根据实际安装情况可卸载php、php-cli、php-ldap、php-commonphp-mysql等。另外,需要从光盘中安装zIib-devel、.libxml2-devel等依赖包。

源码编译安装LAMP插图(34)

2.安装扩展工具库

在实际企业应用中,一部分基于PHP开发的Wb应用系统会需要额外的扩展工具,如数据加密工具libmcrypt、mhash、mcrypt等(可以从站点http://sourceforge.net下载)。安装pp软件包之前,应先安装好这些扩展工具程序。

(1)安装libmcrypt

源码编译安装LAMP插图(35)

(2)安装mhash

源码编译安装LAMP插图(36)

(3)安装mcrypt

源码编译安装LAMP插图(37)

3.编译安装PHP

(1)解包

将下载获得的PHP源码包解压并释放到uS/Sc目录下,切换到展开后的源码目录。

源码编译安装LAMP插图(38)

(2)配置

在定制PHP的配置选项时,最关键的是要指定htpd、mysqld的安装路径,以便添加相关支持设置,使LAMP各组件协同工作。除此之外,还可以指定安装路径,启用多字节支持、加密扩展支持等。

源码编译安装LAMP插图(39)

上述配置命令中,各选项的含义如下。

  • –prefix:指定将PHP程序安装到哪个目录下,如usr/local//php5。
  • –with-mcrypt:加载数据加密等扩展工具支持。
  • –with-apxs2:设置Apache HTTP Server提供的apxs模块支持程序的文件位置。
  • –with-mysql:设置小ySQL数据库服务程序的安装位置。
  • –with-mysqli:添加小ySQL扩展支持。
  • –with-config-file-path:设置PHP的配置文件php.ini将要存放的位置。
  • –enable-mbstring:启用多字节字符串功能,以便支持中文等代码
(3)编译及安装

源码编译安装LAMP插图(40)

编译的过程可能会需要较长时间,需耐心等待。若期间未出现错误,那么PHP程序的安装过程就基本完成了。接下来需要对LAMP组件环境进行适当的配置,并验证是否能够协同工作。

设置LAMP组件环境

设置LAMP组件环境,主要包括对PHP的配置文件php.ini、Apache的配置文件httpd.conf的调整。前者用来确定PHP的运行参数,后者用来加载libphp5.so模块,以便支持PHP网页。

1.php.ini配置调整

(1)php.ini的建立及基本设置

安装好PHP软件包以后,服务器并不会自动创建php.ii配置文件,但在源码目录下提供了两个样例配置文件,分别对应于开发环境、生产环境。

源码编译安装LAMP插图(41)

选择其中一个样例文件,并复制到PHP的配置文件目录usr/local/php5下,并改名为php.ini。在php.ini配置文件中,以分号开头的内容表示注释信息。

源码编译安装LAMP插图(42)源码编译安装LAMP插图(43)

通过修改php.ini文件中的配置内容,可以控制PHP网页的执行特性,如是否允许用户上传文件、设置上传文件的大小限制、设置默认使用的字符集、加载额外的扩展模块等。如果没有特别要求,可以直接沿用默认配置,不做任何修改。

源码编译安装LAMP插图(44)

(2)添加ZendGuardLoader优化模块

为了进一步提高PHP程序的执行效率,优化页面加载速度,可以为PHP添加Zend公司开发的ZendGuardLoader优化模块。若需要加密PHP代码以限制未经授权的分发,还可以购买该公司的ZendGuard软件。添加ZendGuardLoader模块支持的过程如下所述。

首先将下载的ZendGuardLoader包释放,并将其中php-5.3.x目录下的模块文件复制到PHP程序的模块文件夹。

源码编译安装LAMP插图(45)

然后,修改php.ini配置文件,添加及启用ZendGuardLoader..so模块的配置语句。

源码编译安装LAMP插图(46)

2.htpd.conf配置调整

要使httpd服务器支持PHP页面解析功能,需通过LoadModule配置项加载PHP程序的模块文件,并通过AddType配置项添加对“php”类型网页文件的支持。除此以外,还应修改Directorylndex配置行,添加index.php配置项,以识别常见的PHP首页文件。

源码编译安装LAMP插图(47)源码编译安装LAMP插图(48)

在上述配置内容中,LoadModule行应该会在安装PHP的过程中自动添加,其中的“php5_module”表示模块名称;“modules//libphp:5.so”表示模块文件位置。而AddType行需要手动添加,Directorylndex行在原有基础上对其进行修改即可。

测试LAMP协同工作

完成PHP相关软件的安装、调整配置以后,应对其进行必要的功能测试,以验证LAMP平台各组件是否能够协同运作。在网站根目录下创建相应的PHP测试网页,然后通过浏览器进行访问,根据显示结果即可判断LAMP平台是否构建成功。

下面分别从PHP网页的解析、通过PHP页面访问小ySQL数据库两个方面进行测试。

要想测试PHP环境是否能够正常工作,需要建立一个使用PHP语言编写的网页文件,并通过httpd服务器发布,在浏览器中对其进行访问。由于PHP语言并非本章学习的重点,这里不做过多的讲解。用于测试时,只需要建立一个简短的PHP测试文件即可。

1.测试PHP网页能否正确显示

编写一个“php”格式的网页测试文件,使用PHP内建的“phpinfo()”函数显示服务器的PHP环境信息,PHP代码应包括在“”标记之间。将测试网页文件放置到网站根目录下,如/usr/local/httpd/htdocs/test1.php。

源码编译安装LAMP插图(49)

通过浏览器访问测试网页,如htp:ww.kgc.com/test1.php。若能够看到PHP程序的版本号、配置命令、运行变量等相关信息,如图2.1所示,则表示此Wb服务器已经能正常显示PHP网页;若还能看到Zend引擎相关信息,则表示ZendGuardLoader模块也已成功启用。

源码编译安装LAMP插图(50)

2.测试PHP网页能否访问MySQL数据库

编写一个网页测试文件test2.php,添加简单的数据库操作命令,用于验证与MySQL服务器的连接、查询等操作。其中;mysqli_connect()”函数用于连接MySQL数据库,需要指定目标主机地址,以及授权访问的用户名、密码。

源码编译安装LAMP插图(51)

通过浏览器访问测试网页,如htp:ww.kgc.com/test2.php。若能看到成功连接的提示信息,则表示能够通过PHP网页访问MySQL数据库。当使用了错误的用户名、密码,或者因“mysqld-connect(0”函数未运行而导致连接失败时,执行时将会报错。

源码编译安装LAMP插图(52)

LAMP架构应用实例

在企业Web应用系统中,动态网站已经逐步成为主流,而基于LAMP架构的Web动态网站更是其中的佼佼者。本节将介绍一个LAMP架构协同应用的实例–phpMyAdmin管理套件的部署及使用。

部署phpMyAdmin系统

phpMyAdmin是一个使用PHP语言编写,用来管理MySQL数据库的Web应用系统。通过该套件提供的网页界面,即便是对SQL语句不太熟悉的人,也能够非常容易地对MySQL数据库进行管理和维护。

phpMyAdmin的源码包可以从其官方站点http:w.phpmyadmin.net下载。下面以多国语言版源码包phpMyAdmin-4.7.2-al–languages.tar.gz为例,介绍phpMyAdmin套件的部署过程。

1.解包并复制到网站目录

对于大部分PP应用系统,只需要解包后复制到网站目录下即可完成部署,之后再根据需要调整配置,或者访问安装页面以完成进一步的安装。例如,若要将phpMyAdmin套件部署到网站根目录下,以便通过站点http:/ww.kgc.com/phpMyAdmin/访问。

源码编译安装LAMP插图(53)

2.建立配置文件config.inc.php

将phpMyAdmin套件复制到网站目录以后,还需要创建配置文件方可正常使用。
默认提供的样例配置文件为config.sample.inc.php,需参照该文件内容建立
configi.inc.php配置文件。查找配置文件中的“blowfish_secret'”行,默认已经设置了一个短语密钥(此密钥用于网页cookie认证,不需要用户记忆),可以根据需要自行修改。

源码编译安装LAMP插图(54)

3.访问phpMyAdmin的Web管理界面

在浏览器中访问http:www.kgc.com/phpMyAdmin/,.如果能够看到phpMyAdmin系统的登录界面,如图2.3所示,则表示部署成功。使用MySQL数据库的用户(不能是密码为空的用户)登录后,即可在授权范围内对数据库进行管理。

源码编译安装LAMP插图(55)

使用phpMyAdmin系统

需要使用phpMyAdmin系统时,应先通过MySQL服务器中授权的数据库用户(如root用户)进行登录,认证成功后可以看到管理界面,如图2.4所示。通过phpMyAdmin套件,用户可以在授权的范围内执行各种数据库管理操作,使界面更加直观、友好,大大降低了远程维护MySQL数据库服务器的难度。

源码编译安装LAMP插图(56)

本站无任何商业行为
个人在线分享 » 源码编译安装LAMP
E-->