一、Nginx简介
- Nginx是一款高性能、轻量级Web服务软件,特点如下:
- 稳定性高
- 系统资源消耗低
- 对HTTP并发连接的处理能力高(单台物理服务器可支持30000-50000个并发请求)
二、详细搭建步骤
-
实验环境:VMware Workstation 15.5、Centos 7.6、X Shell 6
-
本实验所需的软件包下载地址:https://wwa.lanzous.com/inHa0fdemnc
-
步骤如下:
1、将搭建所需要的五个源码包上传到/opt目录下,并解压缩
[root@localhost ~]# cd /opt
[root@localhost opt]# tar zxvf ncurses-5.6.tar.gz
[root@localhost opt]# tar zxvf nginx-1.12.2.tar.gz
[root@localhost opt]# tar zxvf mysql-boost-5.7.20.tar.gz
[root@localhost opt]# tar jxvf php-7.1.10.tar.bz2
[root@localhost opt]# unzip Discuz_X3.4_SC_UTF8.zip
2、清空防火墙规则并关闭系统核心防护功能
[root@localhost opt]# iptables -F
[root@localhost opt]# setenforce 0
3、安装编译及依赖环境
[root@localhost opt]# yum -y install gcc gcc-c++ zlib-devel pcre pcre-devel
4、进入nginx目录进行安装前配置
[root@localhost opt]# cd cd nginx-1.12.2/ ## 进入软件目录
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
5、编译&安装
[root@localhost nginx-1.12.2]# make && make install
6、将nginx中的命令建立软件界到系统中便于管理
[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
7、启动nginx服务
[root@localhost nginx-1.12.2]# nginx
8、添加Nginx系统服务
[root@localhost nginx-1.12.2]# vim /lib/systemd/system/nginx.service
写入以下内容:
[Unit]
Description=nginx
After=network=nginx
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUB $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WanteBy=multi-user.target
9、安装mysql必须的依赖环境
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake
10、进入mysql软件目录,进程安装前配置
[root@localhost mysql-5.7.20]# cd ../mysql-5.7.20/ ## 进入mysql目录
执行以下命令进行编译前配置:
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
11、编译&安装
[root@localhost mysql-5.7.20]# make && make install
12、创建mysql服务账户
[root@localhost mysql-5.7.20]# useradd -s /sbin/noligin mysql
13、数据库目录进行权限调整
[root@localhost mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/
14、编辑mysql配置文件
[root@localhost mysql-5.7.20]# vi /etc/my.cnf
将文件内所有内容删除,重新添加如下代码:
[client]
port=33306
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
15、设置系统环境变量,设置完成后重载配置文件
[root@localhost mysql-5.7.20]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost mysql-5.7.20]# echo 'export PATH' >> /etc/profile
[root@localhost mysql-5.7.20]# source /etc/profile
16、初始化数据库
[root@localhost mysql-5.7.20]# cd /usr/local/mysql/ ## 进入数据库目录
执行以下代码:
bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
17、将mysql命令建立软连接到systemctl使系统能识别到方便管理
[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
18、启动mysql服务
[root@localhost mysql]# systemctl start mysqld
19、设置MySQL数据库管理员密码
[root@localhost mysql]# mysqladmin -u root -p password "123456" ## 刚开始设密码是空的直接回车,然后输入密码123456,再次确认密码123456
20、登陆数据库
[root@localhost mysql]# mysql -u root -p
## 登陆后可以使用quit命令退出登录
21、安装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
22、对PHP进行编译安装前配置
[root@localhost mysql]# cd /opt/php-7.1.10/ ## 进入PHP软件目录
执行以下命令进行编译前配置:
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--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
23、编辑&安装
[root@localhost php-7.1.10]# make && make install
24、找到php服务的模板,然后生成一个配置文件到指定目录
[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
25、编辑并修改php配置文件
[root@localhost php-7.1.10]# vi /usr/local/php/lib/php.ini
修改如下内容:
mysqli.default_socket= /usr/local/mysql/mysql.sock ## 修改1170行
date.timezone=Asia/Shanghai ## 修改939行,设置时区
26、验证安装的模块
[root@localhost php-7.1.10]# /usr/local/php/bin/php -m
27、开启并优化fpm模块
[root@localhost php-7.1.10]# cd /usr/local/php/etc/ ## 进入目录
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf ## 复制配置文件模板
开启fpm模块
[root@localhost etc]# vi php-fpm.conf ## 编辑配置文件
将第17行前面的分号去掉:
pid = run/php-fpm.pid
28、将扩展配置文件开启
[root@localhost etc]# cd /usr/local/php/etc/php-fpm.d/
[root@localhost php-fpm.d]# cp www.conf.default www.conf
29、启用fpm
[root@localhost php-fpm.d]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
使用netstat查看端口是否开启:
[root@localhost php-fpm.d]# netstat -antp | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 21734/php-fpm: mast
30、让php中的命令让系统识别
[root@localhost php-fpm.d]# ln -s /usr/local/php/bin/* /usr/local/bin/
查看fpm进程是否开启:
[root@localhost php-fpm.d]# ps aux | grep -c "php-fpm"
4 ## 有四个进程开启
下面的步骤是让nginx服务支持php功能
31、修改nginx配置文件
[root@localhost php-fpm.d]# vi /usr/local/nginx/conf/nginx.conf ## 编辑nginx配置文件
插入以下代码:
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;
}
32、创建php默认站点页面
[root@localhost php-fpm.d]# cd /usr/local/nginx/html ## 进入站点目录
[root@localhost html]# mv index.html index.html.bak ## 将原先的html站点文件改名让系统不能识别
[root@localhost php-fpm.d]# vi index.php ## 创建一个php站点页面
33、重启nginx服务
[root@localhost html]# systemctl restart nginx
34、关闭系统核心防护功能并清空防火墙规则
[root@localhost html]# setenforce 0
[root@localhost html]# iptables -F
35、打开浏览器,访问服务器站点
192.168.50.134/index.php
所有服务环境均已经搭建完毕,下面开始论坛的部署
35、创建论坛数据库
[root@localhost html]# mysql -u root -p ## 回车后输入之前设置的密码‘123456’进入数据库
进入数据库后依次执行以下命令:
mysql> CREATE DATABASE bbs; ## 创建数据库
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin';
mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin';
mysql> flush privileges; ## 刷新数据库
创建完成后输入quit命令退出数据库
36、测试页面能否连接数据库,修改之前的php站点测试页面
[root@localhost html]# vi /usr/local/nginx/html/index.php
将之前的写入的配置全部删除,重新写入以下内容:
<?php
$link=mysqli_connect('192.168.50.134','bbsuser','admin'); ##IP根据实际设置
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>
37、将opt目录中解压的论坛源码复制到nginx站点目录下
[root@localhost html]# cd /opt/dir_SC_UTF8/ ## 进入论坛源码解压目录
[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs ## 将源码复制到nginx站点目录中
[root@localhost dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/ ## 进入论坛站点目录
进行目录赋权操作,要不然网页无法写入数据:
[root@localhost bbs]# chown -R root:nginx ./config/
[root@localhost bbs]# chown -R root:nginx ./data/
[root@localhost bbs]# chown -R root:nginx ./uc_client/
[root@localhost bbs]# chown -R root:nginx ./uc_server/
[root@localhost bbs]# chmod -R 777 ./config/
[root@localhost bbs]# chmod -R 777 ./data/
[root@localhost bbs]# chmod -R 777 ./uc_client/
[root@localhost bbs]# chmod -R 777 ./uc_server/
38、在浏览器中输入地址开始安装论坛
http://192.168.50.134/bbs/install/index.php ##IP地址根据实际情况替换
在“安装数据库”步骤,输入之前设置的数据库配置信息,并设置论坛后台的管理员用户名及密码
论坛开始安装,稍等片刻后论坛就安装完成了
点击右下角的连接可以进入论坛,或者在地址栏中输入以下地址也可以直接访问论坛首页
http://192.168.50.134/bbs/index.php
http://192.168.50.134/bbs/admin.php