雙apache + php + nfs + mariadb 配置 以discuz做測試

nfs apache php mysql[4]

實驗目標:

    1,兩臺前端apache和php都掛載nfs文件系統中的php程序。

    2,mysql 爲單獨一臺服務器,爲php頁面程序提供數據庫存儲

    3,靜態頁面文件都放在nfs服務器上

    4,需要dns輪循爲兩臺前端服務器分配訪問請求

            缺點: 壓力都在文件存儲服務器上

            優點:不用考慮兩臺web服務器靜態頁面一致性的問題。

操作大體步驟:

    1,兩臺web服務器:掛載nfs。編譯安裝apache,添加支持fcgi協議的模塊,把php請求都代理到php服務器,站點根目錄爲掛載的文件。根據實際情況調整進程啓動數量。

    2,nfs : 在/etc/exprots 配置文件中寫明,允許兩臺apache和php服務器訪問本機的nfs服務

    3,mysql: 需要授權一個用戶從php服務器訪問mysql中的一個數據庫,此庫給discuz使用。

    4,php:編譯安裝以fpm方式啓動進程,進程監聽本機的通信ip。根據實現情況調整進程數量。

使用的軟件級版本

    數據庫 :mariadb-5.5.36-linux-x86_64.tar.gz

    web:httpd-2.4.9.tar.bz2    apr-1.5.0.tar.bz2    apr-util-1.5.3.tar.bz2

    php :php-5.4.26.tar.bz2

    nfs 是centos6.5系統發行時安裝的版本。

===================================================================

NFS配置,/webdata是存儲數據的位置

# vim /etc/exprots        編輯nfs配置文件加入以下一行

/webdata 172.16.2.10(rw,no_root_squash) 172.16.2.15(rw,no_root_squash) 172.16.2.11(rw,no_root_squash)

# service nfs start    啓動nfs服務

把discuz代碼upload目錄中的所有傳到/webdata目錄下。

====================================================================

php服務器配置

編譯php時依賴的開發環境,位於系統盤和和epel安裝源。

    “Desktop Platform Development” 包組

        bzip2-devel                                php用到的壓縮功能

        libmcrypt-devel                          php用到的加密功能

        libmcrypt  
        mhash

        mhash-devel

# yum -y groupinstall "Desktop Platform Development"        

# yum -y install bzip2-devel

# yum -y install libmcrypt-devel

# tar -xvf php-5.4.26.tar.bz2

# cd php-5.4.26

# ./configure --prefix=/usr/local/php --with-mysql --with-mysqli --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --enable-sockets --enable-fpm --with-bz2 --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-mcrypt

# make &&  make install

爲php提供配置文件和 Sysv 腳本文件。這些文件的模板在php解壓後的源代碼包下。

[root@wukui php-5.4.26]# cp php.ini-production /etc/php.ini                         複製主配置文件的模板到/etc下,位於源代碼目錄中。  
[root@wukui php-5.4.26]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php     複製服務控制腳本模板到/etc/rc.d/init.d下    
[root@wukui php-5.4.26]# chmod u+x /etc/rc.d/init.d/php 
[root@wukui php-5.4.26]# chkconfig --add php                     添加到init的控制下    
[root@wrukui php-5.4.26]# chkconfig php on                          設定php開機自動啓動

[root@wukui php-5.4.26]# cp /usr/local/php/etc/php-fpm.conf.default         /usr/lcocal/php/etc/php.fpm.conf  提供php的fpm工作模式下的配置文件。

[root@wukui php-5.4.26]# vim /usr/local/php/etc/php-fpm.conf          修改配置文件

listen = 172.16.2.11:9000        修改php監聽的ip地址

pm.max_children = 20            允許最大請求的併發數,由httpd請求的。

pm.start_servers = 5                服務啓動後開啓多少個進程

pm.min_spare_servers = 2        最少空閒多少個進程

pm.max_spare_servers = 10            最多空閒多少個進程

pid = /usr/local/php/var/run/php-fpm.pid            指定php的PID文件所在位置。這條要寫在[global]下面第一行。

[root@wukui php-5.4.26]# service php start  啓動php進程

[root@wukui php-5.4.26]# mkdir /webdata

