编译安装LAMP--php模块方式构建LAMP

本文主要描述基于php模块方式编译安装LAMP平台过程.

在庆云等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站制作、成都网站设计 网站设计制作按需网站建设,公司网站建设,企业网站建设,成都品牌网站建设,全网营销推广,外贸营销网站建设,庆云网站建设费用合理。

软件安装次序:

1. 编译安装httpd-2.4.16

2. 二进制程序安装MySQL-5.5.44

3. 编译安装php-5.4.26

++++++++++++++++++

编译安装httpdhttpd-2.4.16

1-1. yum安装依赖组包: 

# yum groupinstall -y "Development Tools"

# yum groupinstall -y "Server Platform Development"

1-2. yum安装依赖包:

# yum -y install pcre-devel

# yum install openssl-devel

2. 编译安装apr-1.5.2, apr作用类似于httpd的虚拟机

# tar xf apr-1.5.2.tar.bz2

# cd apr-1.5.2

# ./configure --prefix=/usr/local/apr

# make && make install

3. 编译安装apr-util-1.5.4, apr-util需要依赖apr模块

# tar xf apr-util-1.5.4.tar.bz2 

# cd apr-util-1.5.4

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

#make && make install

4. 编译安装httpd-2.4.16

# tar xf httpd-2.4.16.tar.bz2 

# cd httpd-2.4.16

# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event

# make && make install

#####
configure配置字段解释:
--prefix=/usr/local/apache 指定默认路径
--sysconfdir=/etc/httpd24 配置文件路径
--enable-so 支持dso动态加载模块
--enable--ssl 支持ssl协议
--enable-cgi 支持cgi接口
--enable-rewrite 支持url重写
--with-zlib 支持gzip对数据进行压缩
--with-pcre 支持pcre正则模块
--with-apr=/usr/local/apr 指定apr位置 
--with-apr-util=/usr/local/apr-util 指定apr-utl位置
--enable-modeles=most 启用常用模块
--enable-mpms-shared=all 安装所有mpm模块
--with-mpm=event 默认使用event模块
#####

5. httpd-2.4.16安装完成后, 对httpd进行相关配置

5-1. 设置httpd的PID文件路径

编辑配置文件/etc/httpd24/httpd.conf

添加内容为: PidFile "/var/run/httpd.pid"

用于设置httpd的pid文件路径为/var/run/httpd.pid

5-2. 为httpd添加服务器脚本, 复制rpm包安装生成的SysV服务脚本文件/etc/rc.d/init.d/httpd, 修改以下字段内容(修改内容应该与本次编译时的参数相匹配)

#####
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
#####

而后为此脚本赋予执行权限:

# chmod +x /etc/rc.d/init.d/httpd

将服务器脚本加入服务列表:

# chkconfig --add httpd

加入服务列表后查看该服务的运行级别显示所有级别下都不运行, 因为在配置文件中就没有要求该服务随机启动

# chkconfig --list httpd

httpd           0:off 1:off 2:off 3:off 4:off 5:off 6:off

到此为止httpd-2.4.16就已经编译安装完成, 并已经成功运行.

5-3. 启动httpd程序, 验证是否可用

编辑httpd网页文件

# vim /usr/local/apache/htdocs/index.html

添加如下内容:

working...

通过浏览器访问本地主机IP地址, 查看能够显示指定内容working..., 检查httpd是否正常运行

++++++++++++++++++

二进制程序安装mysql-5.5.44

1. 文件系统前提条件: 在单独的磁盘分区上创建目录用于存放mysql的数据库文件

1-1. 在磁盘/dev/sda上创建10G大小的新分区/dev/sda5, 设置其类型为8e(LVM)

# fdisk /dev/sda, 在交换式命令行中执行相应操作

# partx -a /dev/sda

1-2. 创建大小为5G的LV: lvdata

# pvcreate /dev/sda5

  Physical volume "/dev/sda5" successfully created

# pvs

  PV         VG   Fmt  Attr PSize  PFree 

  /dev/sda5       lvm2 ---  10.00g 10.00g

# vgcreate  vgdata /dev/sda5

  Volume group "vgdata" successfully created

# vgs

  VG     #PV #LV #SN Attr   VSize  VFree 

  vgdata   1   0   0 wz--n- 10.00g 10.00g

