源码编译安装LAMP

源码编译安装LAMP

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

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

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逐渐增加了许多与Web技术相关的开源软件项目。因此 Apache现在不仅仅代表着Web服务器,更广泛地代表着ASF管理的众多开源软件项 B。ASF基金会的官方网站是Welcome to The Apache Software Foundation!

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

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 的所有使用者提供尽可能安全的服务器程序。

安装httpd服务器

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

1.准备工作

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

[root@localhost - # rpm -e httpd --nodeps

错误:未安装软件包httpd

[root@localhost- yum install -y apr-util-devel pcre-devel

2.源码编译及安装

(1)解包

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

[root@localhost - tar zxf httpd-2.4.25.tar.gz -C /usr/src

[root@localhost - cd /usr/src/httpd-2.4.25

(2)配置

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

[root@localhost httpd-2.4.25]# /configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite -enable-cgi

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

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

(3)编译及安装

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

[root@localhost httpd-2.4.25]# make && make install

3.确认安装结果

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

[root@localhost - ls /usr/local/httpd

bin cgi-bin error icons logs manual build conf  htdocs include man modules

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

/usr/local/httpd/bin:存放httpd服务的各种可执行程序文件,包括主程序httpd、服务控制工具apachect等。

/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程序文件。

4.优化执行路径

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

[root@localhost -#ln -s /usrlocal/httpd/bin/* /usr/local/bin

这样,在执行相关命令时就不用输入冗长的路径了。

5.添加uhttpd系统服务

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

[root@localhost -cd /lib/systemd/system

[root@localhost system]#vim httpd.service

[Unit]

Description-The Apache HTTP Server

After=network.target

[Service]

Type=forking

PIDFile-/usr/ocal/httpd/logs/httpd.pid

ExecStart= /usr/local/bin/apachectl SOPTIONS

ExecrReload= /bin/kill-HUP SMAINPID

[Install]

WantedBy=multi-user.target

[root@localhost system]# systemctl enable httpd.service

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usrlib/systemd/system/httpd.service.

[root@localhost system]# systemctl is-enabled httpd.service

enabled

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

httpd服务器的基本配置

2.2.1 Web站点的部署过程

在CentOS 7.3系统中,使用httpd服务部署Web站点的基本过程分析如下。

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@localhost -] hostname www.kgc.com

[root@localhost - ] vim letc/hostname www.kgc.com

[root@localhost -] vim letc/hosts 173.17.17.11 www.kgc.com

2.配置并启动httpd服务

(1)配置httpd服务

编辑httpd服务的主配置文件httpd.conf,查找配置项"ServerName",在附近添加 一TA"ServiceName www.kgc.com", 用于设置网站名称

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

[root@www -]#/usr/local/httpd/bin/apachectl -t

Syntax OK

(2)启动htpd服务

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

[root@www -]# systemctl start httpd

3.部署网页文档

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

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

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

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

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

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

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

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

2.2.2 httpd.conf配置文件

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

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

1.全局配置项

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

每一条全局配置都是一项独立的配置,不需要包含在其他任务区域中。

2.区域配置项

除了全局配置项以外, httpd.conf文件中的大多数配置是包括在区域中的。区域 配置使用一组合标,限定了配置项的作用范围。

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

2.3构建虚拟Web主机

虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中每一个站点实际 上并不独立占用整个服务器,因此被称为“虚拟"Web主机。通过虚拟Web主机服务可 以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。

使用httpd服务可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务 就能够同时支撑大量的Web站点。httpd服务支持的虚拟主机类型包括以下三种。

基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。

基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。 这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。

基于端口:这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不 同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访 问。

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

基于域名的虚拟主机

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

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

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

为每个虚拟Web主机准备网站目录及网页文档。为了测试方便,分别为每个虚拟 Web主机提供包含不同内容的首页文件。

3.添加虚拟主机配置

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

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

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

当虚拟Web主机的数量较多时,建议使用独立的虚拟主机配置文件,然后在 httpd.conf文件中通过Include加载这些配置。这样可以将对httpd.conf文件的改动减 至最少,更方便配置内容的维护。

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

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

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

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

1,基于IP地址的虚拟主机

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

配置基于IP地址的虚拟Web主机时,需要在每个虚拟Web主机的VirtualHost配 置项中指定各自域名所对应的IP地址。

需要注意的是,在做基于IP地址的虚拟主机实验时,为了简化操作、方便测试, 各虚拟Web主机可以是同一个DNS区域的,使用的IP地址也可以是同一个网段的。

2.基于端口的虚拟主机

基于端口的虚拟主机通常只用于同一个Web站点,其针对的网站名称、IP地址往 往是相同的,但通过不同的TCP端口来提供访问不同网页内容的服务入口。在浏览器 中i# 80 WebB务器, 需要明确指出服务器的端口号

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

MySQL的编译安装

MySQL是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。本节将介绍MySQL的编译安装过程、服务控制方法。

1.准备工作

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

由于MySQL 5.5需要cmake编译安装,所以先安装cmake包。

[root@www -]# tar zxf cmake-2.8.6.tar.gz

[root@www -]# cd cmake-2.8.6

[root@www cmake-2.8.6]# ./configure

[root@www cmake-2.8.6]# gmake && gmake install

2.源码编译及安装

(1)创建运行用户

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

[root@www -]# groupadd mysql

[root@www -]# useradd -M -s /sbin/nologin mysql -g mysql

(2)解包

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

[root@www -]# tar zxf mysql-5.6.36.tar.gz-C /usr/src

[root@www -]# cd /usr/src/mysql-5.6.36

(3)配置

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

[root@wwwmysql-5.6.36]# cmake -DCMAKE_INSTALL_PREFIX=/usrllocal/mysql -DSYSCONFDIR=letc-DDEFAULT _CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all

-DCMAKE_INSTALL_PREFIX:指E将MySQL数据库程序安装到某目录下,如目 录/usr/local/mysql.

-DSYSCONFDIR:指定初始化参数文件目录。

ا-DDEFAULT_CHARSET:指定默认使用的字符集编码,如utf8

-DDEFAULT_COLLATION:指定默认使用的字符集校对规则, utf8_general_ci是 适用于UTF-8字符集的通用规则。

-DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码。

(4)编译并安装

[root@www mysql-5.6.36]# make&&make install

3.安装后的其他调整

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

[root@www mysql-5.6.36]# chown -R mysql:mysql /usr/local/mysal

(2)建立配置文件

[root@www mysq-5.6.36]# rm -f letc/my.cnf

/1原etc文件夹下有my.cnf文件可以删除

[root@www mysql-5.6.36]# cp support-files/my-default.cnf letc/my.cnf

(3)初始化数据库

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

[root@wwwmysql-5.6.36]#/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/datal

(4)设置环境变量

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

[root@www mysql-5.6.36]#   echo "PATH=$PATH:/usrllocal/mysql/bin" >> /etc/profile

[root@www mysq-5.6.36]#source /etc/profile

4.启动并访问MySQL服务

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

[root@www mysql-5.6.36]# cp support-files/mysql.server letc/rc.d/init.d/mysqld

[root@www mysql-5.6.36]# chmod +x /etc/rc.d/init.d/mysqld

这样,以后就可以直接执行letc/init.d/mysqld脚本来控制MySQL数据库服务了。

MySQL服务器默认通过TCP 3306端口提供服务。通过编辑/etc/my.cnf配置文件 中[mysqld]配置段的"port = 3306"行,可以更改监听端口。

经过安装后的初始化过程, MySQL数据库的默认管理员用户名为"root",密码为给定的 随机密码。

构建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官方站点 PHP: Hypertext Preprocessor下载。

1.准备工作

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

[root@www Packages# rpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm libxml2-devel-2.9.1-6.el7_2.3.x86_64.rpm xz-devel-5.2.2-1.el7.x86_64.rpm

2.安装扩展工具库

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

(1)安装libmcrypt

(2)安装mhash

(3)安装mcrypt

3.编译安装PHP

(1)解包

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

[root@www -]# tar zxf php-5.5.38.tar.gz-C /usr/src [root@www -]# d /usr/src/php-5.5.38

(2)配置

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

[root@www php-5.5.38]# ./configure --prefix/usr/local/php51 --with-mcrypt

-with-apxs2-/usr/local/httpd/bin/apxs -with-mysql=/usr/local/mysql -with-mysqli=/usr/local/mysql/bin/mysa_config -with-config-file-path=/usrlocal/php5

-enable-mbstring

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

--preix:指EyPHP程序安装哪a录F, t/usr/local/php5.

--with-mcrypt:加载数据加密等扩展工具支持。

--with-apxs2:设置Apache HTTP Server提供的apxs模块支持程序的文件位置。

--with-mysql:设置MySQL数据库服务程序的安装位置。

--wih-mysqli:添加MySQL扩展支持。

--with-config-file-path:设置PHP的配置文件php.ini将要存放的位置。

--enable-mbstring: 启用多字节字符串功能,以便支持中文等代码。

(3)编译及安装

[root@www php-5.5.38]# make&&make install

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

设置LAMP组件环境

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

1. php.ini配置调整

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

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

usr/src/php-5.5.38/php.ini-development /开发版样例文件,用于学习、测试 usr/src/php-5.5.38/php.ini-production //生产版样例文件,用于实际运营

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

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

(2)添加ZendGuardLoader优化模块

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

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

[root@www-#tar zxf zendloader-php5.5-linux-x86_64_update1.tar.gz-C/usrsrc

[root@www-# cd /usr/srcdzend-oader-php5.5-inux-x86_64

[root@www zendHoader-php5.5linux-x86_64]cp  ZendGuardLoader.so /usr/local/php5/lib/php

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

[root@www -]# vim /usr/locallphp5/php.ini

..../略部内容 zend_extension=/usrlocal/php5/lib/php/ZendGuardLoader.so zend_loader.enable=1

2. httpd.conf配置调整

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

[root@www -]# vim /usr/local/httpd/conf/httpd.conf

......w部分内容

Listen *:80

......Y部分内容

LoadModule php5_module modules/libphp5.so

AddType application/x-httpd-php .php

Directorylndex index.htmlindex.php

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

相关推荐

  1. 编译安装LAMP

    2024-07-10 07:26:05       10 阅读
  2. 编译安装LAMP

    2024-07-10 07:26:05       10 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 07:26:05       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 07:26:05       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 07:26:05       4 阅读
  4. Python语言-面向对象

    2024-07-10 07:26:05       4 阅读

热门阅读

  1. 网格化监控:Eureka与分布式服务网格的协同监控

    2024-07-10 07:26:05       7 阅读
  2. Tomcat异步请求实现原理和应用场景简介

    2024-07-10 07:26:05       8 阅读
  3. [Python学习篇] Python面向对象——类

    2024-07-10 07:26:05       6 阅读
  4. 每日一道算法题 LCR 150. 彩灯装饰记录 II

    2024-07-10 07:26:05       10 阅读
  5. Ubuntu 添加so库搜索路径

    2024-07-10 07:26:05       14 阅读
  6. 文件格式是.pb应该怎么查看?

    2024-07-10 07:26:05       13 阅读
  7. 高考假期预习指南

    2024-07-10 07:26:05       11 阅读