Apache-2.2

參數化 Apache 虛擬主機

  • April 10, 2015

我有一個這樣製作的虛擬主機:

<VirtualHost *:80>
       Servername www.website.com
       DocumentRoot /path/to/application-1.2.1/client/app/
       ErrorLog /var/log/apache2/logs/application.log
</VirtualHost>

每次我們部署新版本時更改的應用程序名稱在哪裡application,例如下一個 DocumentRoot 將是:

DocumentRoot /path/to/application-1.2.2/client/app/

是否可以使用萬用字元或類似的東西製作虛擬主機:

DocumentRoot /path/to/application-*/client/app/

這樣我就不必在每次部署新版本的應用程序時更改虛擬主機?

不,那裡不能有萬用字元。

相反,使用符號連結:

ln -s /path/to/application-1.2.2/client/app /path/to/application/client/app

並讀取配置

<VirtualHost *:80>
       Servername www.website.com
       DocumentRoot /path/to/application/client/app/
       ErrorLog /var/log/apache2/logs/application.log
</VirtualHost>

這有額外的好處,您可以保留舊版本以便在需要時快速回滾。

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

   <Directory /path/to/>
       Options +FollowSymlinks
   </Directory>

到你的配置,以及。

引用自:https://serverfault.com/questions/681816