ftp文件服务器的安装和配置

来源:互联网 发布:fullscreen软件 编辑:程序博客网 时间:2024/05/28 18:45

可以将多个应用上传的文件,集中在一台服务器上,不论是管理还是备份,都可一步操作


系统:centos6.4

一、安装和配置

检查是否安装,若没有安装运行yum安装即可

rpm -q vsftpdyum install vsftpd

创建文件目录(以后上传的文件将存放在这里)

mkdir /home/wwwroot/attachments

单独创建一个用于上传的ftp用户

adduser -d /home/wwwroot/attachments -g ftp -s /sbin/nologin attachuser 

-s /sbin/nologin attachuser ,是不允许该用户登录系统

创建密码,这里我是123456

passwd attachuser

配置ftp

/etc/vsftpd/vsftpd.conf

1、不可改变目录

去掉这两行的注释

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

创建 /etc/vsftpd/chroot_list 文件,内容为用户名,一行一个

这里就是:

attachuser


2、不允许匿名登录

anonymous_enable=NO


3、链接闲置2分钟后断开

data_connection_timeout=120


4、允许root 登录

注释 /etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list 文件中的 root(在前面加#)


5、打开端口

在iptables 中加入

-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
重启生效 service iptables restart

更详细的配置,请参考其文章,这里仅为创建文件服务器用户的配置


二、测试

测试上传文件

$ftppath='/';//相对于ftp用户目录$loaclfile = 'test.jpg';$fp = fopen($loaclfile, 'r');$conn_id = ftp_connect("192.168.1.136") or die("Could not connect");ftp_login($conn_id,"attachuser","123456");$target=$ftppath."test.jpg";if(ftp_fput($conn_id, $target, $fp, FTP_BINARY)) {echo "Successfully uploaded $target\n";} else {echo "There was a problem while uploading $target\n";}ftp_close($conn_id);

测试上传成功

这里只是简单的上传,没有涉及到目录的创建,可移步到这里看一个简单的类【ftp上传文件】,判断目录是否存在,不存在就创建后上传


三、discuz 远程附件

这里用discuz x3.2做个测试

配置如下图


在nginx中配置一个虚拟主机,并修改windows的hosts文件,将 file.test.com 指向 192.168.1.136

nginx 的配置如下(这里就不讲解 nginx的虚拟主机配置了)

server{listen       80;server_name file.test.com;index index.html index.htm index.php default.html default.htm default.php;root  /home/wwwroot/attachments;location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires      30d;}}

重启nginx生效

在discuz 中测试,效果如下图


文件已生成

至此,ftp文件服务器配置完成


若想备份这些文件,请移步【linux 下 rsync 备份/同步文件】



0 0
原创粉丝点击