一、前言
lamp是大多上公司常用的架构,本文将针对分离式的lamp+nfs来搭建一个简单的wordpress网站。
二、架构图
三、基本实现过程
3.1:dns搭建
由于这这是一个实验,故使用yum搭建dns服务器
yum install -y bind
配置如下
dns主配置文件
dns辅助配置文件
zone文件
对所有服务器设置dns
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
安装之后启动无报错提示,但实际未启动,查看日志文件
未加载mod_slotmem_shm.so模块,加载之后成功启动
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so #加载此模块
启动httpd服务
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 #修改侦听套接字
查询安装是否成功
安装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模块
3.4:搭建nfs
yum install -y nfs-utils
启动nfs服务和rpcbind服务
mkdir /data/web 把wordpress内容放入/data/web里 cp -R wordpress /data/web
exportfs文件
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修改如下
对数据库进行一些简要设置
/data/mysql/bin/mysql_secure_installation #主要设置root密码,移除test实例等 service mysqld start
3.6:挂载nfs文件(web1和web2)
3.7:整合http+php+nfs
创建虚拟机
3.8:建立网站数据库
四、测试
访问www.leon.com网站
报错,无法创建wp-config文件
修改/data/web权限
在web服务器或nfs服务器上修改
chmod -R o+w webweb #偷懒,直接给other写权限,线上环境就设置facl
访问正常
五、总结
搭建过程中出现了较多问题,有些非常莫名其妙。排错过程中查看日志很重要,如搭建httpd服务时,只因一个模块未加载,导致启动httpd服务时,命令执行状态为真,命令行中未返回报错信息。测试端口时才发现为侦听。对于httpd的fastcgi尚有些理解误区,导致把网站文件放在httpd服务器上,php中未放置。结果一直提示404错误。
原创文章,作者:成吉思汗,如若转载,请注明出处:http://www.178linux.com/8814