目錄
搭建服務(wù)
搭建該服務(wù)的所需環(huán)境
實(shí)現(xiàn)思路
搭建步驟
一、搭建LNMP-All in One
二、分離部署LNMP
三、分離LNMP部署完成后,將兩組LNMP的MySQL設(shè)置為主主關(guān)系
四、Nginx負(fù)載均衡配置
五、DNS
六、客戶端訪問
搭建服務(wù)
搭建該服務(wù)的所需環(huán)境
1.先行搭建LNMP-All in One
(IP:188.188.188.180)
2.搭建分離LNMP
(php-IP:188.188.188.188;nginx-ip:188.188.188.189;mysql-ip:188.188.188.190)
3.搭建兩臺(tái)靜態(tài)apache服務(wù)器
(apache-1-IP:172.169.25.253;apache-2-IP:172.169.25.254)
4.搭建Nginx負(fù)載均衡,配置文件設(shè)置IP不可訪問,動(dòng)態(tài)為兩組LNMP,靜態(tài)為倆組apache。與三個(gè)網(wǎng)段建立連接
(Nginx-IP-1:192.168.1.2 、Nginx-IP-2:188.188.188.250、Nginx-IP-3:172.169.25.250)
5.DNS服務(wù)配置正向解析
(DNS-IP-1:192.168.1.10)
6.客戶端訪問
(IP:192.168.1.20)
實(shí)現(xiàn)思路
1.在搭建好所有環(huán)境之后,將兩組LNMP放在同一個(gè)網(wǎng)段中(188.188.188.0),配置頁面全部無誤,放行端口,相互訪問無誤。
它的作用是提供動(dòng)態(tài)頁面
2. 搭建兩臺(tái)apache服務(wù)器后(172.169.25.0),配置靜態(tài)頁面內(nèi)容。
它的作用是提供靜態(tài)頁面
3. 搭建Nginx負(fù)載均衡服務(wù)器后,設(shè)置三個(gè)網(wǎng)段,分別連接三種不同的服務(wù),將這個(gè)服務(wù)配置與兩種頁面鏈接的內(nèi)容,重啟服務(wù),放行端口后,進(jìn)行訪問,無誤后進(jìn)行下一步。
它的作用是在其他網(wǎng)段訪問時(shí),提供這兩種不同網(wǎng)段的不同頁面
4. 搭建DNS服務(wù)器,設(shè)置正向解析,本機(jī)使用域名訪問,成功后便可使用客戶端通過域名訪問。
它的作用是將Nginx負(fù)載均衡的IP解析成為域名,使得客戶端即使不使用IP便可訪問到Nginx負(fù)載均衡服務(wù)器
搭建步驟
一、搭建LNMP-All in One
先預(yù)先裝上所需要的環(huán)境和包
[root@zjx-0703-LNMP ~]# yum -y install gcc* ncurses-devel bison cmake
[root@zjx-0703-LNMP ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel
[root@zjx-0703-LNMP ~]# yum -y install pcre* openssl*
mysql安裝
[root@zjx-0703-LNMP ~]# tar -zxvf mysql-5.5.22.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/mysql-5.5.22/
[root@zjx-0703-LNMP mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
[root@zjx-0703-LNMP mysql-5.5.22]# make
[root@zjx-0703-LNMP mysql-5.5.22]# make install
[root@zjx-0703-LNMP mysql-5.5.22]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
[root@zjx-0703-LNMP mysql-5.5.22]# useradd -s /sbin/nologin -M mysql
[root@zjx-0703-LNMP mysql-5.5.22]# chown -R mysql:mysql /usr/local/mysql/
[root@zjx-0703-LNMP mysql-5.5.22]# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
[root@zjx-0703-LNMP mysql-5.5.22]# cd /usr/local/mysql/
[root@zjx-0703-LNMP mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# 命令結(jié)果顯示兩個(gè)OK,成功
Installing MySQL system tables...
OK
Filling help tables...
OK
......
# 在profile文件中加入MySQL變量,并刷新內(nèi)容,使其生效
[root@zjx-0703-LNMP mysql]# vim /etc/profile
PATH=$PATH:/usr/local/mysql/bin
[root@zjx-0703-LNMP mysql]# source /etc/profile
[root@zjx-0703-LNMP mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@zjx-0703-LNMP mysql]# chmod +x /etc/rc.d/init.d/mysqld
[root@zjx-0703-LNMP mysql]# chkconfig --add mysqld
[root@zjx-0703-LNMP mysql]# systemctl restart mysqld
安裝php
# 安裝三個(gè)所需依賴包
[root@zjx-0703-LNMP mysql]# cd
[root@zjx-0703-LNMP ~]# tar zxvf libmcrypt-2.5.8.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/libmcrypt-2.5.8/
[root@zjx-0703-LNMP libmcrypt-2.5.8]# ./configure && make && make install
[root@zjx-0703-LNMP libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib
[root@zjx-0703-LNMP libmcrypt-2.5.8]# cd
[root@zjx-0703-LNMP ~]# tar zxvf mhash-0.9.9.9.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/mhash-0.9.9.9/
[root@zjx-0703-LNMP mhash-0.9.9.9]# ./configure && make -j 4 && make install
[root@zjx-0703-LNMP mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash..* /usr/lib
[root@zjx-0703-LNMP mhash-0.9.9.9]# cd
[root@zjx-0703-LNMP ~]# tar zxvf mcrypt-2.6.8.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/mcrypt-2.6.8/
[root@zjx-0703-LNMP mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
[root@zjx-0703-LNMP mcrypt-2.6.8]# ./configure && make -j 4 && make install
安裝php并進(jìn)行配置
[root@zjx-0703-LNMP mcrypt-2.6.8]# cd
[root@zjx-0703-LNMP ~]# tar -zxvf php-5.3.28.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/php-5.3.28/
[root@zjx-0703-LNMP ~]# ./configure --prefix=/usr/local/php --with-gd --with-zlib --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-config-file-path=/usr/local/php --enable-fpm --enable-mbstring --with-jpeg-dir=/usr/lib
[root@zjx-0703-LNMP ~]# make && make install
[root@zjx-0703-LNMP php-5.3.28]# cp php.ini-development /usr/local/php/php.ini
# php.ini文件中找到并修改以下內(nèi)容
[root@zjx-0703-LNMP php-5.3.28]# vim /usr/local/php/php.ini
default_charset = "utf-8"
short_open_tag = On
[root@zjx-0703-LNMP php-5.3.28]# cp /usr/src/php-5.3.28/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@zjx-0703-LNMP php-5.3.28]# chmod +x /etc/init.d/php-fpm
[root@zjx-0703-LNMP php-5.3.28]# chkconfig --add php-fpm
[root@zjx-0703-LNMP php-5.3.28]# cd /usr/local/php/etc/
[root@zjx-0703-LNMP etc]# cp php-fpm.conf.default php-fpm.conf
# php-fpm.conf配置文件中找到并修改以下內(nèi)容
[root@zjx-0703-LNMP etc]# vim php-fpm.conf
# 去注釋
pid = run/php-fpm.pid
......
# 改參數(shù)
pm.max_children = 50
......
pm.start_servers = 20
......
pm.min_spare_servers = 5
......
pm.max_spare_servers = 35
安裝php模塊
[root@zjx-0703-LNMP etc]# cd
[root@zjx-0703-LNMP ~]# tar zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/
[root@zjx-0703-LNMP php-5.3.x]# cp ZendGuardLoader.so /usr/local/php/lib/php/
[root@zjx-0703-LNMP php-5.3.x]# systemctl restart php-fpm
安裝nginx
[root@zjx-0703-LNMP ~]# tar zxvf nginx-1.6.2.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/nginx-1.6.2/
[root@zjx-0703-LNMP nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_spdy_module --with-http_stub_status_module --with-pcre
[root@zjx-0703-LNMP nginx-1.6.2]# make && make install
[root@zjx-0703-LNMP nginx-1.6.2]# useradd -r -s /sbin/nologin nginx
[root@zjx-0703-LNMP nginx-1.6.2]# cd /usr/local/nginx
[root@zjx-0703-LNMP nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
# nginx.conf配置文件中找到并修改以下內(nèi)容
[root@zjx-0703-LNMP nginx]# vim /usr/local/nginx/conf/nginx.conf
user nginx;
worker_processes 1;
#error_log logs/error.log;
error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
重啟nginx并訪問
[root@zjx-0703-LNMP nginx]# nginx -t
# 出現(xiàn)這些為成功,如果出錯(cuò),根據(jù)報(bào)錯(cuò)內(nèi)容進(jìn)行修改
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@zjx-0703-LNMP nginx]# nginx
[root@zjx-0703-LNMP nginx]# firefox 127.0.0.1
當(dāng)你看到該內(nèi)容時(shí),說明你已經(jīng)安裝成功,接下來進(jìn)行平滑升級(jí)
[root@zjx-0703-LNMP ~]# tar zxvf nginx-1.11.5.tar.gz -C /usr/src/
[root@zjx-0703-LNMP ~]# cd /usr/src/nginx-1.11.5/
[root@zjx-0703-LNMP nginx-1.11.5]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make
[root@zjx-0703-LNMP nginx-1.11.5]# cd /usr/local/nginx/sbin/
[root@zjx-0703-LNMP sbin]# mv nginx /usr/local/sbin/nginx_old
[root@zjx-0703-LNMP sbin]# cd /usr/src/nginx-1.11.5/objs/
[root@zjx-0703-LNMP objs]# cp nginx /usr/local/nginx/sbin/
[root@zjx-0703-LNMP objs]# kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
# nginx.conf配置文件找到并修改
[root@zjx-0703-LNMP objs]# vim /usr/local/nginx/conf/nginx.conf
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
location /status{
stub_status on;
access_log off;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
[root@zjx-0703-LNMP objs]# nginx -s reload
[root@zjx-0703-LNMP objs]# firefox 127.0.0.1/status
當(dāng)你看到這個(gè)頁面說明成功
接下來開始靜態(tài)頁面的配置
[root@zjx-0703-LNMP ~]# vim /usr/local/nginx/conf/nginx.conf
# 找到并修改下方內(nèi)容
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /www;
fastcgi_pass 188.188.188.180:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
# 找到并修改下方內(nèi)容
[root@zjx-0703-LNMP ~]# vim /usr/local/php/etc/php-fpm.conf
......
user = nginx
group = nginx
......
listen = 188.188.188.180:9000
......
創(chuàng)建文件,并加入頁面內(nèi)容
[root@zjx-0703-LNMP ~]# mkdir /www
[root@zjx-0703-LNMP ~]# vim /www/index.php
<?php
echo "zhaha"
?>
訪問
[root@zjx-0703-LNMP ~]# firefox 188.188.188.180/index.php
訪問成功
制作與MySQL關(guān)聯(lián)的PHP頁面
[root@zjx-0703-LNMP ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.22 Source distribution
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 給root用戶設(shè)置密碼
mysql> set password=password("123.com");
Query OK, 0 rows affected (0.01 sec)
# 給zzz用戶授權(quán),密碼為123.com
mysql> grant all on *.* to 'zzz'@'188.188.188.%' identified by '123.com';
Query OK, 0 rows affected (0.01 sec)
# 刷新用戶信息
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit;
修改頁面,并訪問
[root@zjx-0703-LNMP ~]# vim /www/index.php
<?php
$servername="188.188.188.180";
$username="zzz";
$password="123.com";
$conn=mysqli_connect($servername,$username,$password);
if(!$conn){
die("cannot connect!!!");
}
echo "success connect-1";
?>
[root@zjx-0703-LNMP ~]# firefox 188.188.188.180/index.php
如果訪問不成功重啟服務(wù)
還是訪問不到就重啟PC,或者多次給MySQL授權(quán)
之后給php服務(wù)器安裝擴(kuò)展庫mysqli
[root@zjx-0703-LNMP ~]# cd /usr/local/php/
[root@zjx-0703-LNMP php]# ln -s /usr/local/php/bin/phpize /usr/bin/
[root@zjx-0703-LNMP php]# cd /usr/src/php-5.3.28/ext/mysqli
[root@zjx-0703-LNMP mysqli]# phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
# 根據(jù)下方內(nèi)容判斷,是否需要安裝安裝依賴環(huán)境
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
[root@zjx-0703-LNMP mysqli]# yum -y install autoconf
[root@zjx-0703-LNMP mysqli]# phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
# 這種結(jié)果為可編譯配置了
configure.in:3: warning: prefer named diversions
configure.in:3: warning: prefer named diversions
[root@zjx-0703-LNMP mysqli]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config
[root@zjx-0703-LNMP mysqli]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=mysqlnd
[root@zjx-0703-LNMP mysqli]# make
[root@zjx-0703-LNMP mysqli]# make test
[root@zjx-0703-LNMP mysqli]# make install
[root@zjx-0703-LNMP mysqli]# vim /usr/local/php/php.ini
/usr/local/php/php.ini 文件中加入以下內(nèi)容
重啟服務(wù),并訪問
[root@zjx-0703-LNMP mysqli]# systemctl restart php-fpm
[root@zjx-0703-LNMP mysqli]# nginx -s reload
[root@zjx-0703-LNMP mysqli]# firefox 188.188.188.180/index.php
放行服務(wù)
[root@zjx-0703-PHP ~]# firewall-cmd --add-service=msql
success
[root@zjx-0703-PHP ~]# firewall-cmd --add-service=mysql --permanent
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=9000/tcp
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=9000/tcp --permanent
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=80/tcp
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=3306/tcp
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
至此,整合的LNMP完成
二、分離部署LNMP
與整合LNMP操作相同
nginx
[root@zjx-0703-Nginx ~]# yum -y install pcre* openssl*
[root@zjx-0703-Nginx ~]# tar zxvf nginx-1.6.2.tar.gz -C /usr/src/
[root@zjx-0703-Nginx ~]# cd /usr/src/nginx-1.6.2/
[root@zjx-0703-Nginx nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_spdy_module --with-http_stub_status_module --with-pcre
[root@zjx-0703-Nginx nginx-1.6.2]# make && make install
[root@zjx-0703-Nginx ~]# useradd -r -s /sbin/nologin nginx
[root@zjx-0703-Nginx ~]# cd /usr/local/nginx
[root@zjx-0703-Nginx nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
[root@zjx-0703-Nginx nginx]# vim /usr/local/nginx/conf/nginx.conf
user nginx;
worker_processes 1;
#error_log logs/error.log;
error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
[root@zjx-0703-Nginx nginx]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@zjx-0703-Nginx nginx]# nginx
平滑升級(jí)
[root@zjx-0703-Nginx ~]# tar zxvf nginx-1.11.5.tar.gz -C /usr/src/
[root@zjx-0703-Nginx ~]# cd /usr/src/nginx-1.11.5/
[root@zjx-0703-Nginx nginx-1.11.5]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make
[root@zjx-0703-Nginx ~]# cd /usr/local/nginx/sbin/
[root@zjx-0703-Nginx sbin]# mv nginx /usr/local/sbin/nginx_old
[root@zjx-0703-Nginx sbin]# cd /usr/src/nginx-1.11.5/objs/
[root@zjx-0703-Nginx objs]# cp nginx /usr/local/nginx/sbin/
[root@zjx-0703-Nginx objs]# kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
安裝MySQL
[root@zjx-0703-MySQL ~]# yum -y install gcc* ncurses-devel bison cmake
[root@zjx-0703-MySQL ~]# tar -zxvf mysql-5.5.22.tar.gz -C /usr/src/
[root@zjx-0703-MySQL ~]# cd /usr/src/mysql-5.5.22/
[root@zjx-0703-MySQL mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
[root@zjx-0703-MySQL mysql-5.5.22]# make
[root@zjx-0703-MySQL mysql-5.5.22]# make install
[root@zjx-0703-MySQL mysql-5.5.22]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
[root@zjx-0703-MySQL mysql-5.5.22]# useradd -s /sbin/nologin -M mysql
[root@zjx-0703-MySQL mysql-5.5.22]# chown -R mysql:mysql /usr/local/mysql/
[root@zjx-0703-MySQL mysql-5.5.22]# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
cp:是否覆蓋"/etc/my.cnf"? y
[root@zjx-0703-MySQL mysql-5.5.22]# cd /usr/local/mysql/
[root@zjx-0703-MySQL mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
Installing MySQL system tables...
OK
Filling help tables...
OK
[root@zjx-0703-MySQL mysql]# vim /etc/profile
PATH=$PATH:/usr/local/mysql/bin
[root@zjx-0703-MySQL mysql]# source /etc/profile
[root@zjx-0703-MySQL mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@zjx-0703-MySQL mysql]# chmod +x /etc/rc.d/init.d/mysqld
[root@zjx-0703-MySQL mysql]# chkconfig --add mysqld
[root@zjx-0703-MySQL mysql]# systemctl restart mysqld
安裝PHP
[root@zjx-0703-PHP ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel
[root@zjx-0703-PHP mysql]# cd
[root@zjx-0703-PHP ~]# tar zxvf libmcrypt-2.5.8.tar.gz -C /usr/src/
[root@zjx-0703-PHP ~]# cd /usr/src/libmcrypt-2.5.8/
[root@zjx-0703-PHP libmcrypt-2.5.8]# ./configure && make && make install
[root@zjx-0703-PHP libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib
[root@zjx-0703-PHP libmcrypt-2.5.8]# cd
[root@zjx-0703-PHP ~]# tar zxvf mhash-0.9.9.9.tar.gz -C /usr/src/
[root@zjx-0703-PHP ~]# cd /usr/src/mhash-0.9.9.9/
[root@zjx-0703-PHP mhash-0.9.9.9]# ./configure && make -j 4 && make install
[root@zjx-0703-PHP mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash..* /usr/lib
[root@zjx-0703-PHP mhash-0.9.9.9]# cd
[root@zjx-0703-PHP ~]# tar zxvf mcrypt-2.6.8.tar.gz -C /usr/src/
[root@zjx-0703-PHP ~]# cd /usr/src/mcrypt-2.6.8/
[root@zjx-0703-PHP mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
[root@zjx-0703-PHP mcrypt-2.6.8]# ./configure && make -j 4 && make install
[root@zjx-0703-PHP mcrypt-2.6.8]# cd
[root@zjx-0703-PHP ~]# tar -zxvf php-5.3.28.tar.gz -C /usr/src/
[root@zjx-0703-PHP ~]# cd /usr/src/php-5.3.28/
[root@zjx-0703-PHP php-5.3.28]# ./configure --prefix=/usr/local/php --with-gd --with-zlib --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-config-file-path=/usr/local/php --enable-fpm --enable-mbstring --with-jpeg-dir=/usr/lib
[root@zjx-0703-PHP php-5.3.28]# make && make install
[root@zjx-0703-PHP php-5.3.28]# cp php.ini-development /usr/local/php/php.ini
[root@zjx-0703-PHP php-5.3.28]# vim /usr/local/php/php.ini
至此,三個(gè)基本環(huán)境安裝完成
將三者整合建立連接
PHP與Nginx整合
進(jìn)入PHP創(chuàng)建nfs共享目錄,
[root@zjx-0703-PHP ~]# mkdir /www
[root@zjx-0703-PHP ~]# vim /etc/exports
在文件中插入下面內(nèi)容
/www 188.188.188.0/24(sync,rw,no_root_squash)
檢測(cè)
[root@zjx-0703-PHP php-5.3.x]# exportfs -rv
exporting 188.188.188.0/24:/www
重啟服務(wù),放行服務(wù)
[root@zjx-0703-PHP ~]# systemctl restart nfs
[root@zjx-0703-PHP ~]# systemctl restart rpcbind
[root@zjx-0703-PHP ~]# firewall-cmd --add-service=nfs
success
[root@zjx-0703-PHP ~]# firewall-cmd --add-service=nfs --permanent
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=9000/tcp
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=9000/tcp --permanent
success
在nginx中,創(chuàng)建共享文件目錄/www,修改主配置文件與PHP服務(wù)器關(guān)聯(lián)
[root@zjx-0703-Nginx ~]# mkdir /www
[root@zjx-0703-Nginx ~]# vim /usr/local/nginx/conf/nginx.conf
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /www;
# 寫入PHP的IP
fastcgi_pass 188.188.188.188:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
}
# deny access to .htaccess files, if Apache's document root
[root@zjx-0703-Nginx ~]# nginx -s reload
掛載共享目錄
[root@zjx-0703-Nginx ~]# mount -t nfs 188.188.188.188:/www /www/
[root@zjx-0703-Nginx ~]# df -Th /www/
文件系統(tǒng) 類型 容量 已用 可用 已用% 掛載點(diǎn)
188.188.188.188:/www nfs4 17G 4.3G 13G 26% /www
搭建網(wǎng)頁,并訪問
[root@zjx-0703-Nginx ~]# vim /www/index.php
# 文件中加如下面內(nèi)容
<?php
echo "kkk"
?>
[root@zjx-0703-Nginx ~]# firefox 188.188.188.189/index.php
PHP與Nginx整合成功,訪問成功
MySQL與php的整合
MySQL授權(quán)用戶
[root@zjx-0703-LNMP ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.22 Source distribution
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> set password=password("123.com");
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on *.* to 'zzz'@'188.188.188.%' identified by '123.com';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit;
index.php文件修改內(nèi)容
[root@zjx-0703-MySQL ~]# vim /www/index.php
<?php
$servername="188.188.188.190";
$username="zzz";
$password="123.com";
$conn=mysqli_connect($servername,$username,$password);
if(!$conn){
die("cannot connect!!!");
}
echo "success connect";
?>
創(chuàng)建共享目錄,并掛載
[root@zjx-0703-MySQL ~]# mkdir /www
[root@zjx-0703-MySQL ~]# mount -t nfs 188.188.188.188:/www /www/
放行服務(wù)
[root@zjx-0703-MySQL ~]# firewall-cmd --zone=public --add-port=3306/tcp
success
[root@zjx-0703-MySQL ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@zjx-0703-MySQL ~]# firewall-cmd --add-service=mysql
success
[root@zjx-0703-MySQL ~]# firewall-cmd --add-service=mysql --permanent
success
Nginx放行服務(wù)
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=80/tcp
success
[root@zjx-0703-PHP ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
當(dāng)在nginx中訪問到success connect便說明成功
至此,第二組LNMP成功
三、分離LNMP部署完成后,將兩組LNMP的MySQL設(shè)置為主主關(guān)系
兩臺(tái)的設(shè)置都相同,但是server-id不能相同
報(bào)錯(cuò)解決
主1
[root@zjx-0703-LNMP ~]# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
[root@zjx-0703-LNMP ~]# vim my.cnf
# binary logging is required for replication
log-bin=master-bin
log-slave-updata=true
# binary logging format - mixed recommended
binlog_format=mixed
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 11
# Replication Slave (comment out master section to use this)
[root@zjx-0703-LNMP ~]# systemctl restart mysqld
主2
[root@zjx-0703-MySQL ~]# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
[root@zjx-0703-MySQL ~]# vim my.cnf
# binary logging is required for replication
log-bin=master-bin
log-slave-updata=true
# binary logging format - mixed recommended
binlog_format=mixed
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 12
# Replication Slave (comment out master section to use this)
[root@zjx-0703-MySQL ~]# systemctl restart mysqld
配置MySQL-1時(shí)同時(shí)配置MySQL-2
MySQL-1配置
mysql> mysql> grant replication slave on *.*to'kms'@'188.188.188.% ' identified by'123.com';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> show master status;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000004 | 107 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> change master to master_host='188.188.188.190',master_user='kkk',master_password='123.com',master_log_file='master-bin-bin.000001',master_log_pos=107;
Query OK, 0 rows affected (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status\G
MySQL-2
mysql> grant replication slave on *.*to'kkk'@'188.188.188.%' identified by '123.com';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> show master status;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000003 | 334 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> change master to master_host='188.188.188.180',master_user='kms',master_password='123.com',master_log_file='master-bin-bin.000004',master_log_pos=107;
Query OK, 0 rows affected (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status\G
四、Nginx負(fù)載均衡配置
[root@zjx-0703-Nginx-load ~]# vim /usr/local/nginx/conf/nginx.conf
#gzip on;
#靜態(tài)頁面訪問地址
upstream zzz{
# 服務(wù)器地址,頁面IP:端口 工作優(yōu)先級(jí) 最大失敗次數(shù) 連接超時(shí)時(shí)間
server 172.169.25.253:80 weight=2 max_fails=2 fail_timeout=30s;
server 172.169.25.254:80 weight=3 max_fails=2 fail_timeout=30s;
}
動(dòng)態(tài)頁面訪問地址
upstream kkk{
server 188.188.188.180:80 weight=2 max_fails=2 fail_timeout=30s;
server 188.188.188.189:80 weight=2 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# 靜態(tài)頁面訪問配置
location ~*\.(html|gif|png|jpeg|jpg) {
proxy_pass http://zzz;
}
# 動(dòng)態(tài)頁面訪問配置
location ~ \.php$ {
proxy_pass http://kkk;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X_Real_IP $remote_addr;
proxy_set_header X_Forward_For $proxy_add_x_forwarded_for;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
nginx -s reload
進(jìn)入IP地址配置文件,將IP獲取方式改為static,之后在下面加入改內(nèi)容
IPADDR0=192.168.1.2
NETMASK0=255.255.255.0
IPADDR1=188.188.188.250
NETMASK1=255.255.255.0
IPADDR2=172.169.25.250
NETMASK=255.255.255.0
[root@zjx-0703-Nginx-load ~]# ip addr
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:3f:27:ac brd ff:ff:ff:ff:ff:ff
inet 172.169.25.250/16 brd 172.169.255.255 scope global ens33
valid_lft forever preferred_lft forever
inet 188.188.188.250/24 brd 188.188.188.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.1.2/24 brd 192.168.1.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::b3e1:947a:855d:f4cf/64 scope link
valid_lft forever preferred_lft forever
與以他兩個(gè)服務(wù)器ping通之后就OK了
五、DNS
[root@zjx-0703-DNS ~]# yum -y install bind
[root@zjx-0703-DNS ~]# vim /etc/*/*/*ens33
[root@zjx-0703-DNS ~]# systemctl restart network
[root@zjx-0703-DNS ~]# vim /etc/named.conf
[root@zjx-0703-DNS ~]# cd /var/named/
[root@zjx-0703-DNS named]# cp -p named.localhost proncomix.zone
[root@zjx-0703-DNS named]# vim /etc/named.rfc1912.zones
[root@zjx-0703-DNS named]# vim proncomix.zone
[root@zjx-0703-DNS named]# systemctl restart named
# named.rfc1912.zones在該配置文件文末添加以下內(nèi)容
[root@zjx-0703-DNS ~]# vim /etc/named.rfc1912.zones
zone "proncomix.com" IN {
type master;
file "proncomix.zone";
};
/etc/named.conf在該配置文件文末添加以下內(nèi)容
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
修改正向解析數(shù)據(jù)文件
[root@zjx-0703-DNS ~]# vim /var/named/proncomix.zone
$TTL 1D
@ IN SOA proncomix.com. root.proncomix.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.1.2
AAAA ::1
www A 192.168.1.2
[root@zjx-0703-DNS ~]# vim /etc/hosts
192.168.1.2 www.proncomix.com
六、客戶端訪問
重啟服務(wù)后,用客戶端訪問
在客戶端上指定一下DNS
客戶端IP—192.168.1.20
[root@zjx-0703-client ~]# vim /etc/resolv.conf
nameserver 192.168.1.10
訪問即可
# 訪問靜態(tài)
[root@zjx-0703-client ~]# firefox www.proncomix.com/
刷新頁面時(shí),出現(xiàn)兩個(gè)不同頁面,訪問成功
# 訪問動(dòng)態(tài)數(shù)據(jù)庫
[root@zjx-0703-client ~]# firefox www.proncomix.com/index.php
當(dāng)使用IP訪問Nginx是,發(fā)現(xiàn)能訪問成功
所以到Nginx主配置文件添加內(nèi)容
[root@zjx-0703-Nginx-load ~]# vim /usr/local/nginx/conf/nginx.conf
# 添加一個(gè)server,設(shè)置為使用IP訪問便報(bào)錯(cuò)404
server {
listen 80 default;
return 404;
}
客戶端在試著訪問
至此,實(shí)驗(yàn)完成
原文鏈接: https://blog.csdn.net/jfcjjg/article/details/107077659