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

访问www.b.com

好了,看到这相信大家都知道如何搭建WordPress了,我们下期再见。

CentOS6编译LAMP基于FPM模式的应用wordpress的更多相关文章

  1. 编译安装基于 fastcgi 模式的多虚拟主机的wordpress和discuz的LAMP架构

    目录 实现CentOS 7 编译安装基于 fastcgi 模式的多虚拟主机的wordpress和discuz的LAMP架构 准备环境: 准备软件版本: 主机名修改用以区分 数据库服务器 实现数据库二进 ...

  2. 在centos6上实现LAMP的FPM模式

    原理 http使用一次编译法编译安装,php独立服务fpm实现. 软件版本 在本次实验中,我们需要用到的软件版本如下: apr-1.6.2 apr-util-1.6.0 httpd-2.4.28 ma ...

  3. 编译安装基于fastcgi模式的多虚拟主机的wordpress和discuz的LAMP架构

    一.环境准备 两台主机: httpd+php(fastcgi模式) mariadb 服务器 软件版本: mariadb-10.2.40-linux-x86_64.tar.gz apr-1.7.0.ta ...

  4. 编译-LAMP基于fastcgi

    前言 最近没更新新篇幅了,今天就来点干活,过多的也不说了下面着手干!干!干! 准备环境 centos7.5 apr-1.6.3.tar.gz  apr-util-1.6.1.tar.gz      h ...

  5. 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!

    写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...

  6. struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb

    在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 ...

  7. 公布一个基于 Reactor 模式的 C++ 网络库

    公布一个基于 Reactor 模式的 C++ 网络库 陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice 2010 Aug 30 本文主要介绍 muduo 网 ...

  8. CentOS6编译安装php5.3

    一.CentOS6编译安装php5.3 1.安装扩展 yum install -y openssl-devel traceroute libtool unzip gcc gcc-c++ autocon ...

  9. 构建一个简单的基于MVC模式的JavaWeb

    零晨三点半了,刚刚几个兄弟一起出去吼歌,才回来,这应该是我大学第二次去K歌,第一次是大一吧,之后每次兄弟喊我,我都不想去,因为我还是很害怕去KTV,或许是因为那里是我伤心的地方,也或许是因为我在那里失 ...

随机推荐

  1. Html在线编辑器--基于Jquery的xhEditor轻量级编辑器

    xhEditor V1.2.2 下载地址 开源中国社区: http://www.oschina.net/p/xheditor xhEditor是一个基于jQuery开发的简单迷你并且高效的可视化XHT ...

  2. Apache Spark 2.2.0 中文文档 - Spark 编程指南 | ApacheCN

    Spark 编程指南 概述 Spark 依赖 初始化 Spark 使用 Shell 弹性分布式数据集 (RDDs) 并行集合 外部 Datasets(数据集) RDD 操作 基础 传递 Functio ...

  3. Spark任务流程笔记

    Spark学习笔记总结 02. Spark任务流程 1. RDD的依赖关系 RDD和它依赖的父RDD(s)的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide de ...

  4. Akka(27): Stream:Use case-Connecting Slick-dbStream & Scalaz-stream-fs2

    在以前的博文中我们介绍了Slick,它是一种FRM(Functional Relation Mapper).有别于ORM,FRM的特点是函数式的语法可以支持灵活的对象组合(Query Composit ...

  5. React获得真实的DOM操作

    真实的DOM操作 ------------------------------------------------------------------------------------------- ...

  6. 51nod 1103 N的倍数 思路:抽屉原理+前缀和

    题目: 这是一道很神奇的题目,做法非常巧妙.巧妙在题目要求n个数字,而且正好要求和为n的倍数. 思路:用sum[i]表示前i个数字的和%n.得到sum[ 1-N ]共N个数字. N个数字对N取模,每个 ...

  7. Vue状态管理vuex

    前面的话 由于多个状态分散的跨越在许多组件和交互间各个角落,大型应用复杂度也经常逐渐增长.为了解决这个问题,Vue提供了vuex.本文将详细介绍Vue状态管理vuex 引入 当访问数据对象时,一个 V ...

  8. Free Goodies UVA - 12260 贪心

      Free Goodies Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu [Submit ...

  9. S2_OOP第三章

    第一章 多态 概念 多态是具有表现多种型生态的能力的特征,同一个实现接口,使用不同的实例而执行不同的操作 子类转换父类(向上转型) 用父类接受子类,向上转型 向上转型的规则: 讲一个父类的引用志向一个 ...

  10. 基于nginx的虚拟主机的配置

    安装pcre tar -xvf pcre-8.32.tar.gz cd pcre-8.32 ./configure make;make install 安装nginx 首先创建一个nginx用户,以n ...