Добавить новые виртуальные хосты в Apache без перезапуска сервера?

StackOverflow https://stackoverflow.com/questions/4717410

Вопрос

У меня Apache работает правильно, виртуальные хосты работают, как и ожидалось. Моя операционная система - Windows 7.

Тем не менее, у меня есть одна проблема, на которую я пытаюсь найти ответ, и Google мало что дал - в любом случае для Windows, только для Linux (что в этом случае не очень применимо).

Как добавить новые виртуальные хосты без постоянного перезапуска сервера?

(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>

Кто -нибудь был в подобном решении, и если да, то какой у вас совет?

Это было полезно?

Решение

Вы можете перезапустить Apache без перезапуска сервера. У меня есть сценарий Apple на моем Mac, который перезагружает для меня Apache, так что с одним щелчком и Quater секунды можно загрузить новую конфигурацию Apache. Вот сценарий Apple, который можно легко перенести в 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

Другие советы

Вы можете настроить все Vhosts с одним блоком, используя 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top