搭建LNMP架构(Nginx、mysql、php)

一、安装Nginx

1.1 Nginx介绍

  • 是一款高性能,轻量级的web服务软件
  • 稳定性高
  • 系统资源消耗低
  • 对HTTP并发连接的处理能力高(活到现在的原因)
    单台服务器可支持30000~50000个并发请求

1.2 准备工作

  • 准备安装包 nginx-1.12.2.tar.gz
  • 安装工具和环境包
## 方便后续实验关闭防火墙和核心防护
[root@localhost bbs]# iptables -F  ## 关闭防火墙
[root@localhost bbs]# setenforce 0 ## 关闭核心服务
    
yum -y install \
pcre-devel \   ##  pcre支持正则表达式的功能
zlib-devel \  ## 提供压缩
gcc \    ## 支持C语言
gcc-c++  \   ## 支持C++语言
pcre  \  ## pcre语言
make  ## 编译

1.3 源码编译及安装

[root@localhost ~]# useradd -s /sbin/nologin -M nginx ## 创建不可登录的程序用户nginx 
[root@localhost nginx-1.12.2]# tar zxvf nginx-1.12.2.tar.gz   ## 解压nginx压缩包
[root@localhost nginx-1.12.2]# cd  nginx-1.12.2  ## 进入解压缩后的包
[root@localhost nginx-1.12.2]# 
./configure  --prefix=/usr/local/nginx \  ## 指定安装路径
--user=nginx \  ## 指定用户
--group=nginx \ ## 指定组
--with-http_stub_status_module  ## 统计模块
[root@localhost nginx-1.12.2]#  make && make install  ## 编译及安装

1.4 优化执行路径

[root@localhost ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ## 让系统能识别ngxin的命令

1.5 制作管理脚本

[root@localhost ~]# vim /etc/init.d/nginx 
#!/bin/bash
# chkconfig: - 99 20
# description:Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
 start)
        $PROG
        ;;
 stop)
        kill -s QUIT $(cat $PIDF)
        ;;
 restart)
        $0 stop
        $0 start
        ;;
 reload)
        kill -s HUP $(cat $PIDF)
        ;;
 *)
        echo "Usage: $0 {start|stop|restart|reload}"
        exit 1
 esac
exit 0
[root@localhost ~]# chmod +x /etc/init.d/nginx  ## 给予脚本执行权限
[root@localhost ~]# service nginx start  ## 启动nginx服务
[root@localhost ~]# netstat -atnp | grep "nginx" ## 查看 服务
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      28961/nginx: master 

二、部署Mysql数据库

2.1 准备工作

  • 准备好mysql压缩包 mysql-boost-5.7.20.tar
  • 准备环境和工具包
[root@localhost ~]# yum -y install ncurses ncurses-devel bison cmake
## bison用于自动生成语法分析器程序  ## 安装光盘自带的ncurses-devel包   autoconf 适应多种Unix类系统的shell脚本的工具
## cmake  编译分析工具 
[root@localhost ~]# useradd -s /sbin/nologin mysql  ## 创建程序用户mysql

2.2 Mysql源码编译及安装

[root@localhost ~]# tar zxvf  mysql-boost-5.7.20.tar.gz   ## 解压MySQL压缩包
[root@localhost ~]# cd mysql-5.7.20/  ## 进入解压后的安装包
[root@localhost ~]#
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \## DCMAKE_INSTALL_PREFIX  安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ ## DMYSQL_UNIX_ADDR=  数据库对接目录
-DSYSCONFDIR=/etc \   
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \   ## DDEFAULT_CHARSET  字符集为uft8 即中文
-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 \    ## -DMYSQL_DATADIR数据库数据管理用户目录 
-DWITH_BOOST=boost  \
-DWITH_SYSTEMD=1
[root@localhost mysql-5.7.20]# make && make install ## 编译及安装   时间较长需耐心等待

2.3 调整安装路径文件的权限

[root@localhost ~]#chown -R mysql:mysql /usr//local/mysql/  ## 属主 属组都必须是mysql用户

2.4 调整配置文件

[root@localhost mysql-5.7.20]#vi /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

2.5 设置环境变量

[root@localhost ~]#echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile  ## 将MySQL命令路径追加到 PATH环境 写入到 全局变量文件里面
[root@localhost ~]#echo 'export PATH' >>/etc/profile  ## 将PATH申明为全局变量
[root@localhost ~]#soure /etc/profile  ## 重新加载全局文件,使刚才问配置生效

2.6 初始化数据库

[root@localhost ~]#cd /usr/local/mysql
bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

2.7 开启数据库

[root@localhost ~]# cp usr/lib/systemd/system/mysqld.service  /usr/lib/systemd/system/ ## 系统能识别 能用systemctl命令开启
[root@localhost ~]# systemctl  start mysqld  ## 其他如自启动关闭查看状态跟其他服务命令一个格式
[root@localhost mysql]# netstat -anpt | grep 3306 ## 开启后查看服务
tcp6       0      0 :::3306                 :::*                    LISTEN      47949/mysqld   

