设为首页 收藏本站
查看: 1215|回复: 0

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

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-2 09:16:15 | 显示全部楼层 |阅读模式
本文主要描述基于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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#####
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, 修改以下字段内容(修改内容应该与本次编译时的参数相匹配)
1
2
3
4
5
6
7
8
9
#####
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
添加如下内容: <h1>working...</h1>
通过浏览器访问本地主机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目录中
[iyunv@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
#####
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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, 添加如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$link = mysql_connect('localhost','root','mysqladmin');
# 指定登录mysql的用户名为root@localhost, 密码为mysqladmin
if ($link)
echo "php --> mysql";
# 输出显示: "php --> mysql", 则表示php和mysql连接成功
else
echo "php -|- mysql";
# 输出显示"php -|- mysql", 则表示php和mysql无法正常连接
mysql_close();
phpinfo();
# 显示php的信息测试页表示httpd和php连接成功, 不显示则表示二者没有正常连接
?>



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

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


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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-133859-1-1.html 上篇帖子: lamp 模块化+vsftd+samba 下篇帖子: LNMP - nginx用户认证
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表