在CentOS6上编译安装实现LAMP(php-modules)+phpMyAdmin安装过程全记录

php与apache协作有三种模式:CGI、modules、FastCGI。
  在CGI模式下,用户请求php文件时,apache会启动响应进程,调用php处理器处理请求,然后将结果返回给客户端。用户响应及处理由前端apache服务器完成;
  在modules模式下,php解析器作为apache的一个模块,php处理器与web服务器一起运行处理用户请求。用户响应由apache处理,请求处理由apache与php处理器协同完成;
  在fastcgi模式下,apache调用proxcy模块,发挥代理作用,直接将用户请求交由后端的php处理器(php-fpm)处理,然后将从后端php-fpm传来的处理结果返回给用户。用户响应由apache处理,请求处理php-fpm完成;

本文档演示php以modules模式工作的LAMP。
安装流程:httpd--->mariadb--->php--->phpMyadmin--->Xcache

时间:2017年9月24日

一、软件环境:

IP:192.168.1.67;
Hostname:centos69-2.surmount.net;
Linux:CentOS release 6.9 (Final);
Apache:httpd-2.4.27
MariaDB:mariadb-5.5.57
PHP:php-5.6.31
其他:apr-1.6.2;apr-util-1.6.0;phpMyAdmin-4.7.4-all-languages;xcache-3.2.0

二、LAMP搭建:

2-1:环境准备:

2-1-1:配置网络yum源:
# wget -O /etc/yum.repos.d/CentOS-Base-Ali.repo http://mirrors.aliyun.com/repo/Centos-6.repo
# sed -i ‘s/$releasever/6/g‘ /etc/yum.repos.d/CentOS-Base-Ali.repo

2-1-2:配置epel源:
# vim /etc/yum.repos.d/epel.repo
[epel]
name=epel
baseurl=https://mirrors.ustc.edu.cn/epel/6Server/x86_64/
gpgcheck=0
enable=1

2-1-3:配置服务器软件环境:
# yum groupinstall "Development Tools" "Server Platform Development" -y

2-2:安装及配置Apache:

2-2-1:解决httpd依赖关系,编译安装apr及apr-util:
# tar xf apr-1.6.2.tar.bz2
# cd apr-1.6.2
# ./configure --prefix=/usr/local/apr
# make -j 2 && make install

# tar xf apr-util-1.6.0.tar.bz2
# cd apr-util-1.6.0
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
......
xml/apr_xml.c && touch xml/apr_xml.lo
xml/apr_xml.c:35:19: error: expat.h: No such file or directory
make[1]: *** [xml/apr_xml.lo] Error 1 make[1]: *** Waiting for unfinished jo
......
--->报错后,分析可能缺少expat的开发库,安装expat-devel软件包后重新编译成功。
# yum install expat-devel -y
# rm -rf apr-util-1.6.0
# tar xf apr-util-1.6.0.tar.bz2
# cd apr-util-1.6.0
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make -j 2 && make install

--->附:apache官方对APR的介绍:
The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementations. The primary goal is to provide an API to which software developers may code and be assured of predictable if not identical behaviour regardless of the platform on which their software is built, relieving them of the need to code special-case conditions to work around or take advantage of platform-specific deficiencies or features.

2-2-2:安装httpd其他依赖软件包及需要用的软件包:
# yum install pcre-devel httpd -y
--->pcre-devel提供正则模式匹配库,httpd只为提供httpd启动脚本模板,用完后删除。

2-2-3:编译安装apache:
# tar xf httpd-2.4.27.tar.bz2
# cd httpd-2.4.27
# ./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 -j 2 && make install

--->MPM模块知识补充:
(1)构建MPM为静态模块:
在全部平台中,MPM都可以构建为静态模块。在构建时选择一种MPM,链接到服务器中。如果要改变MPM,必须重新构建。为了使用指定的MPM,请在执行configure脚本时,使用参数 --with-mpm=NAME。NAME是指定的MPM名称。编译完成后,可以使用 ./httpd -l 来确定选择的MPM。此命令会列出编译到服务器程序中的所有模块,包括MPM。
(2)构建 MPM 为动态模块:
在Unix或类似平台中,MPM可以构建为动态模块,与其它动态模块一样在运行时加载。构建MPM为动态模块允许通过修改LoadModule指令内容来改变MPM,而不用重新构建服务器程序。在执行configure脚本时,使用--enable-mpms-shared选项即可启用此特性。当给出的参数为all时,所有此平台支持的MPM模块都会被安装。还可以在参数中给出模块列表。默认MPM,可以自动选择或者在执行configure脚本时通过--with-mpm选项来指定,然后出现在生成的服务器配置文件中。编辑LoadModule指令内容可以选择不同的MPM。