[root@wukui php-5.4.26]# mount -t nfs 172.16.2.14:/webdata /webdata  掛載nfs,用來存儲php頁面。

[root@wukui php-5.4.26]# echo " mount -t nfs 172.16.2.14:/webdata /webdata"  /etc/rc.d/rc.local    讓系統啓動後自動執行掛載腳本

[root@wukui php-5.4.26]#  chown -R nobody /webdata    修改webdata目錄的所有者爲nobody,nobody是php進程運行的用戶。


====================================================================

apache服務器配置

# mount -t nfs 172.16.2.14:/webdata /webdata    掛載nfs

# echo " mount -t nfs 172.16.2.14:/webdata /webdata"  /etc/rc.d/rc.local    讓系統啓動後自動執行掛載腳本

# yum grouplist    查看當前系統是否安裝了編譯時所需的開發環境。需要以下兩個開發包組

    Development tools

    Server Platform Development

httpd程序依賴於apr和apr-util

    apr : apache portable runtime,apache可移值運行環境。相當於httpd運行於各平臺的虛擬機,爲了httpd跨平臺開發不那麼複雜,和httpd底層實現方法統一。

    httpd-2.4依賴1.4以上版本的apr。

    # rpm -qa | grep apr      查看當前系統是否安裝了apr和apr-util。如果安裝會把apr的包名顯示出來,包名包含了版本信息。

下載所需要的軟件包

[root@wukui httpd]# ls 
apr-1.5.0.tar.bz2 apr-util-1.5.3.tar.bz2 httpd-2.4.9.tar.bz2


安裝apr--------------------------------------------------------

[root@wukui httpd]# mv /etc/httpd /etc/httpd.bak                      備份之前httpd的配置文件,此步操作看情況而定。

[root@wukui httpd]# tar -xf apr-1.5.0.tar.bz2 
[root@wukui httpd]# cd apr-1.5.0

[root@wukui apr-1.5.0]# ./configure --prefix=/usr/local/apr       安裝到/usr/local/apr下是爲了不和系統之前rpm安裝的包衝突。

[root@wukui apr-1.5.0]# make  &&   make install

[root@wukui apr-1.5.0]# ls /usr/local/apr/bin/            查看已安裝的apr二進制程序

clipboard

[root@wukui apr-1.5.0]# ls /usr/local/apr/lib/                    查看apr的庫文件

clipboard[1]


安裝apr-util------------------------------------------------------------

解壓,並切換到解壓後的目錄

[root@wukui apr-util-1.5.3]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr      #指定安裝目錄    指定剛纔編譯好的apr路徑,因爲apr-util是爲作apr的子功能運行的。

[root@wukui apr-util-1.5.3]# make && make install                編譯,編譯安裝


編譯apache操作-----------------------------------------------------------------------

    [root@wukui httpd-2.4.9]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd/ --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-mpms-shared=all --with-mpm=event --enable-modules=all                        配置安裝特性

    [root@wukui httpd-2.4.9]# make  && make install     編譯並且安裝vi

    [root@wukui apache]# echo "export PATH=/usr/local/apach/bin:$PATH" >> /etc/profile.d/httpd.sh        修改PATH環境變量,讓shell可以搜索到apache的命令

    [root@wukui apache]# source /etc/profile.d/httpd.sh    讓剛設置的PATH環境變量在當前shell進程中生效

    [root@wukui apache]# apachectl start            使用apachectl 啓動httpd服務

測試是否安裝成功

# vim /etc/httpd/httpd.con      編輯httpd的主配置文件

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so   開啓fcgi協議支持

LoadModule proxy_module modules/mod_proxy.so                    開啓代理支持

ServerName www.wukui.com:80                                        設定主機名

ProxyRequests off                                                                        關閉正向代理

ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.2.11:9000/webdata/$1     只要是php文件都使用fcgi協議代理到php服務器。

DocumentRoot "/webdata/"                                                   修改站點根目錄爲nfs

<Directory "/webdata/">                                                         修改對站點根目錄的控制標籤

DirectoryIndex index.html index.php                                      添加默認請求文件

AddType application/x-httpd-php .php        在<IfModule mime_module>標籤中加入,以支持php格式的文件。

AddType application/x-httpd-php-source .phps      同上                  

