以 IP 地址作为服务器名称的虚拟主机子域?

Virtual host subdomain with a IP address as the server name?

所以我有一个虚拟主机设置可以正常工作,但它是一个内部服务器,所以我们没有域名。所以在我的服务器名称下我只有 IP 地址并且它工作正常,但是现在我需要设置一个子域并且 apache 似乎不合作。下面基本上是我正在尝试做的,但删除了 IP 地址。知道如何做到这一点吗?

<VirtualHost *:80>
  ServerName 111.111.111.111
  DocumentRoot "/var/www/laravel/public"
  <Directory "/var/www/laravel/public">
    AllowOverride all
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  ServerName payment.111.111.111.11
  DocumentRoot "/var/www/html"
  <Directory "/var/www/html">
    AllowOverride all
  </Directory>
</VirtualHost>

实现此目的的一个好方法是使用不同的端口:

<VirtualHost *:80>
  ServerName 111.111.111.111
  DocumentRoot "/var/www/laravel/public"
  <Directory "/var/www/laravel/public/">
    AllowOverride all
  </Directory>
</VirtualHost>

Listen 8000

<VirtualHost *:8000>
  ServerName 111.111.111.111
  DocumentRoot "/var/www/html"
  <Directory "/var/www/html/">
    AllowOverride all
  </Directory>
</VirtualHost>

我以端口8000为例,为了避免副作用使用"reserved ports"你可以检查一下this list,所以你可以选择任何未分配的。

别忘了添加

听8000

指令,以便网络服务器参与该特定端口上的连接,而且,在标记内添加尾部反斜杠很方便:

<Directory "/var/www/html/">