# lvcreate -L 5G -n lvdata vgdata

  Logical volume "lvdata" created

# lvs

  LV     VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lvdata vgdata -wi-a----- 5.00g   

 1-3. 将磁盘分区/dev/mapper/vgdata-lvdata的文件系统格式化为ext4, 并挂载至/data目录中

 [root@Node161 ~]# mke2fs -t ext4 /dev/mapper/vgdata-lvdata 

mke2fs 1.41.12 (17-May-2010)

# mkdir /data

# mount /dev/mapper/vgdata-lvdata /data

1-4. 在/data目录下创建mysql_data目录, 用于存放数据库文件系统, 

# mkdir /data/mysql_data

1-5. 编辑文件系统挂载配置文件/etc/fstab, 填入以下内容, 将/dev/mapper/vgdata-lvdata文件系统默认挂载至/data目录

# vim /etc/fstab

/dev/mapper/vgdata-lvdata       /data           ext4    defaults,noatime        0 0

2. 为mysql创建系统用户

创建系统组mysql

# groupadd -r mysql

创建系统用户mysql, 并设置其属组为mysql, 默认shell为/sbin/nologin, 默认目录为/data/mysql_data

# useradd -g mysql -r -s /sbin/nologin -M -d /data/mysql_data/ mysql

设置目录/data/mysql_data的属主属组为mysql:mysql

# chown -R mysql:mysql /data/mysql_data

3. 二进制安装程序包mysql-5.5.44

mysql的自带安装教程为: 安装程序主目录下的INSTALL-BINARY文件

3-1. 将mysql-5.5.44安装程序加压后放置在/usr/local目录下

# tar xf mysql-5.5.44-linux2.6-x86_64.tar.gz -C /usr/local/

# cd /usr/local/

3-2. 创建mysql-5.5.44-linux2.6-x86_64安装程序目录的软连接文件mysql, 该步骤目的是便于保留版本信息

# ln -sv mysql-5.5.44-linux2.6-x86_64 mysql

3-3. 修改安装程序目录下所有文件的属主属组为mysql:mysql

# chown -R mysql:mysql mysql/*

3-4. 执行安装程序自带的安装文件/usr/local/mysql/scripts/mysql_install_db, 并指用户为mysql, 数据目录为/data/mysql_data, 安装指导文件位置为/usr/local/mysql/INSTALL-BINARY

# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql_data

4. 修改mysql的相关配置文件

将安装程序自带的配置文件保存为/etc/my.cnf文件, 并修改配置文件中的指定字段

安装程序的support-files/目录下会根据设备内存大小自带多种程序的配置文件my-*.cnf, 可以先查看配置文件中的描述情况, 选择适合自己主机的配置文件保存为指定的目标文件

# cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf

修改创建的配置文件中的以下字段:

thread_concurrency = #            设置本机CPU个数, #应该为当前主机CPU个数x2

datadir = /data/mysql_data      添加字段指定mysql数据文件的默认存放位置

5. 添加mysql的SysV服务脚本

5-1. 复制安装程序自带的服务脚本文件保存为/etc/rc.d/init.d/mysqld

服务脚本文件保存名称为mysqld表示为mysql服务器, 而防止与mysql客户端混淆

# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

5-2. 对服务脚本文件添加执行权限, 并添加至开机启动列表

# chmod +x /etc/rc.d/init.d/mysqld

# chkconfig --add mysqld

# chkconfig mysqld on

# chkconfig --list mysqld

mysqld         0:off 1:off 2:on 3:on 4:on 5:on 6:off

6. 对二进制安装的mysql-5.5.44程序执行以下操作

6-1. 将程序搜索路径加入PATH环境变量, 在全局环境变量中使用mysql命令时使用安装程序mysql-5.5.44自带的mysql客户端程序

# vim /etc/profile.d/mysql.sh 

添加如下字段: 

export PATH=${PATH}:/usr/local/mysql/bin

6-2. 导出mysql-5.5.44带有的头文件

# ln -sv /usr/local/mysql/include /usr/include/mysql

6-3. 导出mysql-5.5.44的库文件到系统的库查找路径

# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf

6-4. 在man手册中添加mysql-5.5.44帮助文件搜索路径

