LAMP分離部署


1.主機規劃


配置虛擬機中有至少 3臺,操作系統都是centos網段在172.16.27.0/16 


分配如下:


1臺httpd服務器172.16.27.20


1臺php-fpm服務器 172.16.27.30


1臺DB服務器172.16.27.40


2.工作模式


首先客戶端發起請求,請求分爲2種,一種是靜態請求它可以直接由Apache直接響應返回;另一種是動態的請求,如其中包含中php或者Perl這種腳本解釋性語言,則由Apache服務器通過fastcgi協議調用php服務器執行並返回給Apache由Apache返回解釋執行後的結果,如果這個過程中涉及到對數據的操作,此時php服務器還會還會通過mysql協議調用mysql服務器。


3.編譯安裝Apache(172.16.27.20)


部署前準備

yum groupinstall “Development Tools”

yum install apr-util-devel

yum install pcre-devel openssl-devel  libevent-devel

mkdir -pv /data/web/www{1,2}


開始解壓httpd,並且進行編譯 

[root@web tmp]# tar -vxf  httpd-2.4.6.tar.bz2

[root@web tmp]# cd httpd-2.4.6/

[root@web httpd-2.4.6]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so--enable-ssl --enable-cgi --enable-rewrite --enable-modules=most--enable-mpms-shared=all --with-mpm=prefork --with-pcre --with-zlib--with-apr=/usr --with-apr-util=/usr

[root@web httpd-2.4.6]# make -j 2 && make install 

[root@web local]# ln -sv apache2.4.6/ apache(創建軟連接)


爲apache創建用戶與組


[root@web local]# groupadd -g 800 apache

[root@web local]# useradd apache -u 800 -g 800 -M -s /sbin/nologin       

Creating mailbox file: File exists

[root@web local]# id apache

uid=800(apache) gid=800(apache) groups=800(apache)


啓動apache服務


[root@web local]# cat /etc/profile.d/httpd.sh 

export PATH=/usr/local/apache/bin:$PATH

[root@web local] apachectl start

在瀏覽器中輸入ip地址即可訪問,顯示it works代表我們的httpd服務器已搭建完畢。(關閉防火牆和selinux)


4 編譯安裝php+xcache (172.16.27.30)


(1)編譯安裝php


解決php依賴關係


# yum install libxml2-devel gd-devel freetype-devellibmcrypt-devel openssl-devel  bzip2  bzip2-devel


 編譯安裝php5.5


# tar xf php-5.5.30.tar.gz

./configure --prefix=/data/soft/php-5.5.30--with-mysql=/data/soft/mariadb --with-openssl--with-mysqli=/data/soft/mariadb/bin/mysql_config --enable-mbstring--enable-xml --enable-sockets --with-freetype-dir --with-gd--with-libxml-dir=/usr --with-zlib --with-jpeg-dir --with-png-dir --with-mcrypt  --with-config-file-path=/etc/php.ini--with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-fpm

# make

# make install

# ln -sv php5.5.30 php5


添加php.ini 和php-fpm文件

(1)爲php提供配置文件

複製php-5.5.30的解壓包中的php.ini-production文件

# cp/tools/php-5.5.30/php.ini-production /etc/php.ini

爲php-fpm 提供配置文件                            

# cd php5.5/etc/

# cp php-fpm.conf.defaultphp-fpm.conf


配置php-fpm文件


[root@php php5.5]# vim etc/php-fpm.conf

pid = run/php-fpm.pid

listen= 172.16.27.30:9000

listen.allowed_clients= 172.16.27.20 #web服務器地址

pm.max_children = 1024

pm.start_servers = 16

pm.min_spare_servers = 5

pm.max_spare_servers = 20

pm.process_idle_timeout = 15s

pm.max_requests = 2048


 啓動php-fpm服務


(1)設置PATH環境變量

# cat /etc/profile.d/php-fpm.sh

export PATH=/data/soft/php5.5/sbin/:$PATH

 

(2)爲php-fpm提供啓動腳本


# cp/tools/php-5.5.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

# chmod +x /etc/init.d/php-fpm

# chkconfig --add php-fpm

# chkconfig php-fpm on

 

(3)啓動php-fpm,查看php-fpm進程數


# service php-fpm start

# ps -ef |grep -c php-fpm


設置apache的虛擬主機連接php

配置apache支持fcgi


[root@web ~]# vim /etc/httpd24/httpd.conf

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_modulemodules/mod_proxy_fcgi.so



(5)編輯虛擬主機(172.16.27.20)


