参数化 Apache 虚拟主机

Atr*_*opo 1 web-server wildcard virtualhost apache-2.2

我有一个这样制作的虚拟主机:

<VirtualHost *:80>
        Servername www.website.com
        DocumentRoot /path/to/application-1.2.1/client/app/
        ErrorLog /var/log/apache2/logs/application.log
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

application每次部署新版本时更改的应用程序名称在哪里,例如下一个 DocumentRoot 将是:

DocumentRoot /path/to/application-1.2.2/client/app/
Run Code Online (Sandbox Code Playgroud)

是否可以使用通配符或类似的东西制作虚拟主机:

DocumentRoot /path/to/application-*/client/app/
Run Code Online (Sandbox Code Playgroud)

这样每次部署新版本的应用程序时都不必更改虚拟主机?

Jen*_*y D 5

不,那里不能有通配符。

相反,使用符号链接:

ln -s /path/to/application-1.2.2/client/app /path/to/application/client/app
Run Code Online (Sandbox Code Playgroud)

并读取配置

<VirtualHost *:80>
        Servername www.website.com
        DocumentRoot /path/to/application/client/app/
        ErrorLog /var/log/apache2/logs/application.log
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

这有一个额外的好处,您可以保留旧版本以便在需要时快速回滚。

根据您的主要配置,您可能需要添加

    <Directory /path/to/>
        Options +FollowSymlinks
    </Directory>
Run Code Online (Sandbox Code Playgroud)

到您的配置,以及。