• LNMP网站架构


    一、安装nginx服务

    1、关闭防火墙和核心防护

    1. systemctl stop firewalld
    2. systemctl disable firewalld
    3. setenforce 0

    2、安装依赖包

    yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

    3、创建运行用户

    useradd -M -s /sbin/nologin nginx

    4、编译安装

    1. cd /opt
    2. tar zxvf nginx-1.12.0.tar.gz -C /opt/
    3. cd nginx-1.12.0/
    4. ./configure \
    5. --prefix=/usr/local/nginx \
    6. --user=nginx \
    7. --group=nginx \
    8. --with-http_stub_status_module
    9. make && make install

    5、优化路径

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

    6、添加 Nginx 系统服务

    1. vim /lib/systemd/system/nginx.service
    2. [Unit]
    3. Description=nginx
    4. After=network.target
    5. [Service]
    6. Type=forking
    7. PIDFile=/usr/local/nginx/logs/nginx.pid
    8. ExecStart=/usr/local/nginx/sbin/nginx
    9. ExecReload=/bin/kill -s HUP $MAINPID
    10. ExecStop=/bin/kill -s QUIT $MAINPID
    11. PrivateTmp=true
    12. [Install]
    13. WantedBy=multi-user.target
    14. chmod 754 /lib/systemd/system/nginx.service
    15. systemctl start nginx.service
    16. systemctl enable nginx.service

    二、安装 MYSQL 服务

    1、安装Mysql环境依赖包

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

    2、创建运行用户

    useradd -M -s /sbin/nologin  mysql

    3、编译安装

    1. cd /opt
    2. tar zxvf mysql-boost-5.7.20.tar.gz
    3. cd /opt/mysql-5.7.20/
    4. cmake \
    5. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    6. -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
    7. -DSYSCONFDIR=/etc \
    8. -DSYSTEMD_PID_DIR=/usr/local/mysql \
    9. -DDEFAULT_CHARSET=utf8 \
    10. -DDEFAULT_COLLATION=utf8_general_ci \
    11. -DWITH_EXTRA_CHARSETS=all \
    12. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    13. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
    14. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    15. -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
    16. -DMYSQL_DATADIR=/usr/local/mysql/data \
    17. -DWITH_BOOST=boost \
    18. -DWITH_SYSTEMD=1
    19. make && make install

    4、修改mysql 配置文件

    1. vim /etc/my.cnf
    2. [client]
    3. port = 3306
    4. socket=/usr/local/mysql/mysql.sock
    5. [mysqld]
    6. user = mysql
    7. basedir=/usr/local/mysql
    8. datadir=/usr/local/mysql/data
    9. port = 3306
    10. character-set-server=utf8
    11. pid-file = /usr/local/mysql/mysqld.pid
    12. socket=/usr/local/mysql/mysql.sock
    13. bind-address = 0.0.0.0
    14. skip-name-resolve
    15. max_connections=2048
    16. default-storage-engine=INNODB
    17. max_allowed_packet=16M
    18. server-id = 1
    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

    5、更改mysql安装目录和配置文件的属主属组

    1. chown -R mysql:mysql /usr/local/mysql/
    2. chown mysql:mysql /etc/my.cnf

    6、设置路径环境变量

    1. echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile    
    2. source /etc/profile

    7、初始化数据库

    1. cd /usr/local/mysql/bin/
    2. ./mysqld \
    3. --initialize-insecure \
    4. --user=mysql \
    5. --basedir=/usr/local/mysql \
    6. --datadir=/usr/local/mysql/data

    8、添加mysqld系统服务

    1. cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
    2. systemctl daemon-reload
    3. systemctl start mysqld.service
    4. systemctl enable mysqld

    9、修改mysql 的登录密码

    mysqladmin -u root -p password "abc123"

    10、授权远程登录

    mysql -u root -p

    三、安装配置 PHP 解析环境

    1、安装环境依赖包

    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 pcre-devel

    2、编译安装

    cd /opt
    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

    make && make install

    3、路径优化

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

    4、调整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行--修改
    mysqli.default_socket = /usr/local/mysql/mysql.sock
    --939行--取消注释,修改
    date.timezone = Asia/Shanghai

    php -m                     #验证安装的模块

    #调整进程服务配置文件:
    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

    5、启动php-fpm

    /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
    netstat -anpt | grep 9000

    #PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。

    cd /opt/php-7.1.10/sapi/fpm
    cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
    systemctl restart php-fpm.service


    6、配置 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;    #将 /scripts 修改为nginx的工作目录
       #fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;  #$document_root 代表当前请求在root指令中指定的值
        include        fastcgi_params;
    }

    systemctl restart nginx.service

    7、验证PHP 测试页

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


    phpinfo();
    ?>

    浏览器访问
    http://IP/index.php

    8、验证数据库工作是否正常

    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;

    vim /usr/local/nginx/html/index.php              #替换原来的测试页内容
    $link=mysqli_connect('192.168.80.10','bbsuser','admin123');
    if($link) echo "

    Success!!

    ";
    else echo "Fail!!";
    ?>

    浏览器访问
    http://IP/index.php

  • 相关阅读:
    rosbag保存 pcd和image
    【面试题】- Docker
    Linux - firewall-cmd 命令添加端口规则不生效排查
    渗透测试之内核安全系列课程:Rootkit技术初探(五)
    237页(10万字)数据中台建设方案2022版本
    yolov5量化注意事项(二)
    【计算机毕业设计】java开源项目——在线考试系统
    优化接口性能
    webpack:详解CopyWebpackPlugin,复制的同时修改文件内容
    【Java】智慧医院绩效考核系统源码
  • 原文地址:https://blog.csdn.net/qq_54188720/article/details/139694083