CentOS6编译LAMP基于FPM模式的应用wordpress
CentOS6编译LAMP基于FPM模式的应用wordpress
引言:其实我们可以直接使用yum安装LAMP(Linux+Apache[httpd]+Mysql+PHP),比手动编译安装LAMP要简单的多,但在实际的生产环境中都会手动编译LAMP,这是为什么呢?是因为在centos系统中yum安装的httpd和php版本过旧,默认不支持fcgi协议和fpm机制,所以只能手动编译安装新版本的httpd和php了,下面来说一下使用手动编译安装LAMP有哪些优点:
- 方便扩展模块,如添加PHP的扩展模块、http扩展模块等,可根据实际需求进行配置;
- 可以自由的选择安装较适合的版本,系统自带的httpd、mysql或者PHP的版本可能较低不能满足某些应用需求;
- 可以以fpm的方式运行PHP,一般系统自带的PHP都是以httpd模块的形式运行的,若需要让PHP已fpm的方式运行,必须手动编译安装httpd和PHP;
编译安装前的准备:
软件版本
ls /root/lamp
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.28.tar.bz2
mariadb-5.5.57-linux-x86_64.tar.gz
php-5.6.31.tar.xz
wordpress-4.8.1-zh_CN.tar.gz
xcache-3.2.0.tar.gz
注意:一定要关闭防火墙和selinux策略
iptables -F 关闭防火墙
setenforce 0 关闭selinux策略
所有的软件包都准备好了,然后就开始编译安装lamp搭建wordpress了
(1)准备好编译安装的环境
yum install openss-devel expat-devel pcre-devel bzip2-devel libxml2-devel libmcrypt-devel -y
yum groupinstall "development tools"
(2)编译安装httpd2.4
1.
cd /root/lamp
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
2.
cp -av apr-1.6.2 httpd-2.4.28/srclib/apr
cp -av apr-util-1.6.0 httpd-2.4.28/srclib/apr-util
cd httpd-2.4.28
3.
./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
4.make -j 4 && make install
5.
cp /etc/init.d/httpd /etc/init.d/httpd24 做成服务脚本,将来httpd服务的名称就是httpd24,如果你的机器上/etc/init.d/httpd这个脚本文件,可以从其他机器上拷贝一份,也可以yum安装httpd会生成这个文件,然后再复制改名,再卸载yum安装的httpd.
vim /etc/init.d/httpd24 改成你自己指定的安装httpd的路径

6.
chkconfig --add httpd24
service httpd 24 开启httpd服务
ss -ntl 查看80端口是否打开
7.
vim /etc/profile.d/lamp.sh 添加PATH变量
PATH=/app/httpd24/bin:$PATH
. /etc/profile.d/lamp.sh使添加的PATH变量生效
Httpd编译安装结束
(3)二进制安装mariadb-5.5.57
1.
useradd -r -d /app/mysqldb -m -s /sbin/nologin mysql
2.
cd /root/lamp
tar xvf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/
3.
cd /usr/local
mv mariadb-5.5.57-linux-x86_64/ mysql (mariadb的数据库的目录已经生成,但是这个目录不符合要求,要求mariadb数据库必须放在mysql目录下,所以有两种方法解决,一是改名,将生成的mariadb数据库目录改为mysql,二是创建软链接,我们选择改名的方式)
4. 准备mysql的配置文件
cd /usr/local/mysql/support-files/
mkdir /etc/mysql
cp my-huge.cnf /etc/mysql/my.cnf
vim /etc/mysql/my.cnf

