具有外部 DNS 的 Apache 子域名

具有外部 DNS 的 Apache 子域名

首先,我将描述我的设置,然后描述我的问题,最后描述我需要解决的问题。

我有一个外部 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它也运行良好。

我的问题是我想运行一个多用户网站,并且所有用户都应该有一个subdomainitaportalen.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 服务器指南作为参考。

相关内容