使用LNMP架构搭建网站
环境准备
| 主机名 |
WanIP |
LanIP |
角色 |
安装应用 |
| web01 |
10.0.0.7 |
172.16.1.7 |
web网站,nfs客户端 |
nginx,php,nfs |
| web02 |
10.0.0.8 |
172.16.1.8 |
web网站,nfs客户端 |
nginx,php,nfs |
| nfs |
10.0.0.31 |
172.16.1.31 |
nfs服务端,rsync客户端 |
nfs,rsync,inotify |
| backup |
10.0.0.41 |
172.16.1.41 |
rsync服务端,nfs服务端(备机) |
nfs,rsync |
| db01 |
10.0.0.51 |
172.16.1.51 |
数据库 |
mariadb |
部署web网站(wen01,web02)
1.配置nginx的官方源和php第三方源
[root@web01 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[root@web01 ~]# cat /etc/yum.repos.d/php.repo
[php-webtatic]
name = PHP Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0
2.安装php,nginx,nfs
yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb nginx mariadb-server nfs-uilts
3.配置nginx虚拟主机配置文件
vim /etc/nginx/conf.d/blog.jl.com.conf
server{
listen 80;
server_name www.jl.com;
root /blog/wecenter;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
4.修改nginx启动用户
[root@web02 ~]# vim /etc/nginx/nginx.conf
user www;
5.修改php启动用户
[root@web01 ~]# vim /etc/php-fpm.d/www.conf
; Start a new pool named 'www'.
[www]
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = www
; RPM: Keep a group allowed to write in log dir.
group = www
6.创建www用户
[root@web02 ~]# groupadd www -g 666
[root@web02 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
7.创建站点目录
mkdir /blog
8.授权站点目录
chown www:www /blog
9.测试nginx连接php
[root@web02 ~]# vim /blog/wecenter/info.php
<?php
phpinfo()
?>
10.windows域名解析
10.0.0.8 blog.jl.com
11.浏览器访问
![]()
12.下载代码到站点目录中
13.解压文件
[root@web02 /blog/wecenter]# unzip WeCenter_3-2-1.zip
14.给站点目录授权
chown -R www:www /blog
部署数据库(db01)
1.安装数据库
yum install -y mariadb-server
2.启动数据库并加入开机自启
[root@db01 ~]# systemctl start mariadb
[root@db01 ~]# systemctl enable mariadb
3.给mysql管理员用户设置密码
[root@db01 ~]# mysqladmin -uroot -p password '123'
4.连接数据库
mysql -uroot -p123
5.创建数据库
MariaDB [(none)]> create database wecenter;
6.创建用户
MariaDB [(none)]> grant all on *.* to wt_user@'%' identified by '123';
7.查看数据库是否创建成功
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| wecenter |
+--------------------+
5 rows in set (0.00 sec)
8.查看用户是否创建成功
MariaDB [(none)]> select user,host from mysql.user;
+---------+-----------+
| user | host |
+---------+-----------+
| wt_user | % |
| root | 127.0.0.1 |
| root | ::1 |
| | db01 |
| root | db01 |
| | localhost |
| root | localhost |
+---------+-----------+
wecenter库:wecenter
wecenter用户:wt_user
wecenter用户密码:123
wecenter用户IP:%
9.测试php是否可以和mysql建立连接
[root@web02 /blog/wecenter]# vim pm.php
<?php
$servername = "10.0.0.51";
$username = "wt_user";
$password = "123";
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
// 检测连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "php可以连接MySQL...";
?>
<img style='width:100%;height:100%;' src=https://blog.driverzeng.com/zenglaoshi/php_mysql.png>
![]()
部署web网站(web01,web02)
1.访问网站
![]()
2.填写配置系统
![]()
3.创建用户
![]()
![]()
4.将web02站点目录下的代码复制到web01中
scp -r /blog/* 172.16.1.7:/blog/
5.使用web01访问网站
![]()
配置nfs共享存储-服务端(nfs,backup)
1.安装nfs服务
yum install -y nfs-utils
2.修改nfs配置文件
[root@nfs ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,anonuid=666,anongid=666,all_squash)
3.创建共享目录
mkdir /data
4.创建www用户和组
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
5.授权共享目录
chown www:www /data
6.启动nfs加入开机自启
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl enable nfs
7.检查nfs配置文件是否生效
[root@nfs ~]# cat /var/lib/nfs/etab
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)
配置nfs客户端(web01,web02)
1.安装nfs服务
yum install -y nfs-utils
2.查看挂载点
[root@web01 /blog/wecenter]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
3.拷贝已有的数据到共享目录中
scp -r /blog/wecenter/uploads/article/ 172.16.1.31:/data
4.给共享目录授权
chown -R www:www /data
5.挂载目录
mount -t nfs 172.16.1.31:/data /blog/wecenter/uploads/
6.查看是否挂载成功
[root@web02 /blog/wecenter]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.7G 17G 9% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 19G 1.4G 18G 8% /blog/wecenter/uploads
使用sersync部署数据同步-服务端(backup)
1.安装rsync
[root@backup ~]# vim /etc/rsyncd.conf
uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[sync_data]
comment = welcome to oldboyedu backup!
path = /data
3.创建密码文件
echo 'rsync_backup:123'>/etc/rsync.passwd
4.修改密码文件权限为600
chmod 600 /etc/rsync.passwd
5.启动rsync服务并加入开机自启
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
配置rsync客户端(nfs)
1.安装rsync,inotify
[root@nfs ~]# yum install -y rsync inotify-tools
2.创建rsync的密码文件
[root@nfs ~]# echo '123' > /etc/rsync.passwd
3.修改密码文件权限为600
[root@nfs ~]# chmod 600 /etc/rsync.passwd
4.推数据测试rsync是否配置成功
![]()
5.安装sersync的二进制包:
wget http://test.driverzeng.com/other/sersync2.5.4_64bit_binary_stable_final.tar.gz
6.解压安装包
tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
7.修改sersync配置文件
vim GNU-Linux-x86/confxml.xml
![]()
8.启动服务
[root@nfs ~]# /root/GNU-Linux-x86/sersync2 -rdo /root/GNU-Linux-x86/confxml.xml
9.查看服务端的/data目录下是否有客户端的数据
![]()