Loading... <p><strong><span style="font-size: 24px">一、前言</span></strong></p> <p style="text-indent: 2em">lamp是大多上公司常用的架构,本文将针对分离式的lamp+nfs来搭建一个简单的wordpress网站。</p> <p><strong><span style="font-size: 24px">二、架构图</span></strong></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163755-16.png" title="1444922759484175.png" alt="1.png" /></p> <p><strong><span style="font-size: 24px">三、基本实现过程</span></strong></p> <p><strong>3.1:dns搭建</strong></p> <p>由于这这是一个实验,故使用yum搭建dns服务器</p> <pre class="brush:bash;toolbar:false">yum install -y bind</pre> <p>配置如下</p> <p>dns主配置文件</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-9.png" title="1444922892359135.png" alt="blob.png" /></p> <p>dns辅助配置文件</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-43.png" title="1444922939185152.png" alt="blob.png" /></p> <p>zone文件</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-63.png" title="1444922994198563.png" alt="blob.png" /></p> <p>对所有服务器设置dns</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-46.png" title="1444924347257047.png" alt="blob.png" /></p> <p><strong>3.2:httpd服务器搭建</strong></p> <p>采用源码包编译安装,其中web1和web2搭建方式一致,故不啰嗦再贴图</p> <p>安装一些必须软件</p> <pre class="brush:bash;toolbar:false">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</pre> <p>编译安装httpd</p> <pre class="brush:bash;toolbar:false">./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</pre> <p>安装之后启动无报错提示,但实际未启动,查看日志文件</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-20.png" title="1444923200841191.png" alt="blob.png" /></p> <p>未加载mod_slotmem_shm.so模块,加载之后成功启动</p> <pre class="brush:bash;toolbar:false">LoadModule slotmem_shm_module modules/mod_slotmem_shm.so #加载此模块</pre> <p>启动httpd服务</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-53.png" title="1444923234138064.png" alt="blob.png" /></p> <p><strong>3.3:安装php</strong></p> <p>先安装 libmcryt软件包</p> <pre class="brush:bash;toolbar:false">./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文件</pre> <p>修改侦听端口</p> <pre class="brush:bash;toolbar:false">listen = 192.168.19.137:9000 #修改侦听套接字</pre> <p>查询安装是否成功</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-30.png" title="1444923281468002.png" alt="blob.png" /></p> <p><strong>安装xcache</strong></p> <pre class="brush:bash;toolbar:false">./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文件中</pre> <p>修改xcache.ini文件,加载xcache.so模块</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-35.png" title="1444923313770236.png" alt="blob.png" /></p> <p><strong>3.4:搭建nfs</strong></p> <pre class="brush:bash;toolbar:false">yum install -y nfs-utils</pre> <p>启动nfs服务和rpcbind服务</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-84.png" title="1444923376497533.png" alt="blob.png" /></p> <pre class="brush:bash;toolbar:false">mkdir /data/web 把wordpress内容放入/data/web里 cp -R wordpress /data/web</pre> <p>exportfs文件</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-70.png" title="1444923410532043.png" alt="blob.png" /></p> <p><strong>3.5:mysqld搭建</strong></p> <p>采用二进制包安装</p> <pre class="brush:bash;toolbar:false">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</pre> <p>初始化数据库</p> <pre class="brush:bash;toolbar:false">cd /data/mysql scripts/mysql_install_db --basedir=/data/mysql --datadir=/db --user=mysql #初始化数据库 cp support-files/mysql.server /etc/init.d/mysqld #copy数据库启动脚本</pre> <p>其中/etc/my.cnf修改如下</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-51.png" title="1444923696921907.png" alt="blob.png" /></p> <p><span style="font-family:Tahoma, sans-serif"><span style="font-size: 15px">对数据库进行一些简要设置</span></span></p> <pre class="brush:bash;toolbar:false">/data/mysql/bin/mysql_secure_installation #主要设置root密码,移除test实例等 service mysqld start</pre> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-73.png" title="1444923730693648.png" alt="blob.png" /></p> <p></p> <p><strong>3.6:挂载nfs文件(web1和web2) </strong></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-46-1.png" title="1444924044980785.png" alt="blob.png" /></p> <p><strong>3.7:整合http+php+nfs</strong></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-92.png" title="1444923916403479.png" alt="blob.png" /></p> <p>创建虚拟机</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163756-76.png" title="1444923964197339.png" alt="blob.png" /></p> <p><strong>3.8:建立网站数据库</strong></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163757-78.png" title="1444924468328180.png" alt="blob.png" /></p> <p><span style="font-size: 24px"><strong>四、测试</strong></span></p> <p>访问www.leon.com网站</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163757-42.png" title="1444924483954308.png" alt="blob.png" /></p> <p>报错,无法创建wp-config文件</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163757-48.png" title="1444924535607109.png" alt="blob.png" /></p> <p>修改/data/web权限</p> <p>在web服务器或nfs服务器上修改</p> <pre class="brush:bash;toolbar:false">chmod -R o+w webweb #偷懒,直接给other写权限,线上环境就设置facl</pre> <p><span style="line-height: 15px;text-align: justify">访问正常<br /></span></p> <p><span style="line-height: 15px;text-align: justify"><img src="//cto.wang/usr/uploads/2016/07/20160703163757-4.png" title="1444924623103934.png" alt="blob.png" /></span></p> <p><strong><span style="line-height: 15px;text-align: justify;font-size: 24px">五、总结</span></strong></p> <p style="text-indent: 2em"><span style="line-height: 15px;text-align: justify">搭建过程中出现了较多问题,有些非常莫名其妙。排错过程中查看日志很重要,如搭建httpd服务时,只因一个模块未加载,导致启动httpd服务时,命令执行状态为真,命令行中未返回报错信息。测试端口时才发现为侦听。对于httpd的fastcgi尚有些理解误区,导致把网站文件放在httpd服务器上,php中未放置。结果一直提示404错误。</span></p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信