我让Apache正常工作,虚拟主机按预期工作。 我的操作系统是Windows 7。
然而,我有一个问题,我正试图找到答案,谷歌没有产生太多 - 对于Windows无论如何,仅适用于Linux(在这种情况下不适用)。 / p>
如何在不重新启动服务器的情况下添加新的虚拟主机?
(Apache 2.2版是我目前正在运行的)
我将新主机添加到主机文件和vhosts中的文件,如下所示:
<VirtualHost *:80>
ServerName host1.tld
ServerAlias www.host1.tld
DocumentRoot /www/vhosts/host1.tld
ErrorLog /www/Apache22/logs/error.log
<Directory "/www/vhosts/host1.tld">
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
<VirtualHost *:80>
ServerName mywebsite.com
ServerAlias www.mywebsite.com
DocumentRoot /www/vhosts/mywebsite.com
ErrorLog /www/Apache22/logs/error.log
<Directory "/www/vhosts/mywebsite.com">
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
有没有人有类似的解决方案,如果有,你的建议是什么?
答案 0 :(得分:3)
您可以使用VirtualDocumentRoot
使用单个块配置所有虚拟主机<VirtualHost *:80>
UseCanonicalName Off
VirtualDocumentRoot /www/vhosts/%0
ErrorLog /www/Apache22/logs/error.log
<Directory "/www/vhosts">
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
答案 1 :(得分:0)
您可以在不重新启动服务器的情况下重启apache。我的mac上有一个苹果脚本,它为我重新启动apache,这样只需单击一下,然后可以加载一个新的apache配置。这是苹果脚本,可以很容易地移植到Python(供Windows使用):
set stopString to do shell script "sudo /usr/local/apache2/bin/apachectl stop" with administrator privileges and password
set startString to do shell script "sudo /usr/local/apache2/bin/apachectl start" with administrator privileges and password
if startString as string = "" then
"Apache started correctly"
else
stopString & " , " & startString
end if