# echo 'MANPATH /usr/local/mysql/man' >> /etc/man.config

此时mysql-5.5.44已经安装完成

++++++++++++++++++

编译安装php-5.4.26

1. 安装相关依赖包

1-1. yum安装 Desktop Platform Development, bzip2-devel, libxml2-devel, php-mysql-devel

# yum -y groupinstall "Desktop Platform Development"

# yum install bzip2-devel libxml2-devel php-mysql

1-2. rpm包安装 libmcrypt-devel, 及其依赖的关系包libmcrypt, libmcrypt 用于php支持读取多字节数据

# rpm -ivh libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm 

2. 编译安装php-5.4.26

# tar xf php-5.4.26.tar.gz 

# cd php-5.4.26

# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts

# make && make install

#####

configure配置字段说明
--prefix=/usr/local/php                         指定安装目录
--with-openssl                                  启用openssl
--enable-mbstring                               启用多字节,支持字符串
--with-freetype-dir                             启用对freetype字体库的支持                   
--with-jpeg-dir                                 启用对jpeg图片的支持
--with-png-dir                                  启用对png图片的支持
--with-zlib                                     启用对压缩库的支持
--with-libxml-dir=/usr                          启用libxml2库的支持
--enable-xml                                    启用xml
--enable-sockets                                启用对套接字的支持
--enable-fpm                                    启用fpm模块
--with-mcrypt                                   启用对加密的支持
--with-config-file-path=/etc                    指定编译安装时配置文件安装的路径
--with-config-file-scan-dir=/etc/php.d          指定php.ini文件的安装路径
--with-bz2                                      启用b2压缩
--enable-maintainer-zts                         启用对worker和event的支持

php和mysql部署在不同设备时的安装选项

--with-mysql=mysqlnd                            指定使用mysql

--with-pdo-mysql=mysqlnd                        启用pdo模块

--with-mysqli=mysqlnd                           启用mysqli,优化支持

php和mysql部署在同一设备时的安装选项--本次安装使用该分支选项

--with-mysql=/usr/local/mysql 指定使用本地mysql

--with-mysqli=/usr/local/mysql/bin/mysql_config 指定本地mysql的配置文件

#####

3. 修改php的相关配置文件

3-1. 复制php源码包目录下的php.ini-production文件作为当前程序的配置文件

# cp php-5.4.26/php.ini-production /etc/php.ini

3-2. 修改httpd的配置文件, 将php作为httpd模块进行调用

 # vim /etc/httpd/httpd.conf

添加如下二行, 添加httpd对php的支持

   AddType application/x-httpd-php  .php

   AddType application/x-httpd-php-source  .phps

修改 DirectoryIndex index.html 字段

DirectoryIndex index.php index.html  添加默认识别php文件

此时php已经安装完成, 并且已经建立完成php与httpd的模块方式连接关系

+++++++++++++++++++

测试LAMP平台的连通性

LAMP架构已经搭建完成, 现在需要创建一个测试页面来测试该架构是否正常运行

1. 在数据库文件系统中修改用户密码, 测试LAMP的连通性

mysql> use mysql;

mysql> show tables;

mysql> desc user;

mysql> select User,Host,Password from user;

mysql> set password for 'root'@'localhost' = password('mysqladmin');

# 修改root@localhost的密码为mysqladmin, 正常登陆

mysql> flush privileges;

2. 在httpd的默认目录下创建php格式的测试文件index.php

# vim /usr/local/apache/htdocs/index.php, 添加如下内容:

 mysql";
# 输出显示: "php --> mysql", 则表示php和mysql连接成功
else
echo "php -|- mysql";
# 输出显示"php -|- mysql", 则表示php和mysql无法正常连接
mysql_close();
phpinfo();
# 显示php的信息测试页表示httpd和php连接成功, 不显示则表示二者没有正常连接
?>

通过访问httpd的默认页面查看其运行状态

+++++++++++++++++++

至此, php基于模块形式编译安装的LAMP平台已经搭建完成.

本人水平有限, 如有理解不当的地方, 请大家给予指正, 非常感谢!


新闻名称:编译安装LAMP--php模块方式构建LAMP
标题网址:http://pwwzsj.com/article/ijioce.html