# httpd -t                  測試配置文件是否有語法錯誤

# apache  restart      重啓httpd服務


====================================================================


mysql配置

安裝mariadb ,二進制安裝。mysql數據庫文件存放在/data下。?data掛載的是一個邏輯卷,屬主屬組爲mysql。  
[root@mysql /]# groupadd -r mysql    
[root@mysql /]# useradd -s /sbin/nologin -g mysql -r mysql    
[root@mysql wukui]# tar -xvf mariadb-5.5.36-linux-x86_64.tar.gz    
[root@mysql wukui]# mv mariadb-5.5.36-linux-x86_64 /usr/local/    
[root@mysql local]# ln -sv /usr/local/mariadb-5.5.36-linux-x86_64/ /usr/local/mysql    
[root@mysql mysql]# cd /usr/local/mysql 切換到解壓後的目錄到    
[root@mysql mysql]#chown -R mysql:mysql ./*    
[root@mysql mysql]# scripts/mysql_install_db --user=mysql --datadir=/data 執行mysql腳本安裝配置。    
[root@mysql mysql]# cp support-files/my-large.cnf /etc/my.cnf    
修改配置文件以下幾個參數    
thread_concurrency = 2 數據是cpu核心乘以2    
datadir = /data 指定mysql數據庫文件存放的位置    
[root@mysql mysql]# vim /etc/profile.d/mysql.sh 添加一環境變量    
export PATH=/usr/local/mysql/bin:$PATH    
[root@mysql mysql]# . /etc/profile.d/mysql.sh    
[root@mysql mysql]# chown -R mysql ./*    
[root@mysql mysql]# cp support-files/mysql.server /etc/init.d/mysqld    
[root@mysql mysql]# chmod u+x /etc/init.d/mysqld    
[root@mysql mysql]# chkconfig --add mysqld    
[root@mysql mysql]# chkconfig mysqld on    
[root@mysql mysql]# service mysqld start

[root@mysql mysql]#mysql

MariaDB [(none)]> use mysql

MariaDB [mysql]> grant all on discuz.* to [email protected] identified by 'discuz';    爲數據庫用戶disadmin授權在172.16.2.11主機上登陸,密碼爲 discuz

Query OK, 0 rows affected (0.34 sec)

MariaDB [mysql]> flush privileges;                           刷新授權

Query OK, 0 rows affected (0.03 sec)

mysql配置完成


=============================================================

安裝discuz測試

在瀏覽器裏輸入httpd的訪問地址

clipboard[2]

clipboard[3]

clipboard[4]

clipboard[5]

clipboard[6]


==================================================================

第二個apache配置

# yum -y groupinstall   "Development tools"                        安裝所需的開發包組

# yum -y groupinstall   "Server Platform Development"

# yum -y install pcre-devel

# tar -xvf apr-1.5.0.tar.bz2                                                安裝apr

# cd apr-1.5.0

# ./configure --prefix=/usr/local/apr

# make && make install

# tar -xvf apr-util-1.5.3.tar.bz2                                        安裝apr-util

# cd apr-util-1.5.3

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

# make && make install

# tar -xvf httpd-2.4.9.tar.bz2                                            安裝apache

# cd apr-util-1.5.3

#./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-mpms-shared=all --with-mpm=event --enable-modules=all

# make && make install

# vim /etc/httpd/httpd.conf     修改主配置文件

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so  啓用

LoadModule proxy_module modules/mod_proxy.so                啓用

ServerName www.wukui.com:80                                        設定主機名

ProxyRequests off                                                                        關閉正向代理

ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.2.11:9000/webdata/$1     只要是php文件都使用fcgi協議代理到php服務器。

DocumentRoot "/webdata/"                                                   修改站點根目錄爲nfs

<Directory "/webdata/">                                                         修改對站點根目錄的控制標籤

DirectoryIndex index.html index.php                                      添加默認請求文件

AddType application/x-httpd-php .php        在<IfModule mime_module>標籤中加入,以支持php格式的文件。

AddType application/x-httpd-php-source .phps      同上

# mount -t nfs 172.16.2.14:/webdata /webdata                    掛載nfs

=================================================================

收尾工作,讓各個服務開機自動啓動,並掛載文件共享服務目錄。至此完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章