2.8 为数据库设置管理员密码

[root@localhost mysql]#  mysqladmin   -u  root -p  password
Enter password:      ## 原来没密码 直接回车
New password:         ## 输入新密码
Confirm new password: 
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

三、 安装PHP

3.1 准备工作

  • 准备PHP 安装包 php-7.1.10.tar
  • 准备环境及工具
[root@localhost ~]# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib  zlib-devel curl curl-devel openssl openssl-devel

3.2 编译安装

[root@localhost ~]# tar jxvf php-7.1.10.tar.bz2   ## 解压压缩包
[root@localhost ~]# cd php-7.1.10/   ## 进入安装包
[root@localhost php-7.1.10]# 
./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
[root@localhost php-7.1.10]# make && make install

3.3 修改配置文件

[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini ## 核心配置文件
[root@localhost php-7.1.10]# vim /usr/local/php/lib/php.ini
mysqli.default_socket=/usr/local/mysql/mysql.sock  ## 在配置文件1170行
date.timezone = Asia/Shanghai   ## 在939行

3.4 配置及优化FPM 模块

[root@localhost php-7.1.10]# cd /usr/local/php/etc/    
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf ## 从模板复制进程服务配置文件
[root@localhost etc]# cd /usr/local/php/etc/php-fpm.d/
[root@localhost php-fpm.d]# cp www.conf.default www.conf ## 从模板中复制一份扩展配置文件
[root@localhost php-fpm.d]# vim /usr/local/php/etc/php-fpm.conf
pid = run/php-fpm.pid ## 去掉开头分号
[root@localhost php-fpm.d]# /usr/local/php/sbin/php-fpm -c  /usr/local/php/lib/php.ini  ## 启动fpm模块  -c 是以config模式 在/usr/local/php/lib/php.ini  启动
[root@localhost php-fpm.d]# netstat -ntap | grep 9000  ## 查看fpm模块是否启动
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      18694/php-fpm: mast 
[root@localhost php-fpm.d]# ln -s /usr/local/php/bin/* /usr/local/bin/ ## 优化命令路径
[root@localhost php-fpm.d]# ps aux |grep -c "php-fpm"     ## 查看多少php-fpm进程
4

3.5 让nginx支持PHP 功能

[root@localhost php-fpm.d]# vim /usr/local/nginx/conf/nginx.conf ## 进入nginx文件  在server里面写
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;
        }
[root@localhost html]# mv index.html  index.bak ## 修改原文件名后缀,使其无法识别,留着万一后面有用
[root@localhost html]# cp index.bak  index.php  ## 复制一份后缀为php的文件
[root@localhost html]# vim index.php  
<?php                     ## 显示php页面
phpinfo();
?>
[root@localhost html]# iptables -F  ## 清空防火墙
[root@localhost html]# setenforce 0  ## 关闭核心防护
[root@localhost html]# service  nginx restart    ## 重启服务

3.6 测试

  • 登录http://IP地址/index.php
    在这里插入图片描述

四、测试数据库能否连接

4.1 在数据库中创建数据库用户

[root@localhost ~]#  mysql -u root -p  ## 若无法连接用mysql -uroot -h 127.0.0.1 -p 连接
Enter password: 
mysql> CREATE DATABASE bbs;   ## 创建数据库bbs
Query OK, 1 row affected (0.00 sec)

mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';  ## 创建能使用bbs的用户
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;  ## 刷新
Query OK, 0 rows affected (0.00 sec)

4.2 修改页面文件测试

[root@localhost mysql]# vim /usr/local/nginx/html/index.php ## 修改页面文件测试
<?php
$link=mysqli_connect('192.168.233.100','bbsuser','admin123');  ## 连接数据库
if($link) echo"<h1>Success!!</h1>";     ## 连接成功输出Success
else echo "Fail!!"  ## 连接失败输出Fail 
?>

  • 连接成功
    在这里插入图片描述

五、安装论坛

5.1 准备工作

  • 准备 Discuz_X3.4_SC_UTF8.zip 压缩包

5.2 修改配置文件

[root@localhost ~]# cd dir_SC_UTF8/
[root@localhost ~]# unzip Discuz_X3.5_SC_UTF8.zip
[[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs/  ## 将upload包复制到nginx目录下边
[root@localhost dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/  ## 进入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/

5.3 安装论坛

  • 进入 http://192.168.233.200/bbs/install/index.php
    在这里插入图片描述
  • 点击我同意 ,发现环境全部符合要求
    在这里插入图片描述
  • 选择全部安装
    在这里插入图片描述
  • 创建 连接数据库

在这里插入图片描述

  • 安装成功
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47219725/article/details/107887298