• 搭建LNMP环境并配置个人博客系统


    LNMP是Linux(操作系统)、Nginx(Web服务器)、MySQL(数据库)和PHP(脚本解释器)的组合,常用于部署高性能的动态网站,如WordPress等博客平台

    一、安装Linux操作系统

     选择一个适合服务器的Linux发行版,如Ubuntu Server或CentOS。通过ISO镜像文件安装,并确保网络连接正常。

    二、编译安装Nginx(web服务器)

    #创建启动进程的用户

    useradd -M -s /sbin/nologin nginx

    #下载官方源码包,也可以直接登录官网选择版本,下载好后,复制到Linux系统中
    cd  /opt
    wget http://nginx.org/download/nginx-1.18.0.tar.gz

    #解压源码包
    tar xf   nginx-1.18.0.tar.gz

    #安装编译环境和工具
    cd  /opt/nginx-1.18.0
    yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel 

    #编译安装模块
    ./configure --prefix=/usr/local/nginx \
    --user=nginx \
    --group=nginx \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-http_realip_module \
    --with-http_stub_status_module \
    --with-http_gzip_static_module \
    --with-pcre \
    --with-stream \
    --with-stream_ssl_module \
    --with-stream_realip_module

    #翻译软件 -j 表示需要调用核CPU,`lscpu|sed -n '4p'|awk '{print $2}'`:查看有几个CPU
    make -j `lscpu|sed -n '4p'|awk '{print $2}'`

    make  install

    #做软链接到PATH环境,为了可以补全命令
    ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

    #在/usr/lib/systemd/system/nginx.service 添加systemd管理文件
    [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 -1 $MAINPID
    ExecStop=/bin/kill -3 $MAINPID
    PrivateTmp=true
    [Install]
    WantedBy=multi-user.target

    #将/usr/local/nginx目录下所有文件的属主与属组改为ngixn用户
    chown -R nginx.nginx  /usr/local/nginx

    #重新加载systemd管理信息
    systemctl  daemon-reload

    #设置nginx服务开机自启
    systemctl  enable --now nginx

    三、编译安装MySQL(数据库)

    准备好压缩包,放在/opt目录下  mysql-boost-5.7.20.tar.gz 

    #安装Mysql环境依赖包
    yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-

    #创建运行用户
    useradd -M -s /sbin/nologin  mysql

    #编译安装
    cd /opt
    tar xf mysql-boost-5.7.20.tar.gz 
    cd /opt/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_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=boost \
    -DWITH_SYSTEMD=1

    make  -j `lscpu|sed -n '4p'|awk '{print $2}'`
    make install

    #修改mysql 配置文件
    vim /etc/my.cnf 将所有文件内容替换成以下内容
    [client]
    port = 3306
    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
    bind-address = 0.0.0.0
    skip-name-resolve
    max_connections=2048
    default-storage-engine=INNODB
    max_allowed_packet=16M
    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
     

    #更改mysql安装目录和配置文件的属主属组
    chown -R mysql:mysql /usr/local/mysql/
    chown mysql:mysql /etc/my.cnf

    #设置路径环境变量
    echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$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

    #添加mysqld系统服务
    cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
    systemctl daemon-reload
    systemctl start mysqld.service
    systemctl enable mysqld

    四、编译安装PHP(脚本解释器)

    准备好压缩包,放在/opt目录下  php-7.1.10.tar.bz2

    #安装编译环境
    yum -y install gd \
    libjpeg libjpeg-devel \
    libpng libpng-devel \
    freetype freetype-devel \
    libxml2 libxml2-devel \
    zlib zlib-devel \
    curl curl-devel gcc gcc-c++
    openssl openssl-devel

     

    #编译安装
    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 -j `lscpu|sed -n '4p'|awk '{print $2}'`
    make install

     

    #路径优化

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

    #调整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/Shanghaicd /usr/local/php/etc/

    #修改进程服务配置文件 
    cp  php-fpm.conf.default php-fpm.conf
    vim php-fpm.conf
    --17行--去掉";"注释
    pid = run/php-fpm.pid

    #www.conf        扩展配置文件
    cd /usr/local/php/etc/php-fpm.d/
    cp www.conf.default www.conf

    #配置systemd启动文件
    cp /opt/php-7.1.10/sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm.service
    systemctl restart php-fpm.service

    五、配置 Nginx 支持 PHP 解析

    vim /usr/local/nginx/conf/nginx.conf

    #在45行添加默认文件 index.php

    index  index.html index.htm index.php;


    #大约在65-71行取消注释,修改
    location ~ \.php$ {
        root           html;   $document_root
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;    

    #将 /scripts 修改为nginx的工作目录
        include        fastcgi_params;
    }
    #重启nginx服务 
    systemctl restart nginx.service

    将所有配置文件修改好后,先来验证PHP是否正常

    在nginx的主站点目录下建立php测试页

    使用web浏览器访问nginx服务器下的/index.php文件,查看测试页

    如果出先上述内容,说明运行正常,进行下一步操作

    为了数据安全,首先重置MYSQL数据库root用户密码

    登录数据库创建用户

    1. CREATE DATABASE bbs; 
    2. #这条命令用于创建一个新的数据库,名称为 bbs。
    3. GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123'
    4. #这是一个授权语句,它赋予了用户名为 bbsuser 的用户在任何主机(% 表示所有IP地址)
    5. #上对 bbs 数据库的所有表 (bbs.*) 拥有所有权限(all 包括SELECT, INSERT, UPDATE,
    6. #DELETE, CREATE等所有操作)。同时,这个用户的密码被设定为 'admin123'。
    7. GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
    8. #这个授权语句与上一条类似,但针对的是从本地主机(localhost)连接到数据库的 bbsuser 用户。
    9. #这样做通常是为了确保即使全局权限出现问题时,用户仍然可以从本地主机访问数据库。
    10. flush privileges; 
    11. #这个命令用于刷新MySQL服务器的权限缓存,使上述权限更改立即生效。
    12. 按ctrl+d 退出数据库

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

      Success!!

      "
      ;
    4. #如果正确,则输出Success
    5. else echo "Fail!!";
    6. #如果不正确。则输出Fail!!
    7. ?>

    访问服务器下的/index.php文件

    六、安装论坛

    在opt目录下准备好论坛文件:Discuz_X3.4_SC_UTF8.zip  

    cd /opt
    unzip Discuz_X3.4_SC_UTF8.zip  
    cd /opt/dis/dir_SC_UTF8/
    cp -r upload/ /usr/local/nginx/html/bbs/

    #调整论坛目录的权限:
    cd /usr/local/nginx/html/bbs/
    chown -R nginx.nginx ./config/
    chown -R nginx.nginx ./data/
    chown -R nginx.nginx ./uc_client/
    chown -R nginx.nginx ./uc_server/
    #都要处理
    chmod -R 777 ./config/
    chmod -R 777 ./data/
    chmod -R 777 ./uc_client/
    chmod -R 777 ./uc_server/

    论坛访问路径: http://服务器IP/bbs/install/index.php

    七、安装博客

    在opt目录下准备好博客文件:wordpress-5.4.1-zh_CN.tar.gz 

    cd  /opt

    tar xf wordpress-5.4.1-zh_CN.tar.gz 
    cp -r wordpress  /usr/local/nginx/html/
    安装页面在  wp-admin   下

    chmod 777 wordpress/ -R

    访问:
    http://sever_ip/wordpress/wp-admin/install.php
     

  • 相关阅读:
    Linux 常用命令学习笔记
    数字藏品新范式,数字藏品平台营销或成品牌营销新利器
    ReactNative 井字游戏 实战
    java spring cloud 工程企业管理软件-综合型项目管理软件-工程系统源码
    链表的注意事项
    【自然语言处理】:实验5,司法阅读理解
    Java多态详解
    定位器追踪器怎么连接手机
    nodejs+vue+elementui医院挂号预约管理系统4n9w0
    【Qt】modbus之串口模式写操作
  • 原文地址:https://blog.csdn.net/hy199707/article/details/136348193