lamp+nfs搭建wordpress

一、前言

lamp是大多上公司常用的架构,本文将针对分离式的lamp+nfs来搭建一个简单的wordpress网站。

二、架构图

1.png

三、基本实现过程

3.1:dns搭建

由于这这是一个实验,故使用yum搭建dns服务器

yum install -y bind

配置如下

dns主配置文件

blob.png

dns辅助配置文件

blob.png

zone文件

blob.png

对所有服务器设置dns

blob.png

3.2:httpd服务器搭建

采用源码包编译安装,其中web1和web2搭建方式一致,故不啰嗦再贴图

安装一些必须软件

yum groupinstall -y  "Development tools"  “Server Platform Development”    #安装一些必须的软件包
cd apr-1.5.0
./configure --prefix=/data/apr                                                        #编译安装apr
make && make install
cd ../apr-util-1.5.3    
./configure --prefix=/data/apr-util --with-apr=/data/apr                            #编译安装apr-util
make && make install

编译安装httpd

./configure --prefix=/data/http --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/data/apr --with-apr-util=/data/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event --enable-proxy --enable-proxy-fcgi
make && make install

安装之后启动无报错提示,但实际未启动,查看日志文件

blob.png

未加载mod_slotmem_shm.so模块,加载之后成功启动

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so            #加载此模块

启动httpd服务

blob.png

3.3:安装php

先安装 libmcryt软件包

./configure --prefix=/data/libmcrypt                    #启用php服务器启用mcrypt需要安装此软件包
make && make install
cd /tmp/php-5.4.26
./configure --prefix=/data/php --with-mysql=mysqlnd --with-openssl --with-mysqli=mysqlnd --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=/data/libmcrypt  --with-config-file-scan-dir=/data/php/php.d --with-bz2
make && make install
cp php.ini-production /data/php/lib/php.ini                    #复制php.ini文件
cp sapi/fpm/php-fpm /etc/rc.d/init.d/php-fpm                    #复制脚本文件
chmod +x /etc/rc.d/init.d/php-fpm
chkconfig --add php-fpm
cp /data/php/etc/{php-fpm.conf.default,php-fpm.conf}            #复制一份php-fpm.conf文件

修改侦听端口

listen = 192.168.19.137:9000                    #修改侦听套接字

查询安装是否成功

blob.png

安装xcache

./configure --with-php-config=/data/php/bin/php-config --enable-xcache            #可选择不安装此软件,对实验无影响
make && make install
mkdir /data/php/php.d
cp xcache.ini /data/php/php.d                    #copy到php会加载的配置目录中来,否则需要把xcache.ini内容导入php.ini文件中

修改xcache.ini文件,加载xcache.so模块

blob.png

3.4:搭建nfs

yum install -y nfs-utils

启动nfs服务和rpcbind服务

blob.png

mkdir /data/web
把wordpress内容放入/data/web里
cp -R wordpress /data/web

exportfs文件

blob.png

3.5:mysqld搭建

采用二进制包安装

cp -R mysql-5.6.24-linux-glibc2.5-x86_64 /data/mysql
id mysql                                                    #由于以前有建立mysql用户,故此实验直接使用它
uid=495(mysql) gid=502(mysql) groups=502(mysql)
chown -R :mysql /data/mysql

初始化数据库

cd /data/mysql
scripts/mysql_install_db --basedir=/data/mysql --datadir=/db  --user=mysql        #初始化数据库
cp support-files/mysql.server /etc/init.d/mysqld                                    #copy数据库启动脚本

其中/etc/my.cnf修改如下

blob.png

对数据库进行一些简要设置

/data/mysql/bin/mysql_secure_installation                            #主要设置root密码,移除test实例等
service mysqld start

blob.png

3.6:挂载nfs文件(web1和web2)                            

blob.png

3.7:整合http+php+nfs

blob.png

创建虚拟机

blob.png

3.8:建立网站数据库

blob.png

四、测试

访问www.leon.com网站

blob.png

报错,无法创建wp-config文件

blob.png

修改/data/web权限

在web服务器或nfs服务器上修改

chmod -R o+w webweb                    #偷懒,直接给other写权限,线上环境就设置facl

访问正常

blob.png

五、总结

搭建过程中出现了较多问题,有些非常莫名其妙。排错过程中查看日志很重要,如搭建httpd服务时,只因一个模块未加载,导致启动httpd服务时,命令执行状态为真,命令行中未返回报错信息。测试端口时才发现为侦听。对于httpd的fastcgi尚有些理解误区,导致把网站文件放在httpd服务器上,php中未放置。结果一直提示404错误。

原创文章,作者:成吉思汗,如若转载,请注明出处:http://www.178linux.com/8814

(0)
成吉思汗成吉思汗
上一篇 2015-10-15 16:38
下一篇 2015-10-18 19:23

相关推荐

  • 创建私有CA和申请证书流程

    创建私有CA和申请证书流程 由于很多时候做实验需要用到证书,就需要自己搭建一个私有CA来给自己颁发证书。同时通过整理创建CA和申请证书、吊销证书的过程加深自己的理解. PKI:Publilc Key Infrastructure 公钥基础设施:     签证机构:CA     注册机构:RA &nb…

    Linux干货 2016-12-01
  • SElinux 管理

    SELinux: Secure Enhanced Linux(安全强化的linux) SElinux安全上下文是由五个元素组成的: ①User:指示登录系统的用户类型,如root,user_u,system_u,多数本地进程都属于自由(unconfined)进程 ②Role:定义文件,进程和用户的用途:文件:object_r,进程和用户:syste…

    Linux干货 2016-09-26
  • 重构-改善既有代码的设计:重构原则(二)

    1.什么是重构 重构(Refactoring):在不改变软件的功能和外部可见性的情况下,为了改善软件的结构,提高清晰性、可扩展性和可重用性而对软件进行的改造,对代码内部的结构进行优化。 2.为何重构   1)改进软件设计(整理代码) 重构和设计是相辅相成的,它和设计彼此互补。有了重构,你仍然必须做预先的设计,但是不必是最优的设计,只需要一个合理的解…

    Linux干货 2015-04-07
  • DNS and BIND

    DNS and BIND 名称解析:把一种代号转换成为另一种代号的功能是应用程序基于某个搜索键在指定的数据库查询,查询到对应的键以后,对应键被找出来的过程!passwd —《nsswith》/etc/nsswith.conf 注意:查询的时候用到的是UDP的53,主从复制走的是tcp(但是也用到udp) DNS: Domain Name Serv…

    Linux干货 2016-10-21
  • LVS产生背景、原理及LVS-DR应用实例(一)

    一、什么是lvs? 它产生的背景,使用场景是什么?      LVS(Linux Virtual Server) 可以理解为一个虚拟服务器系统。       Internet的飞速发展,网络带宽的增长,Web服务中越来越多地使用CGI、动态主页等CPU密集型应用,这对服务器的性能…

    Linux干货 2016-10-29
  • Linux Shell基础脚本示例

    1、编写脚本/root/bin/systeminfo.sh,显示主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小.   2、编写脚本/root/bin/backup.sh,可实现自动将/etc/目录备份到/root/etcYYYY-mm-dd中.   3、编写脚本/root/bin/disk.…

    Linux干货 2016-08-15