Назад | Перейти на главную страницу

.bat файл вопрос

Я работаю на Windows XP.

Мне нужен командный файл для следующих действий:

  1. Создайте каталог $ DOMAINNAME на D: / Webserver / domains /% DOMAINNAME / www /
  2. Откройте файл - D: /Webserver/apache2/conf/extra/httpd-vhosts.conf
  3. Добавьте в этот файл следующее:

    <VirtualHost *:1337>
        DocumentRoot "D:/Webserver/domains/$DOMAINNAME/www"
        ServerName "$DOMAINNAME"
        ServerAlias "$DOMAINNAME"
        ErrorLog "logs/$DOMAINNAME-error.log"
        CustomLog "logs/$DOMAINNAME-access.log" common
    <Directory "D:/Webserver/domains/$DOMAINNAME">
    Allow From all
    AllowOverride All
    </Directory>
    </VirtualHost>
    
  4. Откройте файл - C: / WINDOWS / sysstem32 / drivers / etc / hosts

  5. Добавьте это в этот файл:

    127.0.0.1 $ DOMAINNAME

  6. Закройте файлы.

Я делаю это вручную, но это утомительно. Пожалуйста помоги.

Ну вот:

mkdir D:\Webserver\domains\%1
mkdir D:\Webserver\domains\%1\www
echo ^<VirtualHost %1:1337^> >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo DocumentRoot "D:/Webserver/domains/%1/www" >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo ServerName "%1" >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo ServerAlias "%1" >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo ErrorLog "logs/%1-error.log" >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo CustomLog "logs/%1-access.log" common >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo ^<Directory "D:/Webserver/domains/%1"^> >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo Allow From all >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo AllowOverride All >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo ^</Directory^> >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo ^</VirtualHost^> >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo 127.0.0.1 %1 >> C:/WINDOWS/system32/drivers/etc/hosts

Просто сохраните его как файл .bat и запустите, используя желаемое доменное имя в качестве параметра, например:

script.bat MyDomain

Я также исправил ошибку в вашей конфигурации: у вас не может быть нескольких сайтов по умолчанию, прослушивающих один и тот же порт, поэтому <VirtualHost> директива должна содержать доменное имя.

Лучше использовать PowerShell, который будет работать на XP. Но если вы застряли с .bat:

CreateDomain.bat newdomain.com

cd D:\Webserver\domains\
mkdir %1
mkdir %1\www
cd D:\Webserver\apache2\conf\extra\

echo DocumentRoot "D:/Webserver/domains/%1/www"  >> httpd-vhosts.conf
echo ServerName "%1" >> httpd-vhosts.conf
echo ServerAlias "%1" >> httpd-vhosts.conf
echo ErrorLog "logs/%1-error.log" >> httpd-vhosts.conf
echo CustomLog "logs/%1-access.log" common >> httpd-vhosts.conf
echo Allow From all >> httpd-vhosts.conf
echo AllowOverride All >> httpd-vhosts.conf

cd c:\Windows\System32\Drivers\etc

echo "127.0.0.1  %1" >> hosts

Это быстро и грязно, и включает нулевой отлов ошибок (что происходит, когда mkdir выходит из строя? Этому сценарию все равно). И имейте в виду, что программное обеспечение AV действительно параноидально относится к модификациям hosts файл, поэтому запускать его может быть невозможно.