Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)

目录标题

  • LNMP架构
  • LNMP架构与LAMP架构的区别
  • 编译安装 Nginx 服务
  • 编译安装 mysqld 服务
  • 编译安装 PHP 解析环境
  • 安装论坛

LNMP架构

  • Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器
  • Mysql是一个小型关系型数据库管理系统
  • PHP是一种在服务器端执行的嵌入HTML文档的脚本语言
  • Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler
    站点开发的,已经在一些俄罗斯的大型网站上运行多年,相当的稳定
  • Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少

LNMP架构与LAMP架构的区别

  • 优点:
    • 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率
    • 作为负载均衡服务器:Nginx 既可以在内部直接支持Rails和PHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多
    • 作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验
    • Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级

编译安装 Nginx 服务

  • 首先准备实验环境(生产环境中防火墙不关闭的情况下开启对应的端口即可)
    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    在这里插入图片描述
  • 1、安装依赖包
    yum install -y pcre-devel zlib-devel gcc gcc-c++ make
  • 2、创建运行用户
    useradd -M -s /sbin/nologin nginx
    在这里插入图片描述
  • 3、编译安装
    cd /opt将安装Nginx所需软件包传到/opt目录下
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第1张图片
    tar zxvf nginx-1.12.0.tar.gz -C /opt/解包
    在这里插入图片描述
    cd nginx-1.12.0/
    ./configure \
    --prefix=/usr/local/nginx \
    --user=nginx \
    --group=nginx \
    --with-http_stub_status_module状态统计模块
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第2张图片
    make && make install
    在这里插入图片描述
  • 4.优化路径
    ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
    优化完路径后可以直接执行Nginx命令开启服务,关闭服务可以直接杀掉进程kill -s QUIT 指定pid号
    在这里插入图片描述
  • 5.添加 Nginx 系统服务
    vim /lib/systemd/system/nginx.service
    在这里插入图片描述
    [Unit]
    Description=nginx
    After=network.target
    [Service]
    Type=forking
    PIDFile=/usr/local/nginx/logs/nginx.pid
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s QUIT $MAINPID
    PrivateTmp=true
    [Install]
    WantedBy=multi-user.target
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第3张图片
    chmod 754 /lib/systemd/system/nginx.service可加可不加
    systemctl start nginx.service
    systemctl enable nginx.service
    在这里插入图片描述
    netstat -natp | grep 80查看端口是否开启
    在这里插入图片描述
    此时Nginx服务搭建好了可以通过浏览器查看
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第4张图片

编译安装 mysqld 服务

  • 1.将安装mysql 所需软件包传到/opt目录下
    mysql-5.7.17.tar.gz
    boost_1_59_0.tar.gz支持c++的运行库
    在这里插入图片描述
  • 2.安装环境依赖包
    yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
  • 3.配置软件模块
    tar zxvf mysql-5.7.17.tar.gz
    tar zxvf boost_1_59_0.tar.gz解压软件包
    mv boost_1_59_0 /usr/local/boost重命名
    cd /opt/mysql-5.7.17/
    在这里插入图片描述
    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_EXTRA_CHARSETS=all \
    -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=/usr/local/boost \
    -DWITH_SYSTEMD=1
    注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第5张图片
  • 4.编译及安装
    make && make install
  • 5.创建mysql用户
    useradd -M -s /sbin/nologin mysql
  • 6.修改mysql 配置文件
    vim /etc/my.cnf
    删除原配置项,再重新添加下面内容100dd就好