2-2-4:为httpd2.4提供启停脚本:
# cd /etc/rc.d/init.d
# cp httpd httpd24
# vim httpd24
......
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
......
pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
......
# chkconfig --add httpd24
# chkconfig --list | grep httpd24

2-2-5:配置apache:
# httpd -t
--->注:此语法检测的为rpm包安装的httpd,非编译安装的httpd。
# vim /etc/profile.d/httpd.sh
export PATH=/usr/local/apache/bin:$PATH
# . /etc/profile.d/httpd.sh
# httpd -t
# hash
hits command
1 /usr/local/apache/bin/httpd
--->注:此语法检测编译安装的httpd。
# vim /etc/httpd24/httpd.conf
......
ServerName centos69.surmount.net:80
......
LoadModule deflate_module modules/mod_deflate.so
.....
--->修改主机名,启用deflate模块(作用:允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽。),其他暂时保持默认。
# httpd -t

2-2-6:启动apache、访问测试:
# /etc/init.d/httpd24 start
# ss -tanl
# ps -ef | grep httpd
root 31142 1 0 22:46 ? 00:00:00 /usr/local/apache/bin/httpd
daemon 31144 31142 0 22:46 ? 00:00:00 /usr/local/apache/bin/httpd
# httpd -M | grep event
mpm_event_module (shared)
--->event模块已启动
http://192.168.1.69
It works!
# yum remove httpd -y
--->配置完成,删除使用完毕的httpd软件包。

2-3:安装及配置MariaDB:

2-3-1:准备数据存储的文件系统:
# fdisk /dev/sdb
n--->p--->1--->Enter--->+2G--->t--->8e--->w
# partx -a /dev/sdb
# yum install lvm2 -y
# pvcreate /dev/sdb1
# vgcreate dbvg /dev/sdb1
# lvcreate -L 2G -n dblv dbvg
# yum install xfsprogs -y
# modprobe xfs
# modinfo xfs
# mkfs.xfs /dev/dbvg/dblv
# mkdir -pv /dbdata
# vim /etc/fstab
......
/dev/dbvg/dblv /dbdata xfs defaults 0 0
# mount -a
--->划分一个2GB的分区,创建lv,便于扩展,格式化为xfs文件系统,设置开机自动挂载,用于存储数据。

2-3-2:创建数据库用户:
# mkdir -pv /dbdata/data
# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin -M -d /dbdata/data mysql
# chown -R mysql:mysql /dbdata/data/

2-3-3:初始化安装MariaDB:
# tar xf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local
# cd /usr/local/
# ln -sv mariadb-5.5.57-linux-x86_64 mysql
# cd mysql
# chown -R root:mysql /usr/loca/mysql/*
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/dbdata/data

2-3-4:为MariaDB提供启停脚本:
# ls /dbdata/data/
# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld

2-3-5:配置MariaDB:
# mkdir -pv /etc/mysql
# cp /usr/local/mysql/support-files/my-large.cnf /etc/mysql/my.cnf
# vim /etc/mysql/my.cnf
......
thread_concurrency = 8
datadir = /dbdata/data
innodb_file_per_table = on
skip_name_resolve = on
......
--->thread_concurrency的值为CPU个数的2倍;/dbdata/data为数据文件存储的位置;启用InnoDB引擎独立表空间;跳过域名反解。

2-3-6:启动MariaDB,设置DB的root用户密码:
# /etc/init.d/mysqld start
# /usr/local/mysql/bin/mysql
MariaDB [(none)]> use mysql
MariaDB [mysql]> UPDATE user SET password=PASSWORD(‘jingpei‘) WHERE User=‘root‘;
MariaDB [mysql]> SELECT User,Host,Password FROM user;
MariaDB [mysql]> DROP USER ‘‘@‘localhost‘;
MariaDB [mysql]> DROP USER ‘‘@‘centos69-2.surmount.net‘;
MariaDB [mysql]> FLUSH PRIVILEGES;

