• LNMP架构安装以及部署DISCUZ!社区论坛应用


    目录

    一、LNMP架构部署思路

    二、开始进行部署

    2.1、安装依赖环境

    2.2、安装Nginx服务

    上传nginx安装包到opt目录下

    进入到源码文件中,对其进行编译

    解释安装

    打开服务进行验证

    将nginx添加为系统服务

    2.3、安装MySQL服务

    安装mysql的环境依赖包

    创建运行用户(注意:不要加-M)

    上传mysql安装包

    解压编译安装

    对数据库权限进行调整

    调整配置文件

    设置环境变量

    初始化数据库

    重启数据库密码

    2.4、安装php中间件

    取php安装包

     解压安装包

    第一步还是安装一些依赖软件

    编译安装

    扩展配置文件

    配置及优化FPM模块

    开启php服务 

    配置nginx让nginx支持PHP功能

    测试数据库工作是否正常

    2.6、LNMP应用部署

    将应用包放到opt下

     解压

    登陆管理员界面

    2.7、LNMP部署完成进行验证

    管理后台的页面

     论坛主页面

    安装时的报错!!!

    错误1:

    错误2:


            LNMP 指的是一个基于 CentOS/Debian 编写的 Nginx、Linux、MySQL、PHP,可以在独立主 机上轻松的安装 LNMP 生产环境。本案例主要介绍 LNMP 框架安装方法以及部署 Discuz!社 区论坛应用。

    一、LNMP架构部署思路

            1、安装Nginx服务

            2、安装MySQL服务

            3、安装配置PHP解析环境

            4、部署Discuz!社区论坛Web应用

    二、开始进行部署

    虚拟机容量尽量大点(40g以上)

    2.1、安装依赖环境

            在安装前需要安装pcre、zlib等软件,因为nginx等软件的配置和允许需要

    yum install -y gcc gcc-c++ make pcre pcre-devel expat-devel perl zlib zlib-devel

    2.2、安装Nginx服务

    在安装前需要创建nginx的用户,以便更准确的控制其访问权限,增加灵活性,降低安全风险

    useradd -M -s /sbin/nologin nginx

     

    上传nginx安装包到opt目录下

     也可以去官网下载:http://nginx.org/

     tar -zxvf nginx-1.15.9.tar.gz   #对其进行解压

     进入到源码文件中,对其进行编译

    cd nginx-1.15.9/

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

    prefix代表工作目录,决定软件在哪个工作目录

    user 管理软件的用户

    group 管理软件的组

    --with 开启或集成 -http_stub_status_module   集成http协议请求的一些状态统计模块

    这样就编译完成了

    解释安装

    make && make install #解释安装

     这样就成功了

    我们进入到/usr/local下看一下

    先不要启动,为了便于日后更好的允许,我们需要为其创建软连接,或者复制到/usr/local/sbin

    ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx

     打开服务进行验证

     

     到此nginx就安装成功了。

    将nginx添加为系统服务

    vim /lib/systemd/system/nginx.service  

    1. [Unit]
    2. Description=nginx ####描述
    3. After=network.target ####描述服务类别
    4. [Service]
    5. Type=forking ###后台运行形式
    6. PIDFile=/usr/local/nginx/logs/nginx.pid ###PID文件位置
    7. ExecStart=/usr/local/nginx/sbin/nginx ###启动服务
    8. ExecReload=/usr/bin/kill -s HUP $MAINPID ###根据PID重载配置
    9. ExecStop=/usr/bin/kill -s QUIT $MAINPID ###根据PID终止进程
    10. PrivateTmp=true
    11. [Install]
    12. WantedBy=multi-user.target

     然后我们测试一下

    但是在开启以前一定要前(nginx -s stop)

    systemctl start nginx

     

    就OK了 

    2.3、安装MySQL服务

    安装mysql的环境依赖包

    yum -y install \ ncurses \ #字符终端工具包 UTF-8 ncurses-devel \ bison \ #函数库 cmake

    yum -y install  ncurses  ncurses-devel  bison cmake

    创建运行用户(注意:不要加-M)

    useradd -s /sbin/nologin mysql 

     

    上传mysql安装包

     解压编译安装

     cd mysql-5.7.20/ #进入源码包

    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

    1. cmake \
    2. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定安装路径(目录)
    3. -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定通信文件,连接数据库,通讯协议的载体⭐⭐⭐
    4. -DSYSCONFDIR=/etc \ #配置文件目录指向/etc
    5. -DSYSTEMD_PID_DIR=/usr/local/mysql \ #指定pid目录文件
    6. -DDEFAULT_CHARSET=utf8 \ #字符集设定
    7. -DDEFAULT_COLLATION=utf8_general_ci \ #字符集设定
    8. -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #以下三行均为存储引擎ENGINE
    9. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
    10. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    11. -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
    12. -DMYSQL_DATADIR=/usr/local/mysql/data \ #指定数据存放位置
    13. -DWITH_BOOST=boost \ #底层C++运营库 独立的表空间结构
    14. -DWITH_SYSTEMD=1 #守护进程id 守护进程
    15. ——》跑在后台的一个支持服务正常运行的一个特殊进程

    make && make install 

    整个过程会挺慢的,需要耐心等待

    对数据库权限进行调整

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

    调整配置文件

    vi /etc/my.cnf

    将原有内容删除,替换下面内容

    1. #删除原有内容,添加以下内容
    2. [client] #client 用户程序
    3. port = 3306
    4. default-character-set=utf8
    5. socket = /usr/local/mysql/mysql.sock
    6. [mysql] #mysql 软件内容
    7. port = 3306 #端口
    8. default-character-set=utf8
    9. socket = /usr/local/mysql/mysql.sock
    10. [mysqld] #以后对mysql配置时 更多的会针对于mysqld进行配置
    11. user = mysql #程序用户
    12. basedir = /usr/local/mysql #工作目录
    13. datadir = /usr/local/mysql/data #数据文件目录
    14. port = 3306 #端口
    15. character_set_server=utf8 #服务的字符集
    16. pid-file = /usr/local/mysql/mysqld.pid #PID文件目录
    17. socket = /usr/local/mysql/mysql.sock #通讯文件
    18. server-id = 1 #服务id,在之后的mysql集群中用于标识mysql服务器
    19. 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

    #更改一下文件属性

    chown mysql:mysql /etc/my.cnf

    设置环境变量

    echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile

    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

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

    #将mysql称为系统服务,这样就能使用systemctl去启动了

    重启数据库密码

    mysqladmin -u root -p password

     登陆数据库查看一下

    这样数据库就装完了

    2.4、安装php中间件

    取php安装包

     解压安装包

    tar -jxvf php-7.1.10.tar.bz2

    第一步还是安装一些依赖软件

    yum -y install \

    libjpeg \ libjpeg-devel \

    libpng libpng-devel \

    freetype freetype-devel \

    libxml2 \

    libxml2-devel \

    zlib zlib-devel \

    curl curl-devel \

    openssl openssl-devel

    1. #各个依赖功能
    2. libjpeg \ #jpg图片依赖
    3. libjpeg-devel \
    4. libpng libpng-devel \ #png图片依赖
    5. freetype freetype-devel \ #字体
    6. libxml2 \ #支持xml
    7. libxml2-devel \
    8. zlib zlib-devel \ #压缩格式
    9. curl curl-devel \ #识别url
    10. openssl openssl-devel
    11. ##xml 支持扩展性标记语言,用于承载数据url 网址 openssl 安全性访问/加密访问

    编译安装

    cd 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

    安装

    make && make install

    扩展配置文件

    还是在/opt中php的源码文件中将php.ini-development复制到/usr/local/php/lib下

     cp php.ini-development /usr/local/php/lib/php.ini

    vim /usr/local/php/lib/php.ini #将下面的话复制进去

    1. /1170行 mysqli.default_socket = /usr/local/mysql/mysql.sock
    2. date.timezone = Asia/Shanghai

     

      验证一下安装的模块

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

     这样就添加成功了

    配置及优化FPM模块

    #复制主配置文件及php-fpm配置文件

    cd /usr/local/php/etc/

    cp php-fpm.conf.default php-fpm.conf

    cd /usr/local/php/etc/php-fpm.d/

    cp www.conf.default www.conf

     vim /usr/local/php/etc/php-fpm.conf

    pid = run/php-fpm.pid  #开启pid支持(可运行)

    开启php服务 

     /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini #启动php   这里的-c代表conf

    netstat -anpt | grep 9000

     这样就开启了

    配置nginx让nginx支持PHP功能

    cd /usr/local/nginx/conf/

    vim nginx.conf

    1. location ~ \.php$ {
    2. root html;
    3. fastcgi_pass 127.0.0.1:9000;
    4. fastcgi_index index.php;
    5. fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; ####注意目录名称
    6. include fastcgi_params;
    7. }
    8. #注意下面的location也要添加

     在去html目录下去创建一个.php的文件

    vim /usr/local/nginx/html/index.php

    1. phpinfo();
    2. ?>

     然后重启,去查看这个网页

     出现这个页面就是连接成功了

    测试数据库工作是否正常

    mysql -u root -p

    这样就成功进入数据库内了

     CREATE DATABASE bbs;

    GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';

    GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';

    flush privileges;

    更改nginx中index.php中内容

     vim /usr/local/nginx/html/index.php ###原来的测试页内容更改如下

    1. $link=mysqli_connect('192.168.130.156','bbsuser','admin123');
    2. if($link) echo "

      Success!!

      "
      ;
    3. else echo "Fail!!";
    4. ?>

     再去测试一下

     这样就说明与数据库连接成功了。

    2.6、LNMP应用部署

    将应用包放到opt下

     解压

    unzip Discuz_X3.4_SC_UTF8.zip -d /tmp #解压到tmp目录下

    cd /tmp/dir_SC_UTF8/

    cp -r upload/ /usr/local/nginx/html/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.130.156/bbs/install/index.php #这是安装页面

     出现这个界面就是应用成功了

    点击我同意进行下一步

     继续下一步

     

     

    这样就安装完成了,点击右下角访问 

    我们就会跳转到这个页面

    登陆管理员界面

    登陆后页面出不来,我们只需要去删除这个软件

    cd /usr/local/nginx/html/bbs/

    mv install/ install.lock

    chmod 600 install.lock/

     

    然后我们刷新一下页面

     到此配置完成

    2.7、LNMP部署完成进行验证

    管理后台的页面

    192.168.130.156/bbs/admin.php #这是后台管理页面

     论坛主页面

    192.168.130.156/bbs/index.php

    安装时的报错!!!

    错误1:

    在安装的时候会报错

    1. -- Configuring incomplete, errors occurred!
    2. See also "/opt/mysql-5.7.20/CMakeFiles/CMakeOutput.log".
    3. See also "/opt/mysql-5.7.20/CMakeFiles/CMakeError.log".

     这是因为我们缺少一些编译软件,所以在安装时一定要将依赖的环境软件安装全

    yum -y install  ncurses ncurses-devel  bison  cmake  gcc  gcc-c++

    再次进入源码包暗处缓存文件就行

    cd mysql-5.7.20/ #进入源码包

    rm -rf CMakeCache.txt

     然后再次编译就行

    问题解决!

    错误2:

    当我们初始化数据库的时候,可能会报这个错

     这个问题很好解决

    我们进入MySQL的文件

    将data文件删除,再次初始化问题就能得到解决

  • 相关阅读:
    D. Matrix Cascade(结构体记录前面对后面的影响)
    为什么建议使用虚拟机来安装Linux?
    SUSE 12双网卡绑定
    金仓数据库KingbaseES安全指南--6.13. 关于身份验证的常见问题
    【Leetcode】207.课程表
    基于象虫损害优化算法的投资组合问题(Matlab代码实现)
    [PAT-Advanced] A1015 Reversible Primes (20)
    Java多线程探究【四线程协作】
    Django设置中文
    Linux系列之比较命令
  • 原文地址:https://blog.csdn.net/qq_57377057/article/details/126484399