前述:
本次源码编译安装LAMP平台架构在一台CentOs 7虚拟机完成(穿插叙述叙述mariadb在另一台主机上配置方法),php5以模块形式编译安装到httpd服务器上,httpd服务器Apace多路处理模块(MPM)采用prefork机制。
下面为安装所用的的以下软件叙述:
CentOS 7 | IP:172.16.49.2;Kernel:3.10.0-229.el7.x86_64 |
MariaDB | 通用二进制格式mariadb-5.5.46-linux-x86_64.tar |
httpd | 编译安装httpd-2.4.9.tar.bz2 |
php5 | 编译安装php-5.6.4.tar.bz2 |
xcache | 编译安装缓存插件xcache-3.2.0.tar.bz2 |
编译前需要安装编译环境,即两个包组:
[root@localhost~]# yum -y groupinstall "DevelopmentTools" "Server Platform Development"
安装的时候不同的软件可能依赖不同的安装包的开发环境,安装中需要
注意:任何一个程序包被编译操作依赖到时,需要安装此程序包的“开发”组件,其包名一般类似于name-devel-VERSION;
安装顺序:因为php以模块形式安装,必然依赖httpd,当在同一台主机上配置时依赖mysql,不同主机不依赖mysql
httpd ---> mariadb ---> php
参考文档(传送门):
php-xcache:php缓存扩展安装配置 | |
ariaDB通用二进制编译安装详解 | |
CentOS 6编译httpd-2.4.10 | |
LAMP概述 |
一、MariaDB通用二进制安装
1.创建数据库数据存放路径,更改目录权限
[root@localhost~]# mkdir /mysqldata
[root@localhost~]# useradd -r mysql
[root@localhost~]# chown mysql.mysql /mysqldata/
2.解压通用二进制包:mariadb-5.5.46-linux-x86_64.tar.gz
[root@localhosttmp]# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local
[root@localhosttmp]# cd /usr/local
[root@localhostlocal]# ln -sv mariadb-5.5.46-linux-x86_64/ mysql
3.初始化数据库
[root@localhostlocal]# chown -R .mysql mysql/
[root@localhostlocal]# cd mysql/
[root@localhostmysql]# scripts/mysql_install_db --user=mysql --datadir=/mysqldata
4.设置配置文件
[root@localhostmysql]# cp support-files/my-large.cnf /etc/my.cnf
[root@localhostmysql]# vim /etc/my.cnf
在[mysqld]添加如下指令:
datadir= /mysqldata
innodb_file_per_table= ON
skip_name_resolve= ON
5.启动服务配置
[root@localhostmysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhostmysql]# chkconfig --add mysqld
[root@localhostmysql]# chkconfig mysqld on
[root@localhostmysql]# chkconfig mysqld --list
[root@localhostmysql]# systemctl start mysqld
二、httpd2.4编译安装
1.安装编译依赖包组
[root@localhost ~]#yum install -y pcre-devel apr-devel apr-util-devel openssl-devel
2.编译安装httpd-2.4.9.tar.bz2
[root@localhosttmp]# tar xf httpd-2.4.9.tar.bz2
[root@localhosttmp]# cd httpd-2.4.9/
[root@localhosthttpd-2.4.9]# ./configure --prefix=/usr/local/apache24--sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib--with-pcre --with-apr=/usr --with-apr-util=/usr --enable-modules=most--enable-mpms-shared=all --with-mpm=prefork
[root@localhosthttpd-2.4.9]# make -j 4
[root@localhost httpd-2.4.9]# make install
3.手动指定启动脚本启动服务
[root@localhost ~]#/usr/local/apache24/bin/apachectl start
注意:本次没有进行开机启动配置,以及库、头文件和环境变量的指定等操作,启动的时候需要指定绝对路径启动
apachectl是编译安装后本安装包自带的启动bin文件
三、php-5.4编译安装
注意:编译安装成模块时候,会依赖httpd当前的MPM模式编译成模块,编译完成后无法更改
1.安装编译依赖包组
[root@localhosttmp]# yum install -y libxml2-devel libmcrypt-devel bzip2-devel
2.编译安装httpd-2.4.9.tar.bz2
[root@localhosttmp]# tar xf php-5.6.4.tar.xz
[root@localhosttmp]# cd php-5.6.4/
[root@localhostphp-5.6.4]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql--with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config--enable-mbstring --with-png-dir --with-jpeg-dir --with-freetype-dir--with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets--with-apxs2=/usr/local/apache24/bin/apxs --with-mcrypt--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
[root@localhostphp-5.6.4]# make -j 4
[root@localhostphp-5.6.4]# make install
.configure选项详解
--prefix=/usr/local/php | 指明安装位置 |
--with-mysql=/usr/local/mysql | 指明myql位置,RPM安装指明/usr即可 |
--with-openssl | 支持SSL加密机制 |
--with-mysqli=/usr/local/mysql/bin/mysql_config | 支持mysqli(mysql另一个访问接口) |
--enable-mbstring | 支持中文字符,多字节字符支持模块 |
--with-png-dir | 支持使用过png图片格式 |
--with-jpeg-dir | 支持使用过jpeg图片格式 |
--with-freetype-dir | 支持freetype字体格式 |
--with-zlib | 支持压缩 |
--with-libxml-dir=/usr | 支持分析xml |
--enable-xml | 支持xml格式 |
--enable-sockets | 支持套接字通信 |
--with-apxs2=/usr/local/apache24/bin/apxs | 编译成apache模块 |
--with-mcrypt | 支持加密库 |
--with-config-file-path=/etc | 指明安装配置文件位置 |
--with-config-file-scan-dir=/etc/php.d | 指明另外配置文件读取路径 |
--with-bz2 | 支持bz2格式压缩 |
说明:
1)支持apache的worker或event这两个MPM,编译时要使用--enable-maintainer-zts选项。
2)如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包
mysqlnd从php5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP5.4开始它就是默认设置了。
当mysql服务器和php不在一台主机上的时候可以在编译时添加(修改)如下部分选项:
#./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
3.php配置
[root@localhostphp-5.6.4]# cp php.ini-production /etc/php.ini
4.httpd和php模块连接配置
[root@localhostphp-5.6.4]# cd /etc/httpd24
[root@localhosthttpd24]# vim httpd.conf
增加或者修改以下内容:
AddType application/x-httpd-php .php 将.php文件识别为application的类型
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
[root@localhosthttpd24]# /usr/local/apache24/bin/apachectl stop
[root@localhosthttpd24]# /usr/local/apache24/bin/apachectl start
5.创建测试
四、xcache(缓存)编译安装
1.依赖包
#yum install php-devel
2.编译安装
#cd xcache-3.2.0
# phpize
#./configure --enable-xcache --with-php-config=/usr/bin/php-config
#make && make install
3.配置文件
#cp xcache.ini /etc/php.d/