WEB服务器群集架构——部署LNMP架构平台

LNMP的构成

  • L 表示服务器操作系统使用的是Linux
  • A 表示网站服务使用的是Nginx
  • M 表示网站后台使用的是Mysql数据库,提供PHP程序对数据的读写与存储。
  • P 表示网站使用的是Perl/PHP/Python等语言开发,提供给Apache访问接口cgi或者Fast cgi(FPM)以及mysql数据库的连接环境。

手工编译安装Ngnix

解压Nginx

  • nginx-1.12.2.tar.gz
tar zxvf nginx-1.12.2.tar.gz

创建不允许登录系统的用户

useradd -M -s /sbin/nologin nginx

安装编译工具

yum install gcc gcc-c++ pcre-devel zlib-devel -y		#c语言和c++的编译器、make编译工具、pcre-devel 开发环境

perl语言是个工具,类似shell脚本,也是支持awk、sed正则表达式的操作,专注于制作正则表达式里的工具,pcre-devel 开发,perl编译器

进入nginx-1.12.2路径下,找到configure文件进行配置

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

编译和安装
上面的是配置文件

make && make install

make的过程就是把刚刚的配置文件转换成可执行性文件,能执行的文件就是二进制文件,机器能识别而人识别不了 ,转换成机器能够识别的文件,二进制文件

给 Nginx 创建一个软链接,方便管理

cd /lib/systemd/system/
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

添加脚本文件,便于用 systemctl 工具来进行管理

cd /lib/systemd/system

vim nginx.service
[Unit]
Description=nginx     					     
After=network.target      					 #描述服务类别
[Service]     
Type=forking      							 #后台运行形势
PIDFile=/usr/local/nginx/logs/nginx.pid 	 #PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx    	 #启动服务位置
ExecReload=/usr/bin/kill -s HUP $MAINPID 
ExecStop=/usr/bin/kill -s QUIT $MAINPID 
PrivateTmp=true  
[Install] 
WantedBy=multi-user.target

添加权限

chmod 754 nginx.service

开启服务

systemctl start nginx.service

关闭防火墙

systemctl stop firewalled.service  #关闭防火墙
setenforce 0                       #安全性功能关闭

安装Mysql

安装环境包、创建用户

yum -y install \
ncurses \
ncurses-devel \
bison \
cmake

useradd -s /sbin/nologin mysql		#创建用户

tar zxvf mysql-boost-5.7.20.tar.gz	#解压缩到自定义位置

解压缩后,进入mysql-5.7.20路径下

tar zxvf mysql-boost-5.7.20.tar.gz	#解压缩到自定义位置
cd mysql-5.7.20

找到cmake文件,进行配置

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

编译和安装,一般make和make install还是分开进行

make && make install

修改mysql权限

cd /usr/local/
chown -R mysql:mysql /usr/local/mysql/

修改my.cnf配置文件,先删除/etc/my.cnf文件中的所有内容,添加以下这段内容

vim /etc/my.cnf

[client]
port=3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock

[mysql]
port=3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock

[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
character_set_server=utf8
pid-file=/usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
server-id=1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

环境变量设置

echo  'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile   #将MySQL写到本地环境配置中
echo 'export PATH' >> /etc/profile					#设置全局环境配置
source /etc/profile   								#启动

初始化数据库

cd /usr/local/mysql/

bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data 

把mysql服务配置文件复制到/usr/lib/systemd/system/下便于使用systemctl工具进行管理

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

打开服务,检查3306端口是否开启

systemctl start mysql.service		#开启mysql服务
netstat -anpt | grep 3306			#查看端口是否开启

设置mysql密码
第一次修改默认无密码,直接输入新密码

mysqladmin -u root -p password

安装PHP

安装环境包

yum -y \
install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

解压缩文件,进入php-7.1.10目录

tar jxvf php-7.1.10.tar.bz2
cd php-7.1.10

找到configure文件,进行配置

./configure \
--prefix=/usr/local/php \            			   #安装路径
--with-mysql-sock=/usr/local/mysql/mysql.sock \    #连接文件建立通信桥梁
--with-mysqli \   								   #客户端支持mysql数据库
--with-zlib \
--with-curl \     								   #支持上传下载功能
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \      						   #支持多字节的字符串
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip   									   #zip压缩包

编译和安装

make && make install

复制配置文件到lib路径下

cp php.ini-development /usr/local/php/lib/php.ini   #先复制一份到lib路径下

修改 /usr/local/php/lib/php.ini 文件

vim /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock  #指定路径
date.timezone = Asia/Shanghai                        #指定时区

检验PHP安装模块

/usr/local/php/bin/php -m

配置及优化 FPM 模块

cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf   #复制一份到 php-fpm.conf
vim php-fpm.conf    #进入文件
pid = run/php-fpm.pid    #开启pid(去掉行首的注释符即可)

cd /usr/local/php/etc/php-fpm.d/   
cp www.conf.default www.conf      	   #复制扩展包

启动PHP、并检查9000端口是否打开

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini

netstat -napt | grep 9000

创建软链接

ln -s /usr/local/php/bin/* /usr/local/bin/

设置让 nginx 支持 PHP

vim /usr/local/nginx/conf/nginx.conf

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME   /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }

重启nginx服务

systemctl restart nginx

新建文件设置PHP首页

cd /usr/local/nginx/html

vim index.php


重启nginx服务

systemctl stop nginx.service
systemctl start nginx.service

打开浏览器,输入"http://192.168.15.133/index.php"来进行测试

搭建Discuz论坛

进入数据库

mysql -u root -p

创建bbs数据库,设置用户bbsusers权限

CREATE DATABASE bbs;
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;

解压缩Discuz_X3.4_SC_UTF8.zip文件到自定义位置

unzip Discuz_X3.4_SC_UTF8.zip -d /opt/Discuz 	#-d后设置自定义位置

授权

cd dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs

在数据库bbs,修改权限

cd /usr/local/nginx/html/bbs/
chown -R root:nginx ./config/
chown -R root:nginx ./data/
chown -R root:nginx ./uc_client/
chown -R root:nginx ./uc_server/

chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/

进入网站安装论坛测试
192.168.15.133/bbs/install/index.php

你可能感兴趣的:(WEB服务器群集架构)