Apache 2 使用 VirtualHost 设置子域名仅在本地有效

Apache 2 使用 VirtualHost 设置子域名仅在本地有效

我知道已经存在类似的问题,但是这些问题没有帮助。

我在 Debian 7 上运行 apache2,我可以通过本地访问我的网站192.168.1.x,其他人可以通过我的 IP 地址访问它。现在我想要做的是添加一个子域名,这样他们就可以访问某个文件夹,如下所示:subdomain.myip。这是我目前拥有的:

<VirtualHost *:80>
        ServerName username.localhost
        ServerAdmin username@localhost

        DocumentRoot /home/username/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/username/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/localhost.error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/localhost.access.log combined
</VirtualHost>

目前我唯一可以访问它的方式是转到 debian 本身上的 username.localhost。我怎样才能让它能够使用 本地访问它,username.192.168.1.x而其他人则通过 访问它username.myip

答案1

首先,改变用户名.localhost服务器名称更改为其他内容。Localhost 是 IP 地址 127.0.0.1 的标准名称,这意味着这台电脑。因此,如果有人试图使用用户名.localhost要访问您的网站,他会尝试在自己的电脑上搜索,而不是在您的电脑上。事实上,localhost 和 127.0.0.1 之间的这个定义写在主办方文件。第二件事 - 你不能将 IP 地址和域名混合在一起,例如用户名.192.168.1.x。您需要使用域名(如 username.example.net)或仅使用 ip(192.168.1.x)。

如果您想继续使用域名,那么您需要一个域名服务器或修改上述内容主办方在每台需要访问你网站的电脑上添加以下字符串:

192.168.1.x    username.example.net

之后使用 username.example.net 访问您的网站。

PS:不要忘记检查服务器上的防火墙是否阻止了 TCP 端口 80

相关内容