在centos6上实现LAMP的FPM模式
原理
http
使用一次编译法编译安装,php
独立服务fpm实现。
软件版本
在本次实验中,我们需要用到的软件版本如下:
apr-1.6.2
apr-util-1.6.0
httpd-2.4.28
mariadb-5.5.57
php-5.6.31
wordpress-4.8.1
----博客搭建软件
xcache-3.2.0
----加速软件
我们先用rz
命令把所有的安装包上传至/root/src
目录下,以方便我们的实验。
所有的安装包全部在官网下载,下面附上网址:
httpd官网:http://httpd.apache.org/
apr官网:http://apr.apache.org/
mariadb官网:http://mariadb.org/
php官网:http://php.net/
wordpress官网:https://cn.wordpress.org/
xcache官网:http://xcache.lighttpd.net/
实验前准备
提前安装好软件包组及其相关的包:
yum groupinstall "development tools" -y
yum install openssl-devel \
expat-devel \
pcre-devel \
bzip2-devel \
libxml2-devel \
libmcrypt-devel -y
一共是1个包组,6个包哦~大家不要少安,不然会报错的诺。
其中:
openssl-devel
expat-devel
pcre-devel
http所依赖的包
bzip2-devel
libxml2-devel
libmcrypt-devel
php所依赖的包
注意:需epel扩展源
一、编译安装httpd2.4
1、解包解压缩
我们分别把apr-1.6.2
, apr-util-1.6.0
,httpd-2.4.28
这三个包解压缩:
tar xvf apr-1.6.2.tar.gz
tar xvf apr-util-1.6.0.tar.gz
tar xvf httpd-2.4.28.tar.bz2
然后,我们把apr-1.6.2/
和apr-util-1.6.0/
文件夹移动到httpd-2.4.28/
的指定文件夹中,并改名:
[root@centos6 src]# mv apr-1.6.2 httpd-2.4.28/srclib/apr
[root@centos6 src]# mv apr-util-1.6.0 httpd-2.4.28/srclib/apr-util
2、编译安装
准备工作都做好了,接下来就是编译安装了。
一样的,需要先进入到httpd-2.4.28/
这个目录下。由于代码很长,希望大家仔细仔细再仔细,或者像小编一样分行写:
[root@centos6 src]# cd httpd-2.4.28
[root@centos6 httpd-2.4.28]# ./configure --prefix=/app/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-included-apr \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
[root@centos6 httpd-2.4.28]# make -j 4 && make install
至此,我们的编译安装成功,接下来,我们要修改一些配置。
3、安装后的相关设置
1)修改PATH路径
[root@centos6 httpd-2.4.28]# vim /etc/profile.d/lamp.sh
PATH=/app/httpd24/bin:/usr/local/mysql/bin/:/app/php/bin/:$PATH
顺便把后边的mysql
和php
的也一起设置进去
接着,运行下面的命令让其生效:
[root@centos6 httpd-2.4.28]# . /etc/profile.d/lamp.sh
2)设置开机自启
我们拷贝一个服务脚本,并对其内容进行修改就可以了:
[root@centos6 httpd-2.4.28]# cp /etc/init.d/httpd /etc/init.d/httpd24
[root@centos6 httpd-2.4.28]# vim /etc/init.d/httpd24
文件里上面的内容不需要改动,我们只需要修改一下路径就可以了,也就是把
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
修改为:
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/app/httpd24/bin/apachectl
httpd=${HTTPD-/app/httpd24/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
然后保存退出就可以了。
接下来,就可以把这个服务添加到服务列表里了:
[root@centos6 init.d]# chkconfig --add httpd24
[root@centos6 init.d]# chkconfig httpd24 on
[root@centos6 init.d]# chkconfig --list httpd24
httpd24 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@centos6 init.d]# service httpd24 start
这样,我们的httpd2.4版本
就可以通过service
来控制了。
同时,我们要开启httpd服务。
至此,我们本步骤完成。
二、二进制安装mariadb-5.5.57
1、解包解压缩
tar xvfmariadb-10.2.9-linux-x86_64.tar.gz -C /usr/local/
因为我们是二进制安装,所以必须要指定解压缩的目录为/usr/local/
2、创建逻辑卷
首先,我们先添加一块硬盘,因为这个硬盘要存放数据库,所以尽量大一点,添加硬盘以后,需要输入命令来同步硬盘:
[root@centos6 src]# echo '- - -' > /sys/class/scsi_host/host2/scan
[root@centos6 src]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 3.7G 0 rom /mnt/boot
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 3.9G 0 part [SWAP]
└─sda3 8:3 0 195.8G 0 part /
sdb 8:16 0 200G 0 disk
如果上面的命令中host2
不能用的话就改成host0
。
然后,我们来创建逻辑卷
[root@centos6 src]# pvcreate /dev/sdb //创建pv
Physical volume "/dev/sdb" successfully created
[root@centos6 src]# vgcreate vg_mysqldb /dev/sdb //创建vg
Volume group "vg_mysqldb" successfully created
[root@centos6 src]# lvcreate -n lv_mysqldb -l +100%FREE vg_mysqldb //创建lv
Logical volume "lv_mysqldb" created.
[root@centos6 src]# mkfs.ext4 /dev/vg_mysqldb/lv_mysqldb -L /data/mysqldb //文件系统格式化
创建好了以后,我们来挂载:
[root@centos6 src]# mkdir /data/mysqldb -p //创建挂载点,就是存放数据库的地方
[root@centos6 src]# vim /etc/fstab //设置开机挂载,增加一行
/dev/vg_mysqldb/lv_mysqldb /data/mysqldb ext4 defaults,acl 0 0
[root@centos6 src]# mount -a //挂载
挂载完成以后,我们接着就可以创建用户了。
2、创建mysql用户
因为mysql用户是系统用户,所以我们创建的时候要加上-r
[root@centos7 src]# useradd -d /app/mysqldb -r -m -s /sbin/nologin mysql
-d 指定家目录
-r 创建系统用户
-m 系统用户时没有家目录的,该选项作用是强行指定家目录
-s 指定shell
创建用户以后,我们把/data/mysqldb/
的所属人换成mysql
[root@centos7 src]# chown mysql /data/mysqldb/
3、查看文件
我们使用cd /usr/local/
进入解开压缩包的目录,发现mariadb的目录名字不符合要求,所以我们可以直接修改名字,也可以创建一个软连接,创建软连接命令如下:
[root@centos7 mysql]# ln -s mariadb-10.2.8-linux-x86_64/ mysql
4、创建修改配置文件
进入mysql文件夹,查看support-files文件夹中的内容,发现里面有我们的配置文件,但是配置文件不应该在这个目录下,应该放在/etc/mysql/下,所以,我们要创建这个目录,并把配置文件复制进去,具体的操作如下:
[root@centos7 src]# cd /usr/local/mysql/
[root@centos7 mysql]# ls
bin include README-wsrep
COPYING INSTALL-BINARY scripts
COPYING.thirdparty lib share
CREDITS man sql-bench
data mysql-test support-files
EXCEPTIONS-CLIENT README.md
[root@centos7 mysql]# ls support-files/
binary-configure my-medium.cnf policy
magic my-small.cnf wsrep.cnf
my-huge.cnf mysqld_multi.server wsrep_notify
my-innodb-heavy-4G.cnf mysql-log-rotate
my-large.cnf mysql.server
[root@centos7 mysql]# mkdir /etc/mysql
[root@centos7 mysql]# cp support-files/my-huge.cnf /etc/mysql/my.cnf
接下来,我们来修改配置文件:
[root@centos7 mysql]# vim /etc/mysql/my.cnf
[mysqld]
datadir = /app/mysqldb //指定总目录,必须的
innodb_file_per_table = on //让每一个表数据库都是一个文件,方便管理
skip_name_resolve = on //忽略名字的反向解析,加快速度
5、执行脚本,创建系统数据库
首先,我们要确保我们在/usr/local/mysql
这个目录下,只能在这个目录下执行脚本:
[root@centos7 mysql]# cd /usr/local/mysql
[root@centos7 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
执行脚本完成后就会在/data/mysqldb/
生成mysql系统数据库
6、创建日志文件
[root@centos7 mysql]# touch /var/log/mysqld.log
[root@centos7 mysql]# chown mysql /var/log/mysqld.log
7、把服务脚本复制过去
[root@centos7 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@centos7 mysql]# chkconfig --add mysqld //设置服务在哪个运行级别,在哪个运行级别开启服务
[root@centos7 mysql]# chkconfig --list mysqld
复制完了以后,我们就可以开启服务了:
[root@centos7 mysql]# service mysqld start
因为我们提前创建了日志文件,所以我们的服务可以正常开启。
8、运行安全初始化脚本
我们在上个大步骤中,已经把所有的PATH变量都设置好了,所以现在我们可以直接运行我们的安全初始化脚本:
[root@centos7 mysql]# mysql_secure_installation
9、运行mysql,创建wordpress的数据库和管理员并授权
[root@centos6 mysql]# mysql -uroot -pcentos
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 5.5.57-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database blogdb;
Query OK, 1 row affected (0.03 sec)
MariaDB [(none)]> grant all on blogdb.* to 'wpadm'@'172.17.251.66' identified by 'centos';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit
Bye
这样的话,我们的数据库就安装完成。
三、安装php-5.6.31
1、解压缩
tar xvf php-5.6.31.tar.xz
2、进入目录进行编译安装
我们使用cd
命令进入该目录,然后对php进行编译安装:
[root@centos6 src]# cd php-5.6.31/
[root@centos7 php-5.6.31]# ./configure \
--prefix=/app/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 \
--enable-fpm \
--with-mcrypt \
--with-config-file-path=/etc/php/ \
--with-config-file-scan-dir=/etc/php.d \
--with-bz2
[root@centos7 5.6.31]# make -j 4 && make install
3、创建并编辑配置文件
首先,我们要复制配置文件到/etc
目录下:
[root@centos7 php-5.6.31]# mkdir /etc/php
[root@centos7 php-5.6.31]# cp php.ini-production /etc/php/php.ini
[root@centos7 php-5.6.31]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@centos7 php-5.6.31]# chmod +x /etc/init.d/php-fpm
记得一定要开启执行权限,不然这个服务打不开。
接着,我们来编辑php配置文件:
[root@centos6 php-5.6.31]# cd /app/php/etc/
[root@centos6 etc]# cp /app/php/etc/php-fpm.conf.default /app/php/etc/php-fpm.conf
[root@centos6 etc]# service php-fpm start
注意:在centos 7 中php-fpm.conf.default 和www.conf.default 这两个文件都需要cp,但centos 6把这两个文件合在php-fpm.conf.default 中了
接下来的这一步不用修改,如果你想根据自己的需要修改也是可以的:
[root@centos6 etc]# vim /app/php/etc/php-fpm.conf
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 5 //和pm.start_servers 一致
pid = /app/php/var/run/php-fpm.pid
四、修改http的主配置文件,让其支持php
[root@centos6 conf]# vim /app/httpd24/conf/httpd.conf
//取消两行对模块的注释,默认被注释了
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
//修改下面行
DirectoryIndex index.php index.html
//加下面四行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
至此,配置结束。
五、部署wordpress
1、解压缩并移动文件
首先,我们进行解压缩:
tar xvf wordpress-4.8.1-zh_CN.tar.gz
然后,把该文件夹中的文件全部移动到/app/httpd24/htdocs/
这个目录下:
[root@centos7 src]# cd wordpress/
[root@centos7 wordpress]# ls
[root@centos6 wordpress]# rm -rf /app/httpd24/htdocs/*
[root@centos7 wordpress]# mv * /app/httpd24/htdocs/
接着,我们进入/app/httpd24/htdocs/
这个文件夹,查看文件:
[root@centos7 wordpress]# cd /app/httpd24/htdocs/
[root@centos7 htdocs]# ls
a.php wp-blog-header.php wp-load.php
index.html wp-comments-post.php wp-login.php
index.php wp-mail.php license.txt
wp-config-sample.php wp-settings.php pma
wp-content wp-signup.php readme.html
wp-cron.php wp-trackback.php wp-activate.php
wp-includes xmlrpc.php wp-admin
wp-links-opml.php
我们可以看到这里面有一个wp-config-sample.php
文件,我们复制一份并改名,接着编辑:
[root@centos7 htdocs]# cp wp-config-sample.php wp-config.php
[root@centos7 htdocs]# vim wp-config.php
我们只需要修改四行的内容,也就是我们上一步中设置的数据库账号的相关内容:
/** WordPress数据库的名称 */
define('DB_NAME', 'blogdb');
/** MySQL数据库用户名 */
define('DB_USER', 'wpadm');
/** MySQL数据库密码 */
define('DB_PASSWORD', 'centos');
/** MySQL主机 */
define('DB_HOST', '172.17.251.66');
2、测试登录
修改完成之后,我们直接浏览器登录测试就可以了:
填写完相关的内容,然后点击左下角的安装wordpress
我们的博客就这么搭建好了,我们可以登录进去试试看:
3、 ab 测试性能
ab -c 10 -n 100 http://172.17.251.66/
速度大概在6.2左右。
六、编译安装xcache
1、解包解压缩
tar xvf xcache-3.2.0.tar.gz
2、编译安装
首先,我们进入该目录:
[root@centos6 src]# cd xcache-3.2.0
[root@centos6 xcache-3.2.0]# ls
AUTHORS Makefile.frag run-xcachetest
bin Makefile.frag.deps tests
ChangeLog mod_assembler THANKS
config.m4 mod_cacher util
config.w32 mod_coverager xcache
COPYING mod_decoder xcache.c
devel mod_disassembler xcache_globals.h
gen_structinfo.awk mod_encoder xcache.h
htdocs mod_optimizer xcache.ini
includes.c NEWS xcache-test.ini
INSTALL processor xcache-zh-gb2312.ini
lib README
我们在目录中并没有找到configure脚本,所以我们要进行生成:
[root@centos6 xcache-3.2.0]# yum -y install php-devel //安装包
[root@centos6 xcache-3.2.0]# phpize //生成configure脚本
[root@centos6 xcache-3.2.0]# ls
acinclude.m4 htdocs mod_optimizer
aclocal.m4 includes.c NEWS
AUTHORS INSTALL processor
autom4te.cache install-sh README
bin lib run-tests.php
build ltmain.sh run-xcachetest
ChangeLog Makefile.frag tests
config.guess Makefile.frag.deps THANKS
config.h.in Makefile.global util
config.m4 missing xcache
config.sub mkinstalldirs xcache.c
configure mod_assembler xcache_globals.h
configure.in mod_cacher xcache.h
config.w32 mod_coverager xcache.ini
COPYING mod_decoder xcache-test.ini
devel mod_disassembler xcache-zh-gb2312.ini
gen_structinfo.awk mod_encoder
接着,我们就可以进行编译安装了:
./configure --enable-xcache --with-php-config=/app/php/bin/php-config
make && make install
3、修改配置文件
首先,我们来复制一下文件:
[root@centos6 xcache-3.2.0]# mkdir /etc/php.d/
[root@centos6 xcache-3.2.0]# cp xcache.ini /etc/php.d/
[root@centos6 xcache-3.2.0]# ls /app/php/lib/php/extensions/
no-debug-non-zts-20131226
接着我们就可以对配置文件进行修改:
[root@centos6 xcache-3.2.0]# vim /etc/php.d/xcache.ini
因为是源码编译,xcache不是放在对应路径下,所以需要对其路径进行修改,也就是需要修改下面这一行:
extension = /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so
修改完成后,我们就可以启动服务了:
[root@centos6 xcache-3.2.0]# service php-fpm restart
启动服务以后,我们在对其进行性能测试:
ab -c 10 -n 100 http://172.17.251.66/
速度提升到了16,我们的加速器成功0.0
至此,我们的实验圆满完成。
在centos6上实现LAMP的FPM模式的更多相关文章
- CentOS6编译LAMP基于FPM模式的应用wordpress
CentOS6编译LAMP基于FPM模式的应用wordpress 引言:其实我们可以直接使用yum安装LAMP(Linux+Apache[httpd]+Mysql+PHP),比手动编译安装LAMP要简 ...
- 在 centos6 上安装 LAMP
LAMP 代表的是 Linux, Apache, MySQL, 以及 PHP. 第一步,安装 Apache 使用 yum 安装 sudo yum install httpd 启动 httpd 服务 ...
- 在centos6上实现编译安装lamp和wordpress,并编译xcache
author:JevonWei 版权声明:原创作品 软件环境: centos6.9 httpd-2.4.27.tar.bz2 apr-1.5.2.tar.bz2 apr-util-1.5.4.tar. ...
- centos6上使用fpm打python2.7 rpm包并兼容python2.6
centos6上使用fpm打python2.7 rpm包并兼容python2.6 作者 运维小兵_加油 关注 2016.09.22 00:28 字数 501 阅读 45评论 0喜欢 1 工作中我们常常 ...
- CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin
原文 CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin 发表于 2014-11-02 作者 Haoxian Zeng 更新于 2014-12-12 之前根据在 Lin ...
- [svc]centos6上部署openvpn+gg二步认证
最近又发现个新的vpn: wireguard 为了满足员工在家办公的需求.需要 openvpn+gg方案 在centos6上部署openvpn 参考 1.安装前准备 wget -O /etc/yum. ...
- 在 CentOS6 上安装 GraphicsMagick-1.3.30
在 CentOS6 上安装 GraphicsMagick-1.3.30 1.简介: 1.1.在介绍 GraphicsMagick 前我们不得不先介绍下 ImageMagick: ImageMagick ...
- 在Ubuntu上安装LAMP服务器
1.安装Ubuntu上安装LAMP apt-get install lamp-server^ 2.安装过程中设置MySql密码 3.测试 创建index.php var/www/html/index. ...
- CentOS6上无法启动NFS服务
CentOS6上无法启动NFS服务 1.系统环境 物理机:Windows 7(32位)旗舰版 虚拟机:CentOS 6.5 2.问题描述 安装好nfs应用程序之后,打算启动nfs服务,却出现以下的报错 ...
随机推荐
- 201521123057 《Java程序设计》第13周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...
- 201521123030 《Java程序设计》 第13周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...
- linux系统命令<一>----关机重启
1.shutdown shutdown -h now 立刻关机 shutdown -h 20:00 20:00关机 shutdown -h +10 十分钟后关机 shutdown -r ...
- Project Euler:99 Largest exponential C++
Comparing two numbers written in index form like 211 and 37 is not difficult, as any calculator woul ...
- Shiro第三篇【授权、自定义reaml授权】
Shiro授权 上一篇我们已经讲解了Shiro的认证相关的知识了,现在我们来弄Shiro的授权 Shiro授权的流程和认证的流程其实是差不多的: Shiro支持的授权方式 Shiro支持的授权方式有三 ...
- 《Head First Java》读书笔记(1) - Java语言基础
<Head First Java>(点击查看详情) 1.写在前面的话 这本书的知识点说实话感觉有点散乱,但是贵在其将文字转换成了生动和更容易接受的图片,大量的比喻让人感受到了知识点的有趣之 ...
- Spring - lookup-method方式实现依赖注入
引言 假设一个单例模式的bean A需要引用另外一个非单例模式的bean B,为了在我们每次引用的时候都能拿到最新的bean B,我们可以让bean A通过实现ApplicationContextWa ...
- Oracle日期时间操作大全
本文出自:http://www.cnblogs.com/hl3292/archive/2010/11/03/1868159.html oracle sql日期比较: 共三部分: 第一部分:oracle ...
- Hibernate @Embeddable注释
在hibernate中实现自定义类型,只要实现UserType接口即可或者以Component的形式提供.JPA的@Embedded注释可以在你的Entity中使用一般的Java对象,此对象需要用@E ...
- [python学习笔记] python程序打包成exe文件
安装 pyinstaller pip3 install pyinstaller 命令 pyinstaller -F -w -i ../ui/icon.ico --clean ../Login.py 参 ...