zoukankan      html  css  js  c++  java
  • Linux配置 ftp 和 ftp简单介绍

    一、ftp概念?

    /*
        ftp是一个协议和http协议都是叫协议
        tcp和udp也是协议
        ftp是文件(以流的形式进行传输)传输协议(针对于文件进行上传和下载)
    */
        1.如果ftp服务器有多台,服务器端无法识别问题:
            1.1.在user表中添加字段(ftp_server)-->根据用户上传的ftp的编号进行update该字段
            1.2.在user表中有一个字段(head_pic)-->存入的图片所在ftp服务器的路径-->查询到该路径使用subString进行截取服务器的IP地址
        
        2.文件名的重复:
            使用用户的id+当前时间的毫秒数+任意的随机数
        
        3.文件存放不规律不方便后期的查询和维护:
            可以根据当前日期进行分文件夹
            2019/08/31--->2019年8月31号所存的图片/文件
                --->pic
                --->file
                    --->编写过滤器(过滤所有的图片的后缀)-->返回如果为true--->存入file-->否则存入pic

    二、 ftp配置?

    1.
        ftp的配置:(nginx一起使用,保证项目的安全性)
        要求:
            所有的ftp服务器都不能叫ftp
            linux的用户名不能叫ftp,就会和ftp的安装冲突,导致ftp无法启动
            在新的linux配置中,HOSTNAME也不能叫ftp
            
            
        1.1检测linux上是否已经安装了ftp
        命令:
        /*    rpm -qa | grep vsftpd
            rpm -qa | grep vsftpd
            rpm -qa|grep vsftpd
            rpm -qa|grep vsftpd
            rpm -qa | grep vsftpd
            rpm -qa | grep vsftpd
            rpm -qa | grep vsftpd
        
        */
            在linux服务器上ftp叫vsftpd
            如果什么都没有显示,则说明linux上没有安装过ftp
            
        
        
        1.2安装ftp
        /*
            yum -y install vsftpd
            yum -y install vsftpd
            yum -y install vsftpd
            yum -y install vsftpd 
            yum -y install vsftpd 
            yum -y install vsftpd 
            yum -y install vsftpd
        */
            
            看到以下信息说明安装成功:
              Running Transaction
              Installing : vsftpd-2.2.2-24.el6.x86_64                                                                         1/1 
              Verifying  : vsftpd-2.2.2-24.el6.x86_64                                                                         1/1 
            Installed:
              vsftpd.x86_64 0:2.2.2-24.el6                                                            
            Complete!
            
            
        1.3.启动ftp(和防火墙一样)
        /*
            service vsftpd start 启动
            service vsftpd stop 停止
            service vsftpd restart 重启
        */    
        
        看到以下信息说明启动成功:
                Starting vsftpd for vsftpd:                                [  OK  ]
                
                
        1.4.设置ftp的开机启动
        /*    chkconfig vsftpd on
            chkconfig vsftpd on 
            chkconfig vsftpd on 
            chkconfig vsftpd on 
            chkconfig vsftpd on
            chkconfig vsftpd on
            chkconfig vsftpd on 
            chkconfig vsttpd on 
                
        */
            
        1.5.配置ftp
        //    linux会将ftp默认安装在 /etc目录
            在vsftpd的conf目录进行配置
        命令:    
        /*    vi /etc/vsftpd/vsftpd.conf
            vi /etc/vsftpd/vsftpd.conf
            
            vim /etc/vsftpd/vsftpd.conf
            vim /etc/vsftpd/vsftpd.conf
            vim /etc/vsftpd/vsftpd.conf
            vim /etc/vsftpd/vsftpd.conf
            vim /etc/vsftpd/vsftpd.conf
            vim /etc/vsftpd/vsftpd.conf
            
        */    
                    # 禁止匿名用户anonymous登录
                anonymous_enable=NO
                    # 允许本地用户登录
                local_enable=YES
                    # 让登录的用户有写权限(上传,删除)
                write_enable=YES
                    # 默认umask
                local_umask=022
                    # 把传输记录的日志保存到/var/log/vsftpd.log  三个不同的地方
                xferlog_enable=YES
                xferlog_file=/var/log/vsftpd.log
                xferlog_std_format=NO
                    # 允许ASCII模式上传
                ascii_upload_enable=YES 
                    # 允许ASCII模式下载
                ascii_download_enable=YES
                    # 使用20号端口传输数据
                connect_from_port_20=YES
                    # 欢迎标语
                ftpd_banner=Welcome to use my test ftp server.
                
                /*    # 接下来的三条配置很重要
                    # chroot_local_user设置了YES,那么所有的用户默认将被chroot,
                    # 也就用户目录被限制在了自己的home下,无法向上改变目录。
                    # chroot_list_enable设置了YES,即让chroot用户列表有效。
                    # ★超重要:如果chroot_local_user设置了YES,那么chroot_list_file
                    # 设置的文件里,是不被chroot的用户(可以向上改变目录)
                    # ★超重要:如果chroot_local_user设置了NO,那么chroot_list_file
                    # 设置的文件里,是被chroot的用户(无法向上改变目录)*/
                    
                    chroot_local_user=NO    (!!!!!有坑,当使用Java去连接ftp并上传的时候,如果为YES,不会自动创建文件的目录信息)
                    chroot_list_enable=YES
                    
                    
                    # touch /etc/vsftpd/chroot_list 新建(需要手动创建)  //在vsftpd 目录下创建  touch chroot_list
                    chroot_list_file=/etc/vsftpd/chroot_list
                    
                    
                    # 以standalone模式在ipv4上运行
                listen=YES
                    # PAM认证服务名,这里默认是vsftpd,在安装vsftpd的时候已经创建了这个pam文件,
                    # 在/etc/pam.d/vsftpd,根据这个pam文件里的设置,/etc/vsftpd/ftpusers
                    # 文件里的用户将禁止登录ftp服务器,比如root这样敏感的用户,所以你要禁止别的用户
                    # 登录的时候,也可以把该用户追加到/etc/vsftpd/ftpusers里。
                pam_service_name=vsftpd
                    
        6.重启ftp
        /*
            service vsftpd restart
            service vsftpd restart 
            service vsftpd restart 
            service vsftpd restart 
            service vsftpd restart 
            service vsftpd restart
            service vsftpd restart 
            service vsftpd restart 
            service vsftpd restart
            
        */    看到以下信息说明重启成功:
                Shutting down vsftpd:                                      [  OK  ]
                Starting vsftpd for vsftpd:                                [  OK  ]
                
        7.执行以下5个命令,让刚才配置生效  需要等待一段时间。。。
            这5个命令比较慢需要等待
        /*    getsebool -a | grep ftpd
            setsebool -P ftp_home_dir 1
            setsebool -P allow_ftpd_full_access 1
            setsebool -P allow_ftpd_use_cifs 1
            setsebool -P allow_ftpd_use_nfs 1
        */
        
        8.创建ftp用户  在根目录下创建。
            useradd ftp的用户名(ftpuser) -s /sbin/nologin -d /home/ftp(手动编写,home目录下并没有ftp文件夹)
        命令:    
            /* 
                useradd ftpuser -s /sbin/nologin -d /home/ftp
                useradd ftpuser -s /sbin/nologin -d /home/ftp 
                useradd ftpuser -s /sbin/nologin -d /home/ftp 
                useradd ftpuser -s /sbin/nologin -d /home/ftp 
                useradd ftpuser -s /sbin/nologin -d /home/ftp 
                useradd ftpuser -s /sbin/nologin -d /home/ftp
            
            */
            /home/ftp-->将来用户上传文件的时候所到根目录
            
        9.为ftp用户设置密码
            passwd ftp的用户名(ftpuser) 回车
            
        /* 
            useradd ftpuser
            useradd ftpuser 
            useradd ftpuser 
            useradd ftpuser 
            useradd ftpuser
            useradd ftpuser
    
        */我在根目录下 建立的。    
            看到以下信息说明设置密码成功:
                Changing password for user ftpuser.
                New password: 
                BAD PASSWORD: it is too simplistic/systematic
                BAD PASSWORD: is too simple
                Retype new password: 
                passwd: all authentication tokens updated successfully.
                
        10.filezilla连接ftp
            所有的ftp目录下必须要使用ftpuser这个用户创建文件夹和文件,不能再使用root,可能造成无法识别(root用户没有权限)
    
    配置nginx:
        1.使用xftp把nginx上传到linux服务器上
        2.解压nginx
            tar -zxvf xxxx
        3.创建快捷方式
            进入nginx目录中进行创建
            首先安装nginx所必须的配置包
        /*    
            yum -y install gcc pcre-devel openssl openssl-devel
            yum -y install gcc pcre-devel openssl openssl-devel
            yum -y install gcc pcre-devel openssl openssl-devel
            yun -y install gcd pcre-devel openssl openssl-devel
                
        */
    
        创建快捷方式
        
        /*
            ./configure --prefix=/usr/local/nginx-1.17.3
            ./configure --prefix=/usr/local/nginx-1.17.3
            ./configure --prefix=/usr/local/nginx-1.17.3
            ./configuer --prefix=/usr/local/nginx-1.17.3
            ./configuer --prefix=/usr/local/nginx-1.17.3
            ./configuer --perfix=/usr/local/nginx-1.17.3
            ./
        
        */
        4.编译nginx
        /*
            make && make install
            make && make install
            make && make install
            make && make install
            make && make install
            make && make install
            make && make install
            
        */
        5.修改nginx的配置
            /usr/local/nginx-1.17.3/conf目录修改
            vim nginx.conf
            
            把一行的user注解打开
                user  nobody;--->user     root
            不要删除location /标签中的任何东西
            location / {
                root(访问的根目录)  /home/ftp/www;
            }
        6.启动nginx 在 sbin/目录下。
            ./nginx
  • 相关阅读:
    在使用npm打包时报错 Tip: built files are meant to be served over an HTTP server. Opening index.html over file:// won't work.
    Vue报错:Property or method "XXX" is not defined on the instance but referenced during render. Make sure that this property is reactive...
    Vue(一)
    使用transform属性和animation属性制作跳动的心
    CSS选择器(通配符选择器、标签选择器、类选择器、id选择器、群组选择器、后代选择器、子元素选择器和相邻元素选择器)
    bootstrap之响应式布局
    Object 对象(对象的分类、属性(属性名和属性值)、基本数据类型与引用数据类型区别)
    HTML5的新变化
    主流浏览器内核(IE、Chrome、Firefox、Safari、Opera)
    语句:if语句、do-while语句、while语句、for语句、for-in语句、with语句、label语句、switch语句以及break和continue语句;
  • 原文地址:https://www.cnblogs.com/ZXF6/p/11449293.html
Copyright © 2011-2022 走看看