• LNMP


    lnmp搭建(分离部署)

    环境

    系统 主机名 ip 功能
    rhel8 node1 192.168.94.141 nginx
    rhel8 node2 192.168.94.143 mysql
    rhel8 node4 192.168.94.130 php

    准备工作:

    //防火墙selinux关闭
    systemctl disable --now firewalld
    sed -ri '/SELINUX=enforcing/s/enforcing/disable/g' /etc/selinux/config
    //配置网络源
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
    sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
    sed -i 's|$releasever|8|' /etc/yum.repos.d/CentOS-Base.repo
    yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
    sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
    sed -i 's|^#baseurl=https://download.fedoraproject.org/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
    sed -i 's|$releasever|8|' /etc/yum.repos.d/epel*
    yum clean all
    yum makecache
    

    node1安装nginx(源码)

    //创建nginx用户
    [root@node1 ~]# useradd -r -M -s /sbin/nologin nginx
    
    //安装开发工具组和依赖包
    [root@node1 ~]# yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ make 
    [root@node1 ~]# yum -y groups mark install 'development tools'
    
    //创建日志存放目录
    [root@node1 ~]# mkdir -p /var/log/nginx
    [root@node1 ~]# chown -R  nginx.nginx /var/log/nginx
    //下载源码包
    [root@node1 ~]# cd /usr/src/
    [root@node1 src]# wget http://nginx.org/download/nginx-1.20.0.tar.gz
    [root@node1 src]# ll
    ...
    -rw-r--r--. 1 root root 1061070 Apr 20 22:46 nginx-1.20.0.tar.gz
    //解压
    [root@node1 src]# tar xf nginx-1.20.0.tar.gz 
    [root@node1 src]# cd nginx-1.20.0/
    //编译安装
    [root@node1 nginx-1.20.0]# ./configure 
    > --prefix=/usr/local/nginx 	#指定路径
    > --user=nginx 	#指定用户
    > --group=nginx 	#指定组
    > --with-debug 	#启用debug测试
    > --with-http_ssl_module 	#启用ssl证书模块
    > --with-http_realip_module 	#启用http真实ip模块
    > --with-http_image_filter_module 	#启用http图像过滤器模块
    > --with-http_gunzip_module 	#启用http压缩模块
    > --with-http_gzip_static_module 	#启用静态压缩
    > --with-http_stub_status_module 	#启用状态页面
    > --http-log-path=/var/log/nginx/access.log 	#指定日http访问日志路径
    > --error-log-path=/var/log/nginx/error.log	#指定报错日志路径
    
    //启用多核心加速安装
    [root@node1 nginx-1.20.0]# make -j $(grep 'processor' /proc/cpuinfo | wc -l) && make install
    
    //添加环境变量
    [root@node1 nginx-1.20.0]# echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh
    [root@node1 nginx-1.20.0]# source /etc/profile.d/nginx.sh
    [root@node1 nginx-1.20.0]# which nginx
    /usr/local/nginx/sbin/nginx
    
    

    node2安装mysql(二进程包安装)

    [root@node2 ~]# useradd -r -M -s /sbin/nologin mysql
    [root@node2 ~]# id mysql
    uid=993(mysql) gid=989(mysql) groups=989(mysql)
    [root@node2 ~]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel gcc gcc-c++ ncurses-compat-libs*
    
    [root@node2 ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
    [root@node2 ~]# ll
    total 367720
    -rw-------. 1 root root      1179 Jan  6 18:03 anaconda-ks.cfg
    -rw-r--r--. 1 root root 376537503 May 30 21:36 mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
    [root@node2 ~]# tar xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
    [root@node2 ~]# ln -s /usr/local/mysql-5.7.31-linux-glibc2.12-x86_64/ /usr/local/mysql
    [root@node2 ~]# chown -R mysql.mysql /usr/local/mysql*
    [root@node2 ~]# mkdir /opt/data
    [root@node2 ~]# chown -R mysql.mysql /usr/local/mysql
    
    [root@node2 ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH'> /etc/profile.d/mysql.sh
    [root@node2 ~]# source /etc/profile.d/mysql.sh
    [root@node2 ~]# which mysql
    /usr/local/mysql/bin/mysql
    
    [root@node2 ~]# mysqld --initialize --user=mysql --datadir=/opt/data
    ...
    2021-05-30T13:40:43.855205Z 1 [Note] A temporary password is generated for root@localhost: yyll2lwogs=X
    
    [root@node2 ~]# echo  'yyll2lwogs=X' > .mysqltmppass
    
    [root@node2 ~]# echo '/usr/local/mysql/lib/'> /etc/ld.so.conf.d/mysql.co
    nf
    [root@node2 ~]# ldconfig 
    
    [root@node2 ~]# cat >> /etc/my.cnf <<EOF
    [mysqld]
    basedir = /usr/local/mysql
    datadir = /opt/data
    socket = /tmp/mysql.sock
    port = 3306
    pid-file = /opt/data/mysql.pid
    user = mysql
    skip-name-resolve
    EOF
    
    [root@node2 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    [root@node2 ~]# cat >> /etc/init.d/mysqld <<EOF
    > basedir=/usr/local/mysql
    > datadir=/opt/data
    > EOF
    [root@node2 ~]# service mysqld start
    Starting MySQL.Logging to '/opt/data/node2.err'.
     SUCCESS! 
    [root@node2 ~]# mysql -uroot -p'yyll2lwogs=X'
    mysql> set password = password('123456');
    Query OK, 0 rows affected, 1 warning (0.01 sec)
    
    

    node3安装php(yum)

    [root@node4 ~]# yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel  pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel php-mysqlnd
    [root@node4 ~]# yum -y install php-*
    

    配置

    node1

    [root@node1 ~]# vim /usr/local/nginx/conf/nginx.conf
    ...
    location  / {
                root /www;
                index index.php index.html;
            }
    ....
          location ~ .php$ {
                root           /www;
                fastcgi_pass   192.168.94.130:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
                include        fastcgi_params;
            }
    
    [root@node1 ~]# vim /usr/local/nginx/conf/fastcgi_params
    ...
    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    
    [root@node1 ~]# mkdir /www/
    [root@node1 ~]# chown -R nginx.nginx /www/
    

    node4

    [root@node4 ~]# useradd  -M -s /sbin/nologin nginx
    [root@node4 ~]# yum -y install nfs-*
    [root@node4 ~]# mkdir  /www
    [root@node4 ~]# chown -R nginx.nginx /www/
    [root@node4 ~]# cat > /www/index.php <EOF
      >  <?php
      >      phpinfo();
      > ?>
    [root@node4 ~]# vim /etc/exports
    
    /www 192.168.94.130/24(rw,all_squash,root_squash,anonuid=991,anongid=989) #需跟nginx机id相同
    
    
    [root@node4 ~]# vim /etc/php-fpm.d/www.conf 
    ...
    ;listen = /run/php-fpm/www.sock	#加;注释
    listen = 0.0.0.0:9000	#添加监听端口
    ...
    listen.allowed_clients = 192.168.94.141	#添加允许监听服务端
    
    
    [root@node4 ~]# systemctl status nfs-server.service 
    [root@node4 ~]# systemctl start php-fpm
    [root@node4 ~]# ss -antl|grep 9000
    LISTEN    0         128                0.0.0.0:9000             0.0.0.0:*   
    
    [root@node1 ~]# yum -y install nfs-*
    [root@node1 ~]# showmount -e 192.168.94.130
    Export list for 192.168.94.130:
    /www 192.168.94.130/24
    [root@node1 ~]# mount -t nfs 192.168.94.130:/www /www/
    [root@node1 ~]# ss -antl
    State   Recv-Q  Send-Q   Local Address:Port     Peer Address:Port  
    LISTEN  0       128            0.0.0.0:111           0.0.0.0:*     
    LISTEN  0       128            0.0.0.0:80            0.0.0.0:*     
    LISTEN  0       128            0.0.0.0:22            0.0.0.0:*     
    LISTEN  0       128               [::]:111              [::]:*     
    LISTEN  0       128               [::]:22               [::]:*
    

    node2

    
    mysql> grant all on *.* to root@192.168.94.141 identified by '123456';
    Query OK, 0 rows affected, 1 warning (0.01 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> quit
    
    

    测试访问

  • 相关阅读:
    泛在电力物联网建设路线
    如何建设泛在电力物联网?
    泛在电力物联网到底该怎么建?
    泛在电力物联网(能源互联网+物联网)浅析
    泛在电力物联网分析—架构形式
    泛在电力物联网:两个业务 两种发展逻辑
    国网“泛在电力物联网”的战略与逻辑
    MVC中使用Hangfire按秒执行任务
    hangfire 实现已完成的job设置过期,防止数据无限增长
    解决ASP.NET Core部署到IIS,更新项目"另一个程序正在使用此文件,进程无法访问"
  • 原文地址:https://www.cnblogs.com/fangxinxin/p/14829751.html
Copyright © 2020-2023  润新知