首先,我将描述我的设置,然后描述我的问题,最后描述我需要解决的问题。
我有一个外部 DNS 服务器解决方案(不使用我的 UBUNTU 上的 DNS),其中我控制所有主 DNS 等。我已像这样建立 A 记录:
localhost.itaportalen.dk 127.0.0.1 43200
itaportalen.dk 5.196.14.205 43200
此外我还有一个CNAME
:
.itaportalen.dk itaportalen.dk 43200
我有一个运行着 apache2 的 UBUNTU 服务器,并且我的网站被放置在/var/www/html
- 它运行得非常好。
我已经安装了MySQL
,并且VSFTPD
它也运行良好。
我的问题是我想运行一个多用户网站,并且所有用户都应该有一个subdomain
。itaportalen.dk
当我创建一个用户即“测试”时,该用户应该根据子域拥有一个主目录,test.itaportalen.dk
并且只能对该文件夹(以及该用户可能创建的子目录)进行 FTP 访问。
我的问题如下:
我应该将子域文件夹放在哪里,test.itaportalen.dk
以便CNAME
直接指向该文件夹?我似乎无法在 UBUNTU 和 APACHE2 上实现此功能
我chrooted
的用户只能看到他们的主文件夹(在本例中是子域),正确的方法是授予他们 RW 访问权限,以便他们可以上传文件到他们的网站?
我知道这是非常基础的东西但我似乎无法让它在这个 UBUNTU 安装上运行。
答案1
默认情况下,apache 设置为让各个用户拥有自己的 URL,您所要做的就是启用它:
sudo a2enmod userdir
然后假设用户 test01 的访问方式为 via itaportalen.dk/~test01
,其目录为/home/test01/public_html
。但是,我知道您不想那样做。
例如,假设用户名是 test01、test02、test03、test04。将 A 记录(或 CNAME 记录,如果您愿意)添加到您的 DNS 区域文件:
epson-wp2 IN A 192.168.111.111
s15 IN A 192.168.111.112
bla IN A 192.168.111.112
test01 IN A 192.168.111.112
test02 IN A 192.168.111.112
test03 IN A 192.168.111.112
test04 IN A 192.168.111.112
s16 IN A 192.168.111.113
全部指向同一个 IP 地址。您的情况是 5.196.14.205。然后/etc/apache2/sites-available
您需要创建 4 个新文件。首先复制默认文件:
sudo cp 000-default.conf test01.conf
像这样编辑新文件:
<VirtualHost *:80>
ServerName test01.smythies.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/test01
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/html/test01>
Options Indexes FollowSymLinks MultiViews Includes
AllowOverride All
...
我选择将每个目录放在 下/var/www/html
。您可以根据需要进行操作。但是,您可能需要编辑/etc/apache2/apache2.conf
,具体取决于目录的位置。对其他用户重复上述操作。然后启用每个虚拟主机:
sudo a2ensite test01
sudo a2ensite test02
sudo a2ensite test03
sudo a2ensite test04
重新开始:
sudo service apache2 restart
我在我的内部测试服务器上执行了此操作,并且它按预期工作。我只使用了Ubuntu 服务器指南作为参考。