一、前言
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.www58058.com/8814