我有一个以这种方式制作的虚拟主机:
<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/
这样,每次部署新版本的应用程序时,我就不必更改虚拟主机?
答案1
不,那里不能有通配符。
相反,使用符号链接:
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>
到您的配置中。