5.
scripts/mysql_install_db --user=mysql --datadir=/app/mysqldb (必须在/usr/local/mysql目录下,不然会报错)
6. 做成服务脚本,将来mysql服务的名字就叫做mysqld
cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld
service mysqld start 启动服务失败,报错提示这是因为没有数据库的日志文件
7.创建日志文件
touch /var/log/mysqld.log
chown mysql /var/log/mysqld.log (因为写数据库日志是以mysql的身份写的,所以要把日志文件的所属人改为mysql,否则mysql用户就没有权限写日志)
service mysqld start (再次启动服务成功)
ss -ntl (查看3306端口是否打开)
8.添加PATH变量
vim /etc/profile.d/lamp.sh
PATH=/app/httpd24/bin:/usr/local/mysql/bin:$PATH
. /etc/profile.d/lamp.sh
9. 运行mysql安全脚本
mysql_secure_installation
10.
mysql -uroot -pcentos
创建一个博客数据库,然后再创建一个管理该博客数据库的管理员,并授权
create database blogdb;
grant all on blogdb.* to 'wpadm'@'localhost' identified by 'centos';
数据库编译安装结束
(4)编译安装php-5.6.31
1.
cd /root/lamp
tar xvf php-5.6.31.tar.xz
2.
cd 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
3.
make -j 4 && make install
4.
cd php-5.6.31
cp php.ini-production /etc/php/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
cp /app/php/etc/php-fpm.conf.default /app/php/etc/php-fpm.conf
service php-fpm start
ss -ntl
php编译安装结束
(5).配置httpd配置文件支持php
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
测试
在/app/httpd24/htdocs下建一个index.php
vim index.php
<?php
phpinfo();
?>
然后再浏览器上访问192.168.10.186,成功