2-3-7:导出man手册文件、头文件、输出库文件、路径:
# vim /etc/man.config
......
MANPATH /usr/local/mysql/man
--->输出man手册至man命令的查找路径;

# ln -sv /usr/local/mysql/include/mysql /usr/include/mysql
--->输出头文件至系统头文件路径/usr/include;

# echo ‘/usr/local/mysql/include‘ > /etc/ld.so.conf.d/mysql.conf
# ldconfig
--->输出mysql的库文件给系统库查找路径;

# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin/:$PATH
# source /etc/profile.d/mysql.sh
--->修改PATH环境变量,让系统可以直接使用mysql的相关命令;

2-4:安装及配置PHP(PHP为apache的模块):

2-4-1:安装PHP依赖的软件包:
# yum install bzip2-devel -y

2-4-2:编译安装PHP:
# tar xf php-5.6.31.tar.bz2
# cd php-5.6.31
# ./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
......
configure: error: xml2-config not found. Please check your libxml2 installation.
--->出现一个error,分析可能是缺失libxml2-devel软件包:
# yum install libxml2-devel -y
# ./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
......
libtool: warning: remember to run ‘libtool --finish /root/sources/php-5.6.31/libs‘
--->出现一个warning:
# make && make install

2-4-3:为php提供配置文件:
# cp php.ini-production /etc/php.ini
--->说明:
1、这里为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项。
2、如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。
# ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd

2-4-4:配置apache,使其支持php:
# cd /etc/httpd24/
# cp httpd.conf{,.bak}
# vim httpd.conf
......
LoadModule php5_module modules/libphp5.so
.....
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
......
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
......
# /etc/init.d/httpd24 restart
# httpd -M | grep php
php5_module (shared)

2-4-5:建立php页面,并测试php与DB的连接:
# vim /usr/local/apache/htdocs/index.php
<?php
$link = mysql_connect(‘localhost‘, ‘root‘, ‘jingpei‘);
if (!$link)
{
die(‘Could not connect: ‘ . mysql_error());
}
echo ‘Connected successfully‘;
mysql_close($link);
phpinfo()
?>

2-4-6:访问测试:
http://192.168.1.67/index.php
Connected successfully
PHP Version 5.6.31

三、安装phpMyAdmin:

3-1:phpMyAdmin简介:
phpMyAdmin,是MySQL或MariaDB数据库的GUI管理工具,以php为基础,以web为工作形式。

3-2:phpMyAdmin安装:
# unzip phpMyAdmin-4.7.4-all-languages.zip
# mv phpMyAdmin-4.7.4-all-languages /usr/local/apache/htdocs/pma
# cd /usr/local/apache/htdocs/pma
# cp config.sample.inc.php config.inc.php
# vim config.inc.php
......
$cfg[‘blowfish_secret‘] = ‘1qazxsw23edcvfr45tgbnhy67ujm‘;
......

3-3:访问测试:
http://192.168.1.67/pma

四、安装xcache,为php加速:

4-1:安装前压力测试:
# ab -c 20 -n 100 http://192.168.1.67/pma/index.php
--->记录每秒响应次数,便于对比。

4-2:安装及配置xcache:
# tar xf xcache-3.2.0.tar.bz2
# cd xcache-3.2.0
# /usr/local/php/bin/phpize
# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
# make && make install
......
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
# mkdir -pv /etc/php.d
# cp /root/sources/xcache-3.2.0/xcache.ini /etc/php.d/
# vim /etc/php.d/xcache.ini
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so
......
xcache.admin.enable_auth = off
# /etc/init.d/httpd24 restart
http://192.168.1.67/index.php
--->在打开的页面里找到xcache功能。