<VirtualHost *:80>


       ServerAdmin [email protected]


       DocumentRoot "/data/vhost/www1"


       ServerName ww1.ssl.com


        ErrorLog "/data/vhost/www1/www1.Errorlog"


        CustomLog "/data/vhost/www1/www1.CustomLog" combined


        ProxyRequests off #關閉正向代理


        ProxyPassMatch ^/(.*.php)$ fcgi://172.16.27.30:9000/var/vhost/www1/$1


    <Directory "/data/vhost/www1">


        Options none


        AllowOverride None


        Require all granted


    </Directory>


</VirtualHost>




<VirtualHost *:80>


        ServerAdmin [email protected]


        DocumentRoot "/data/vhost/www2"


        ServerName www2.ssl.com


        ErrorLog "/data/vhost/www2/www2.Errorlog"


        CustomLog "/data/vhost/www2/www2.CustomLog" combined


        ProxyRequests off #關閉正向代理


        ProxyPassMatch ^/(.*.php)$ fcgi://172.17.27.30/data/vhost/www2/$1


    <Directory "/data/vhost/www2">


        Options none


        AllowOverride None


        Require all granted

   </Directory>


</VirtualHost>



6 爲了提高php的性能安裝Xcache

# tar -xvf xcache-3.2.0.tar.bz2

# cd  xcache-3.2.0

# ./configure--enable-xcache --with-php-config=/data/soft/ph

# make && makeinstall

# ls /data/soft/php-5.5.30/lib/php/extensions/no-debug-non

整合php和xcache,將XCache配置文件複製到php.d目錄下,使php可以讀取XCache配置文件


# mkdir /etc/php.d

# cp xcache.ini /etc/php.d/

編輯/etc/php.d/xcache.ini文件,指定xcache.so的位置


# sed -n '4p'  /etc/php.d/xcache.ini

extension =/data/soft/php-5.5.30/lib/php/extensions/no-debug-non-zts-20121212/xcache.so



部署mariadb服務

採用mysql 二進制安裝方式


創建mysql用戶和組


# groupadd -g 306 mysql

# useradd -u 306 -g mysql -s /sbin/nologin -M mysql


 解壓mariadb-5.5.46-linux-x86_64.tar.gz


# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C/data/soft/

  

# ln -sv mariadb-5.5.46-linux-x86_64/mariadb

‘mariadb’ -> ‘mariadb-5.5.46-linux-x86_64/’


創建mysql數據目錄並授權


mkdir /data/mydata -p

chown -R mysql.mysql /data/mydata


初始化數據庫文件

# chown -R root.mysql/data/soft/mariadb/

# cd /data/soft/mariadb

 

# scripts/mysql_install_db--user=mysql --datadir=/data/mydata/ --basedir=/data/soft/mariadb

 

配置mariadb主配置文件my.cnf

複製/data/soft/mariadb/support-files目錄下的my-large.cnf文件到/etc/ 目錄下,覆蓋原有的mysql配置文件 my.cnf(注意:覆蓋前需自己手動備份):


# cp support-files/my-large.cnf /etc/my.cnf


修改/etc/my.cnf文件,指定datadir、basedir路徑,同時開啓3306端口


[mysqld]

port = 3306

basedir = /data/soft/mariadb

datadir = /data/mydata

innodb_file_per_table = 1 #讓innodb表每個表一個表空間文件。


 複製mysql啓動腳本到/etc/init.d/mysqld


# cp /data/soft/mariadb/support-files/mysql.server/etc/init.d/mysqld

# chmod 755 /etc/init.d/mysqld


 修改PATH環境變量


[root@db mariadb]# cat /etc/profile.d/mysql.sh

export mysql_home=/data/soft/mariadb

export PATH=$mysql_home/bin:$PATH

 

啓動mysql服務


[root@db mariadb]# chkconfig --add mysqld

[root@db mariadb]# chkconfig mysqld on

[root@db mariadb]# service mysqld start

Starting MySQL... SUCCESS!



進入php主機 編輯index.php 文件內容如下:



<?php


$link=mysql_connect('172.16.27.40','wordpress','wordpress');


if($link){


echo "success..wordpress!";


}else{


echo "failed..wordpress!".mysql_error();


}


mysql_close($link);


phpinfo();


?>


出現success..frank!則成功了,若失敗看失敗的原因進行相關的操作!


切記,要將防火牆關閉!


(10)配置phpmyadmin


在php 主機和http主機上分別在frank目錄或者隨意一個虛擬主機目錄中建立一個文件夾


例如在php主機中在目錄


unzip phpMyAdmin-4.4.10-all-languages.zip


即可。這兩臺主機的操作一樣。


接下來在php主機上進行對phpmyadmin的配置。


cp config.sample.inc.php config.inc.php


vim config.inc.php


主要找到


$cfg['Servers'][$i]['host']=‘172.16.27.40’ 數據庫服務器的IP地址


$cfg['blowfish_secret'] = '77777';這裏的字符隨意,這個主要是爲了區分cookie。


然後重啓三臺主機上的服務即可測試。




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