zoukankan      html  css  js  c++  java
  • 第16周作业

    架构题:前端有一个 LAMP 架构通过 wordpress 来部署,后端构建一个 NFS 服务器实现要求将用户上传的图片保存至后端 NFS 服务器上。

    1.环境准备:

     2.一键安装wordpress脚本

    准备好源码包如下:

    apr-1.7.0.tar.bz2

    apr-util-1.6.1.tar.bz2

    httpd-2.4.41.tar.gz

    mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

    php-7.4.10.tar.xz

    wordpress-5.4.2-zh_CN.zip

    #Setp 1
    #!/bin/bash
    #二进制安装mysql5.7.31
    COLOR="echo -e 33[01;31m"   
    END='33[0m'
    Wordpress_user="wpuser"  #Wordpress数据库连接用户
    Wordpress_password="wppass" #Wordpress数据库连接用户密码
    Wordpress_database="wordpress"  #Wordpress数据库名称
    
    ${COLOR} Setp 1 开始安装MySQL...${END}
    #安装相关依赖包
    yum -y install libaio numactl-libs &> /dev/null
    
    #创建用户并解压包
    groupadd mysql
    useradd -r -g mysql -s /bin/false mysql
    tar xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /usr/local/src 
    
    cd /usr/local/src
    ln -sv mysql-5.7.31-linux-glibc2.12-x86_64 mysql
    cd mysql
    chown -R root.root /usr/local/src/mysql
    
    #创建mysql目录
    mkdir -p /data/mysql
    chown -R mysql.mysql /data/mysql
    
    #修改配置文件
    cat > /etc/my.cnf <<-EOF
    [mysqld]
    datadir=/data/mysql
    basedir=/usr/local/src/mysql
    skip_name_resolve=ON
    socket=/data/mysql/mysql.sock
    log-error=/data/mysql/mysql.log
    pid-file=/data/mysql/mysql.pid
    [client]
    socket=/data/mysql/mysql.sock
    EOF
    
    #配置环境变量
    echo 'PATH=/usr/local/src/mysql/bin/:$PATH' > /etc/profile.d/mysql.sh
    source /etc/profile.d/mysql.sh
    
    #初始化
    mysqld --initialize --user=mysql --datadir=/data/mysql  
    
    #准备服务脚本和启动
    cp /usr/local/src/mysql/support-files/mysql.server /etc/init.d/mysqld
    chkconfig --add mysqld
    service mysqld start
    PASSWORD=`awk '/temporary password/{print $NF}' /data/mysql/mysql.log`
    mysqladmin -uroot -p$PASSWORD password magedu
    
    mysql_user(){
    mysql -uroot -pmagedu -e "create database $Wordpress_database"
    mysql -uroot -pmagedu -e "create user '$Wordpress_user'@'10.0.0.%' identified by '$Wordpress_password'"
    mysql -uroot -pmagedu -e "grant all on $Wordpress_database.* to $Wordpress_user@'10.0.0.%'"
    mysql -uroot -pmagedu -e "flush privileges"
    }
    
    
    install_httpd(){
    id apache &> /dev/null || useradd -r -s /sbin/nologin apache
    yum install gcc pcre-devel openssl-devel expat-devel -y
    cd ~
    tar xvf apr-1.7.0.tar.bz2
    tar xvf apr-util-1.6.1.tar.bz2
    tar xvf httpd-2.4.41.tar.gz
    mv apr-1.7.0 httpd-2.4.41/srclib/apr
    mv apr-util-1.6.1 httpd-2.4.41/srclib/apr-util
    cd httpd-2.4.41/
    ./configure --prefix=/apps/httpd 
    --enable-so 
    --enable-ssl 
    --enable-cgi 
    --enable-rewrite 
    --with-zlib 
    --with-pcre 
    --enable-modules=most 
    --enable-mpms-shared=all 
    --with-mpm=prefork 
    --with-included-apr
    make -j 4 && make install
    
    echo 'PATH=/usr/local/mysql/bin/:/apps/httpd/bin:$PATH' > /etc/profile.d/httpd.sh.sh
    . /etc/profile.d/httpd.sh.sh
    sed -i.bak 's/^User.*/User apache/'  /apps/httpd/conf/httpd.conf
    sed -i.bak 's/^Group.*/Group apache/'  /apps/httpd/conf/httpd.conf
    apachectl start
    }
    
    #Step 3 编译安装httpd模块方式 php-7.3
    #安装相关包,依赖EPEL源
    install_php(){
    yum -y install gcc libxml2-devel bzip2-devel libmcrypt-devel 
    sqlite-devel oniguruma-devel openssl* &> /dev/null
    cd 
    tar xvf php-7.4.10.tar.xz
    cd php-7.4.10/
    ./configure 
    --prefix=/apps/php 
    --enable-mysqlnd 
    --with-mysqli=mysqlnd 
    --with-openssl 
    --with-pdo-mysql=mysqlnd 
    --enable-mbstring 
    --with-freetype-dir 
    --with-jpeg-dir 
    --with-png-dir 
    --with-zlib 
    --with-libxml-dir=/usr 
    --enable-xml 
    --enable-sockets 
    --with-apxs2=/apps/httpd/bin/apxs 
    --with-config-file-path=/etc 
    --with-config-file-scan-dir=/etc/php.d 
    --enable-maintainer-zts 
    --disable-fileinfo
    make -j`lscpu | grep "^CPU(s)" | awk '{print $NF}'` && make install
    
    #为php提供配置文件
    cp php.ini-production /etc/php.ini
    
    #编辑apache配置文件支持php
    mkdir -pv /apps/httpd/conf.d/
    chown -R apache.apache /apps/httpd/conf.d/
    cat >> /apps/httpd/conf/httpd.conf <<-EOF
    Include conf.d/*.conf
    EOF
    
    cat > /apps/httpd/conf.d/test1.conf <<-EOF
    servername 10.0.0.7
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    EOF
    sed -ri.bak 's/(.*DirectoryIndex)/1 index.php /' /apps/httpd/conf/httpd.conf
    
    #Step4 解压wordpress包
    cd ..
    unzip wordpress-5.4.2-zh_CN.zip
    mv wordpress /apps/httpd/htdocs
    setfacl -R -m u:apache:rwx /apps/httpd/htdocs
    apachectl restart
    systemctl stop firewalld
    }
    
    mysql_user
    install_httpd
    install_php

    3.所有服务器上均安装NFS软件

    [root@lamp-server ~]#yum install -y nfs-utils;systemctl start nfs-server
    [root@NFS-client ~]#yum install -y nfs-utils 
    
    
    #配置NFS共享文件格式
    [root@lamp-server ~]#vi /etc/exports.d/wordpress.exports
    /apps/httpd/htdocs/wordpress/ *(rw)
    
    #重读配置文件,并共享目录
    [root@lamp-server ~]#exportfs -r
    
    #查看本机所有NFS共享
    [root@lamp-server ~]#exportfs -v
    #查看远程主机
    [root@lamp-server ~]#rpcinfo -p 10.0.0.8
       program vers proto   port  service
        100000    4   tcp    111  portmapper
        100000    3   tcp    111  portmapper
        100000    2   tcp    111  portmapper
        100000    4   udp    111  portmapper
        100000    3   udp    111  portmapper
        100000    2   udp    111  portmapper
        100024    1   udp  44426  status
        100024    1   tcp  45345  status
        100005    1   udp  20048  mountd
        100005    1   tcp  20048  mountd
        100005    2   udp  20048  mountd
        100005    2   tcp  20048  mountd
        100005    3   udp  20048  mountd
        100005    3   tcp  20048  mountd
        100003    3   tcp   2049  nfs
        100003    4   tcp   2049  nfs
        100227    3   tcp   2049  nfs_acl
        100021    1   udp  52521  nlockmgr
        100021    3   udp  52521  nlockmgr
        100021    4   udp  52521  nlockmgr
        100021    1   tcp  37821  nlockmgr
        100021    3   tcp  37821  nlockmgr
        100021    4   tcp  37821  nlockmgr

    4.在NFS-server 上安装自动挂载软件sutofs

    [root@NFS-client ~]#yum install -y autofs
    [root@NFS-client ~]#vi /etc/auto.master
    /apps/httpd/htdocs/      /etc/auto.wordpress
    
    [root@NFS-client ~]#vi /etc/auto.wordpress
    * -fstype=nfs,vers=3 10.0.0.7:/apps/httpd/htdocs/wordpress/
    [root@NFS-client ~]#systemctl restart autofs
    
    [root@NFS-client ~]#df -T /apps/httpd/htdocs/wordpress
    Filesystem                             Type 1K-blocks    Used Available Use% Mounted on
    10.0.0.7:/apps/httpd/htdocs/wordpress/ nfs   39518464 4504832  35013632  12% /apps/httpd/htdocs/wordpress
    #说明共享NFS服务器配置成功

    5.上传图片并验证

  • 相关阅读:
    STM32的DMA
    STM32串口接收不定长数据原理与源程序(转)
    推挽与开漏
    开关量输入检测与输出的电路设计(转)
    理解一下单片机的I2C和SPI通信
    电阻桥的作用(转)
    为什么工业上用4到20毫安电流传输数据(转)
    Keil的标题“礦ision3" 的改变(转)
    epplus动态合并列数据
    npm脚本编译代码
  • 原文地址:https://www.cnblogs.com/yds941268778/p/13703058.html
Copyright © 2011-2022 走看看