我有一台专用服务器,上面有一个网站http://www.example.com
我需要创建一个用户并:
- 允许他 ssh 和 ftp 访问
- 允许他访问如下页面:http://user.example.com
- 我如何向他提供 ftp 访问权限?
- 我该如何设置 public_html 和所有必要的详细信息,以便他可以从互联网访问 html 文件?我希望他也能执行 php 脚本(我认为这应该不是问题,因为这个网站上的网站已经可以做到这一点)。
我没有 cPanel。我正在运行 RHEL5/CentOS
編輯1
在 httpd.conf 中我添加了以下内容:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/html/
</VirtualHost>
<VirtualHost *:80>
ServerName david.example.com
DocumentRoot /home/david/public_html
</VirtualHost>
<VirtualHost *:80>
ServerName matthew.example.com
DocumentRoot /home/matthew/public_html
</VirtualHost>
并确保相应文件夹存在且具有 755 权限。
我现在可以访问主站点,但无法访问 subdomain.example.com 站点。
答案1
你用mod_userdir设置public_html和允许用户在您的机器上建立网站的目录。
如果您只需要为一个用户提供此功能,您也可以为该目录设置一个简单的虚拟主机。例如:
Listen 80
NameVirtualHost *
<VirtualHost *>
ServerName www.yourdomain.com
DocumentRoot /var/www/html/
</VirtualHost>
<VirtualHost *>
ServerName subdomain.yourdomain.com
DocumentRoot /home/username/public_html/
</VirtualHost>
如果您有多个用户名想要创建 VirtualHosts,您有几种选择。第一种是将它们明确地写在 httpd.conf 中。第二种是使用 mod_rewrite 查找未知主机名并将其转换为默认用户目录http://yourhostname.com/~用户名/。
这解决了 Web 方面的问题。对于 FTP 方面,可以使用诸如 ProFTPd 的守护进程默认根目录负责用户目录 FTP 访问。对于 DNS,您可以创建通配符 A 条目,将 *.yourdomain.com 指向您的服务器的 IP 地址。
附注:请使用您在 StackOverflow 上提供的问题信息(最终移植到 ServerFault)编辑此问题,这样我们就不会出现重复的问题。谢谢!