(6)布署wordpress
1.
cd /root/lamp
tar xvf wordpress-4.8.1-zh_CN.tar.gz
2.
rm -rf /app/httpd24/htdocs/*
cp wordpress/* /app/httpd24/htdocs/
3.
cd /app/httpd24/htdocs/
mv wp-config-sample.php wp-config.php
4.
vim wp-config.php

配置好之后,在浏览器上去访问


成功搭建博客

(7)支持多个虚拟主机
1.再创建一个数据库,用来存放另一个博客,接着创建一个管理该数据库的管理员并授权
mysql -uroot -pcentos
create database blogdb1;
grant all on blogdb1.* to 'wpadm1'@'localhost' identified by 'centos';
2.
mkdir /app/httpd24/htdocs2
cp /app/httpd24/htdocs/* /app/httpd24/htdocs2
vim wp-config.php

3.
vim /app/httpd24/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf 取消注释
删除下面两行
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
4.在httpd服务子置文件配置虚拟主机
vim /app/httpd24/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/app/httpd24/htdocs"
ServerName www.a.com
ErrorLog "logs/a.com-error_log"
CustomLog "logs/a.com-access_log" common
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
<directory /app/httpd24/htdocs>
require all granted
</directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/app/httpd24/htdocs1"
ServerName www.b.com
ErrorLog "logs/b.com-error_log"
CustomLog "logs/b.com-access_log" common
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs1/$1
<directory /app/httpd24/htdocs1>
require all granted
</directory>
</VirtualHost>
做完之后,再重启一下httpd服务
service httpd24 restart
5.windos系统上配置解析域名www.a.com,www.b.com
C:\Windows\System32\drivers\etc\hosts

6.浏览器上访问www.a.com,www.b.com
访问www.com



好了,看到这相信大家都知道如何搭建WordPress了,我们下期再见。
CentOS6编译LAMP基于FPM模式的应用wordpress的更多相关文章
- 编译安装基于 fastcgi 模式的多虚拟主机的wordpress和discuz的LAMP架构
目录 实现CentOS 7 编译安装基于 fastcgi 模式的多虚拟主机的wordpress和discuz的LAMP架构 准备环境: 准备软件版本: 主机名修改用以区分 数据库服务器 实现数据库二进 ...
- 在centos6上实现LAMP的FPM模式
原理 http使用一次编译法编译安装,php独立服务fpm实现. 软件版本 在本次实验中,我们需要用到的软件版本如下: apr-1.6.2 apr-util-1.6.0 httpd-2.4.28 ma ...
- 编译安装基于fastcgi模式的多虚拟主机的wordpress和discuz的LAMP架构
一.环境准备 两台主机: httpd+php(fastcgi模式) mariadb 服务器 软件版本: mariadb-10.2.40-linux-x86_64.tar.gz apr-1.7.0.ta ...
- 编译-LAMP基于fastcgi
前言 最近没更新新篇幅了,今天就来点干活,过多的也不说了下面着手干!干!干! 准备环境 centos7.5 apr-1.6.3.tar.gz apr-util-1.6.1.tar.gz h ...
- 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!
写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...
- struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb
在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 ...
- 公布一个基于 Reactor 模式的 C++ 网络库
公布一个基于 Reactor 模式的 C++ 网络库 陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice 2010 Aug 30 本文主要介绍 muduo 网 ...
- CentOS6编译安装php5.3
一.CentOS6编译安装php5.3 1.安装扩展 yum install -y openssl-devel traceroute libtool unzip gcc gcc-c++ autocon ...
- 构建一个简单的基于MVC模式的JavaWeb
零晨三点半了,刚刚几个兄弟一起出去吼歌,才回来,这应该是我大学第二次去K歌,第一次是大一吧,之后每次兄弟喊我,我都不想去,因为我还是很害怕去KTV,或许是因为那里是我伤心的地方,也或许是因为我在那里失 ...
随机推荐
- JavaSE(十)之Map总结
上一篇是总结了Collection接口的各种实现类,这一篇我将分享的是Map的总结,希望大家点评! 一.Map接口 1.1.为什么Collection不能满足集合的所有功能? Collection接口 ...
- hadoop源码import到eclipse工程
1.解压hadoop-1.1.2.tar.gz,重点在src文件夹 2.在eclipse中通过菜单栏创建一个java工程,工程名随便 3.在创建的工程上,点击右键,在弹出菜单中选择最后一项,在弹出窗口 ...
- MyBatis框架(三)动态SQL,分页,二进制存入数据库图片
一.动态sql语句,分页 1, <if>条件 <if test="key!=null"> 拼接sql语句 </if> 2, <choose ...
- SQLServer 自动循环归档分区数据脚本
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/表分区 概述 在很多业务场景下我们需要对一些记录量比较大的表进行分区,同时为了保证性能需要将一些旧的数据进行归档.在分区表很多的情 ...
- vue.js项目构建
这里构建的vue.js项目依赖node服务器运行. 项目搭建完整步骤: 安装node.js ,转至nodeJs网站http://nodejs.cn/ 下载nodeJs进行安装. 安装完毕检查nodeJ ...
- 关于js浮点数计算精度不准确问题的解决办法
今天在计算商品价格的时候再次遇到js浮点数计算出现误差的问题,以前就一直碰到这个问题,都是简单的使用tofixed方法进行处理一下,这对于一个程序员来说是及其不严谨的.因此在网上收集了一些处理浮点数精 ...
- spark与hive的集成
一:介绍 1.在spark编译时支持hive 2.默认的db 当Spark在编译的时候给定了hive的支持参数,但是没有配置和hive的集成,此时默认使用hive自带的元数据管理:Derby数据库. ...
- JSP入门2
1. CRUD是Create(创建).Read(读取).Update(更新)和Delete(删除)的缩写,一般应用有这四项也就足够了. 我们这里的例子是对联系人信息进行CRUD操作. 2. javab ...
- 51 nod 1097 拼成最小的数 思路:字符串排序
题目: 思路:1.以字符串输入这些整数. 2.对这些字符串排序,排序规则为尽量让能让结果变小的靠前. 代码中有注释,不懂的欢迎在博客中评论问我. 代码: #include <bits\stdc+ ...
- Redis info 参数详解
Redis Info 命令以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值. 通过给定可选的参数 section ,可以让命令只返回某一部分的信息: server : 一般 ...