4-3:安装后压力测试及对比
--->测试环境:
CPU:Intel(R) Core(TM) i3-4160 CPU @ 3.60GHz
内存:512MB
# ab -c 20 -n 100 http://192.168.1.67/pma/index.php
......
Requests per second: 49.72 [#/sec] (mean)
......
# ab -c 20 -n 500 http://192.168.1.67/pma/index.php
......
Requests per second: 195.00 [#/sec] (mean)

--->经多次压力测试比较,大约提高3-4倍响应速度。

时间: 2024-10-14 07:33:36

在CentOS6上编译安装实现LAMP(php-modules)+phpMyAdmin安装过程全记录的相关文章

C#打包制作安装程序过程全记录

该文是根据网上的文章并结合自己实际打包的过程而整理的. 开发平台:VisualStudio2005中文版. 步骤如下: 1. 创建一个安装向导项目或安装部署项目 新建项目-〉其他项目类型-〉安装与部署-〉安装向导(或安装部署),如命名为setup. 2. 将要打包的项目导入到这个安装项目中,有两种方式:   第一种,自动方式,在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目,这样就会把这个项目添加到该解决方案中来,   然后在安装项目setup上右击-〉添加-〉项目输出-〉主输出,在项

内存数据库Timesten安装过程全记录

[[email protected] timesten]# su - tt [[email protected] ~]$ cd /timesten/linux8664/ [[email protected] linux8664]$ ls 3rdparty  doc  install.pl  LINUX8664  README.html  setup.sh  uninst.sh [[email protected] linux8664]$ ./setup.sh WARNING: You are r

CentOS 6.5系统使用yum方式安装LAMP环境和phpMyAdmin详细过程

介绍如何在CentOs6.2下面使用YUM配置安装LAMP环境,一些兄弟也很喜欢使用编译的安装方法,个人觉得如果不是对服务器做定制,用yum安装稳定简单,何必去download&make&make install呢. Step1. 为centos配置rpmforge及epel源.centos官方的源其实也够用,不过像php的一些扩展如php-mcrypt在官方源中并没有.rpmforge源可以在 http://pkgs.repoforge.org/rpmforge-release/中下载安

CentOS6上编译安装ZABBIX 3.0

0x00  实验环境 系统:CentOS-6.8-x86_64 httpd:2.4.20 mysql:5.6.31 php:5.6.22 IP:10.0.0.4 0x01  编译安装zabbix3.0 1.下载zabbix源码包 [[email protected] src]# cd /usr/local/src/ [[email protected] src]# wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Late

在CentOS7上通过RPM安装实现LAMP+phpMyAdmin过程全记录

时间:2017年9月20日 一.软件环境: IP:192.168.1.71 Hostname:centos73-2.surmount.net Linux:CentOS Linux release 7.3.1611 (Core) Apache:httpd-2.4.6 Mysql:Ver 15.1 Distrib 5.5.52-MariaDB PHP:初始用ISO光盘yum源安装的版本为php-5.4.16.在后续安装phpMyAdmin-4.7.4时报错,然后按提示升级为php56w-5.6.31

LAMP详解之lamp(modules)安装

大纲: 1.  LAMP概念 2.  LAMP的原理 3.  LAMP的实现 一.LAMP的概念  LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库(mariadb),Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,LAMP具有通用.跨平台.高性能.低价格的优势,因此LAMP无论是性能.质量还是价格都是

源码编译mysql 5.5+ 安装过程全记录

前言:从mysql 5.5版本开始,mysql源码安装开始使用cmake了,编译安装跟以前的版本有点不一样了. 一,安装步骤: 1.安装前准备工作 a.下载mysql源代码包,到mysql下载页面选择MYSQL Community Serve Source Code 版本 注意:不要选择Linux-Generic版本,此版本为已经编译好的二进制版本 b.检查本机Linux是否已安装好make,bison,cmake,gcc-c++,ncurses,如果尚未安装,先安装以上包,安装方法如下: 注意

【转】Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程

原文网址:http://jileniao.net/linux-android-building.html sublime text让我伤心.本来很信任sublime text的自动保存功能,之前使用一直很给力的,但这次让我伤心欲绝啊. 关于Linux(ubuntu14.04)上编译Android源码的环境搭建详细过程都是在sublime text中编辑好的,无奈,这次的数据丢失让我不得不重新来回想手打一次了.可能很多细节问题,这次重新编辑文章时不会记得那么清晰了,还请有问题的朋友在下面留言给我就

专题:Windows编译x264、SDL、faac、ffmpeg过程

Windows上编译ffmpeg完整过程,包括编译x264.SDL.faac.在Windows上编译ffmpeg需要用MinGW+msys,本专题用于记录编译过程中遇到的各种问题及解决方法,转载请注明出处: 一.下载准备 准备编译过程所需的工具和源码. (1). MinGW http://sourceforge.net/projects/mingw/files/  MSYS http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe (2). Y