CentOS6编译LAMP基于FPM模式的应用wordpress

时间:2022-10-15 17:46:24

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的路径

CentOS6编译LAMP基于FPM模式的应用wordpress

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

CentOS6编译LAMP基于FPM模式的应用wordpress

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,成功

CentOS6编译LAMP基于FPM模式的应用wordpress

(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

CentOS6编译LAMP基于FPM模式的应用wordpress

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

CentOS6编译LAMP基于FPM模式的应用wordpress

CentOS6编译LAMP基于FPM模式的应用wordpress

成功搭建博客

CentOS6编译LAMP基于FPM模式的应用wordpress

(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

CentOS6编译LAMP基于FPM模式的应用wordpress

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

CentOS6编译LAMP基于FPM模式的应用wordpress

6.浏览器*问www.a.com,www.b.com

访问www.com

CentOS6编译LAMP基于FPM模式的应用wordpress

访问www.b.com

CentOS6编译LAMP基于FPM模式的应用wordpress

CentOS6编译LAMP基于FPM模式的应用wordpress

好了,看到这相信大家都知道如何搭建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. 编译-LAMP基于fastcgi

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

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

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

  5. struts1&colon;&lpar;Struts重构&rpar;构建一个简单的基于MVC模式的JavaWeb

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

  6. 公布一个基于 Reactor 模式的 C&plus;&plus; 网络库

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

  7. CentOS6编译安装php5&period;3

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

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

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

  9. 在centos6编译安装http-2&period;4

    在centos6 编译安装httpd-2.4 安装httpd-2.4 Ü 依赖于apr-1.4+, apr-util-1.4+, [apr-iconv] Ü apr: : apache portabl ...

随机推荐

  1. Eclipse部署Maven web项目到tomcat服务器时,没有将lib下的jar复制过去的解决办法

    我们在做web开发是,经常都要在eclipse中搭建web服务器,并将开发中的web项目部署到web服务器进行调试,在此,我选择的是tomcat服务器.之前部署web项目到tomcat进行启动调试都很 ...

  2. 关于怎样解决eclipse打开时出现的Failed to load the JNIshared library亲测有效

    之前一直可以正常使用eclipse但是当我装了Oracle后打开后就出现了Failed to load the JNIshared library(下面还出现了一个jvm.dll的文件路径),当时就蒙 ...

  3. 为git配置ssh

    git clone有两种方式,一种是http,一种是ssh. 配置ssh的好处是:在每次push代码的时候不需要输入密码. bash上生成秘钥: ssh-keygen -t rsa -C " ...

  4. iOS 退出应用程序

    退出应用程序,方法很简单,只是动画效果没有那么好. - (void)exitApplication { AppDelegate *app = [UIApplication sharedApplicat ...

  5. hive on spark的安装及问题

    配置hive hive-site <property> <name>hive.metastore.uris</name> <value>thrift:/ ...

  6. &OpenCurlyDoubleQuote;军装照”背后——天天P图如何应对10亿流量的后台承载。

    WeTest 导读 天天P图"军装照"活动交出了一份10亿浏览量的答卷,一时间刷屏朋友圈,看到这幕,是不是特别想复制一个如此成功的H5?不过本文不教你如何做一个爆款H5,而是介绍天 ...

  7. Mysql Index extends优化

    Innodb通过自动把主键列添加到每个二级索引来扩展它们: CREATE TABLE t1 ( i1 , i2 , d DATE DEFAULT NULL, PRIMARY KEY (i1, i2), ...

  8. Android的WebView调试工具(无需Fan墙,可同时调试多个设备,永不过期)

    缘起 前端开发离不开Chrome的开发者工具,尤其是调试Android WebView时.然而,如果使用chrome://Inspect的方法,国内的开发者会惊奇地发现“空白啊”!为此,我发布过这个离 ...

  9. jsp 出现cannot be resolved to a type问题解决办法

    (1)检查<%@ page import>是否导入了相关的包.若是没有则需导入 (2)若导入相应的包后问题仍然存在则需创建相关的servlet

  10. python操作oracle数据库-查询

    python操作oracle数据库-查询 参照文档 http://www.oracle.com/technetwork/cn/articles/dsl/mastering-oracle-python- ...