重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文主要描述基于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
添加如下内容:
通过浏览器访问本地主机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平台已经搭建完成.
本人水平有限, 如有理解不当的地方, 请大家给予指正, 非常感谢!