不多说了,又一个网上教程基本都是坑,没法用的。
我这里发一个自己亲自配置可用的,不是网上那种胡乱转载没屁眼的教程。
【基础安装】
yum install pure-ftpd
#安装pureftp
groupadd ftpgroup
#添加用户组(这样可以确保gid>=1000)
useradd ftpuser -g ftpgroup -d /home/ftp -s /sbin/nologin
#添加用户
sed -i 's/# PureDB/PureDB/g' /etc/pure-ftpd/pure-ftpd.conf
#启用PureDB(必须用它来配置用户)
sed -i 's/# PassivePortRange/PassivePortRange/g' /etc/pure-ftpd/pure-ftpd.conf
#启用被动模式(主动模式问题多)
systemctl enable pure-ftpd && systemctl start pure-ftpd
#启用PureFTP并添加到自启动
firewall-cmd --permanent --zone=public --add-port=21/tcp
#防火墙放行21端口(通讯端口)
firewall-cmd --permanent --zone=public --add-port=30000-50000/tcp
#防火墙放行30000-50000端口(被动模式默认的随机端口)
systemctl restart firewalld
#重启防火墙使规则生效
【添加用户】
pure-pw useradd abc -u ftpuser -g ftpgroup -d /www/abc
#添加一个登录名为abc的FTP账户,并设置其可用目录为/www/abc,按照提示输入密码
pure-pw mkdb && systemctl restart pure-ftpd
#保存数据库并重启PureFTP生效
【删除用户】
pure-pw userdel abc
#删除用户abc
pure-pw mkdb && systemctl restart pure-ftpd
#保存数据库并重启PureFTP生效
【更改密码】
pure-pw passwd abc
#修改用户abc的密码
pure-pw mkdb
#保存数据库并重启PureFTP生效
【顺便提醒】
建立用户目录后,必须将目录设置可写(777),这样用户才能上传文件。
PHP中的.user.ini防跨站配置,在FTP管理中可被删除,导致威胁存在。
建议在Nginx网站配置文件中,server段中PHP的部分:
location ~* \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";
}
结尾如上所示加入:
fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";
可以起到.user.ini同样的效果。
Apache请自行研究,我也不知道。