CentOS上的FTPServer(通常指的是vsftpd,即Very Secure FTP Daemon)是支持虚拟主机的。以下是关于如何在CentOS上配置vsftpd以支持虚拟主机的详细步骤:
sudo yum install vsftpd
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
/etc/vsftpd/vhost_list文件,并添加虚拟主机的IP地址或域名:sudo vi /etc/vsftpd/vhost_list
在文件中添加如下内容:
192.168.1.100
example.com
/etc/vsftpd/vsftpd.conf文件中启用vhost_list:sudo vi /etc/vsftpd/vsftpd.conf
找到并修改以下行:
listen=YES
listen_ipv6=NO
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
local_root=/var/www/vhosts/%h
chroot_local_user=YES
allow_writeable_chroot=YES
添加或修改以下行以启用vhost_list:
vhost_enable=YES
vhost_list_enable=YES
vhost_list_file=/etc/vsftpd/vhost_list
sudo systemctl restart vsftpd
/etc/vsftpd/virtual_users.txt文件,定义虚拟用户及其主目录:sudo vi /etc/vsftpd/virtual_users.txt
在文件中添加如下内容:
ftpuser1 123456 /var/www/vhosts/site1
ftpuser2 123456 /var/www/vhosts/site2
(其中ftpuser1和ftpuser2是虚拟用户名,123456是密码,/var/www/vhosts/site1和/var/www/vhosts/site2是对应的主目录)
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
sudo chmod 600 /etc/vsftpd/virtual_users.db
/etc/pam.d/vsftpd文件,启用PAM认证:sudo vi /etc/pam.d/vsftpd
确保文件中包含以下行:
auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users
/etc/vsftpd/vsftpd.conf文件中进行相应配置:sudo vi /etc/vsftpd/vsftpd.conf
找到并修改以下行:
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
local_root=/var/www/vhosts/%u
chroot_local_user=YES
allow_writeable_chroot=YES
添加或修改以下行以启用虚拟用户:
userlist_enable=YES
tcp_wrappers=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
/etc/vsftpd/user_list文件,添加允许登录的虚拟用户名:sudo vi /etc/vsftpd/user_list
在文件中添加如下内容:
ftpuser1
ftpuser2
sudo systemctl restart vsftpd
通过以上步骤,您可以在CentOS上成功配置vsftpd以支持虚拟主机。