[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
auto-rehash开启自动补全功能

[mysqld]服务全局设置
user = mysql设置管理用户
basedir=/usr/local/mysql指定数据库的安装目录
datadir=/usr/local/mysql/data指定数据库文件的存储路径
port = 3306指定端口
character-set-server=utf8设置服务器字符集编码格式为utf8
pid-file = /usr/local/mysql/mysqld.pid指定pid 进程文件路径
socket=/usr/local/mysql/mysql.sock指定数据库连接文件
bind-address = 0.0.0.0设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开
skip-name-resolve禁用DNS解析
max_connections=2048设置mysql的最大连接数
default-storage-engine=INNODB指定默认存储引擎
max_allowed_packet=16M设置数据库接收的数据包大小的最大值
server-id = 1指定服务ID号

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
在这里插入图片描述

  • 7.更改mysql安装目录和配置文件的属主属组
    chown -R mysql:mysql /usr/local/mysql/
    chown mysql:mysql /etc/my.cnf
    在这里插入图片描述
  • 8.设置路径环境变量
    echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
    source /etc/profile
    在这里插入图片描述
  • 9.初始化数据库
    cd /usr/local/mysql/bin/
    ./mysqld \
    --initialize-insecure \生成初始化密码为空
    --user=mysql \指定管理用户
    --basedir=/usr/local/mysql \指定数据库的安装目录
    --datadir=/usr/local/mysql/data指定数据库文件的存储路径
    在这里插入图片描述
  • 10.添加mysqld系统服务
    cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/用于systemctl服务管理
    systemctl daemon-reload刷新识别
    systemctl start mysqld.service开启服务
    systemctl enable mysqld开机自启动
    netstat -anpt | grep 3306查看端口是否开启
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第6张图片
  • 11.修改mysql 的登录密码
    mysqladmin -u root -p password "123456"给root账号设置密码为123456,提示输入的是原始密码(为空)
    在这里插入图片描述
  • 12.授权远程登录
    mysql -u root -p
    grant all privileges on *.* to 'root'@'%' identified by '123456';授予root用户可以在所有终端远程登录,使用的密码是123456,并对所有数据库和所有表有操作权限
    show databases;查看当前已有的数据库
    quit退出
    在这里插入图片描述

编译安装 PHP 解析环境

  • 1.将安装PHP 所需软件包传到/opt目录下
    php-7.1.10.tar.bz2
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第7张图片
  • 2.安装GD库和GD库关联程序,用来处理和生成图片
    yum -y install \
    gd \
    libjpeg libjpeg-devel \
    libpng libpng-devel \
    freetype freetype-devel \
    libxml2 libxml2-devel \
    zlib zlib-devel \
    curl curl-devel \
    openssl openssl-devel
  • 3.配置软件模块
    tar jxvf php-7.1.10.tar.bz2解压包
    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
  • 4.编译及安装
    make && make install
  • 5.路径优化
    ln -s /usr/local/php/bin/* /usr/local/bin/
    ln -s /usr/local/php/sbin/* /usr/local/bin/
    在这里插入图片描述
  • 6.调整PHP配置文件
    • php有三个配置文件
      php.ini主配置文件
      php-fpm.conf进程服务配置文件
      www.conf扩展配置文件
    • 设置主配置文件
      cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini
      vim /usr/local/php/lib/php.ini
      在这里插入图片描述
      1170行修改与MySQL的连接通讯文件
      mysqli.default_socket = /usr/local/mysql/mysql.sock
      939行取消注释修改
      date.timezone = Asia/Shanghai
      在这里插入图片描述
    • 调整进程服务配置文件用于解析动态页面:
      cd /usr/local/php/etc/
      cp php-fpm.conf.default php-fpm.conf复制模板文件
      vim php-fpm.conf在这里插入图片描述
      17行取消注释
      pid = run/php-fpm.pid
      在这里插入图片描述
    • 调整扩展配置文件:
      cd /usr/local/php/etc/php-fpm.d/
      cp www.conf.default www.conf这里名字随便定义结尾为.conf即可
      在这里插入图片描述
  • 7.启动php-fpm
    php-fpm -c /usr/local/php/lib/php.ini
    netstat -natp | grep 9000
    在这里插入图片描述
    #php-fpm(进程管理器)是一个PHPFastCGI 管理器,由于Nginx服务器不能处理动态页面,需要由Nginx把动态请求交给php-fpm进程进行解析
  • 8.配置 Nginx 支持 PHP 解析
    vim /usr/local/nginx/conf/nginx.conf
    在这里插入图片描述
    65行取消注释修改工作目录
    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;修改为Nginx的工作目录
    include fastcgi_params;
    }
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第8张图片
    systemctl restart nginx.service1.16.16
  • 9.验证PHP测试页
    vim /usr/local/nginx/html/index.php
    在这里插入图片描述

    phpinfo();
    ?>
    在这里插入图片描述
    浏览器访问
    http://192.168.150.10/index.php
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第9张图片
  • 10.验证数据库工作是否正常
    mysql -u root -p123456
    CREATE DATABASE chen;
    GRANT all ON chen.* TO 'chenuser'@'%' IDENTIFIED BY '123456';
    flush privileges;
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第10张图片
    替换原来的测试页内容
    vim /usr/local/nginx/html/index.php
    在这里插入图片描述

    $link=mysqli_connect('192.168.150.10','chenuser','123456');
    if($link) echo "Success!";
    else echo "Fail!";
    ?>
    在这里插入图片描述
    http://192.168.150.10/index.php
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第11张图片

安装论坛

  • 1.解压论坛压缩包
    unzip /opt/Discuz_X3.4_SC_UTF8.zip解压
    cd /opt/dir_SC_UTF8/
    cp -r upload/ /usr/local/nginx/html/chen
    在这里插入图片描述
    chmod -R 777 ./config/
    chmod -R 777 ./data/
    chmod -R 777 ./uc_*
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第12张图片
    http://192.168.150.10/chen/install/index.php
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第13张图片
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第14张图片
    http://192.168.150.10/chen/index.php
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第15张图片
    http://192.168.150.10/chen/admin.php
    Linux——LNMP架构搭建|Linux操作系统、手工编译安装(Nginx服务、MySQL数据库服务器、PHP网页编程语言)_第16张图片

你可能感兴趣的:(服务架构,nginx,centos,服务器,运维,linux)