Настройка Apache в Windows


Подключение виртуальных хостов Apache в Windows

Виртуальные хосты могут быть привязаны к имени хоста (например, study.loc), к IP (например, 127.0.0.3) и к порту (*:81). Второй и третий способ хороши тем, что нам не придётся решать вопрос о DNS преобразованиях имени нашего виртуального хоста (это, обычно, достигается изменением системного файла C:\Windows\System32\drivers\etc\hosts либо использованием личного DNS сервера с соответствующими записями).

Рассмотрим все три способа. Но начнём с небольшой подготовки. Создадим каталог, в котором будем размещать наши виртуальные хосты. Например, C:\Server\data\htdocs\virthosts\. А в этом каталоге создадим три новых папки: host1, host2, host3. В каждой из них создайте по индексному файлу (index.html) с любым содержанием, который позволил бы идентифицировать, что вы попали в нужный хост. Я сделаю следующие записи в соответствующих индексных файлах хостов, для первого хоста:

You reached host1.

Для второго:

You reached host2.

Для третьего:

You reached host3.

Теперь приступим к настройки виртуальных хостов.

В файле C:\Server\bin\Apache24\conf\httpd.conf найдите и раскоментируйте следующую строку:

Include conf/extra/httpd-vhosts.conf

В файле C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf закомментируйте (или удалите) те строки, которые приведены по умолчанию.

Виртуальные хосты на основе IP

Для виртуальных хостов, которые привязаны к IP, требуются несколько IP. Тем не менее, на своём локальном сервере вы можете проделать этот фокус, поскольку в IPv4, в 127.0.0.1 также отражается любой адрес в пределах от 127.0.0.0 до 127.255.255.255.

Попробуйте набрать в браузере 127.0.0.1, а затем попробуйте 127.0.0.2, 127.0.0.3, 127.0.0.4, 127.0.0.5 и т.д. Как видите, IP у нас много, и к каждому из них можно привязать виртуальных хост.

Добавьте в файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf следующие строки:

<VirtualHost 127.0.0.2:80>
    ServerAdmin webmaster@www1.example.com
    DocumentRoot "C:/Server/data/htdocs/virthosts/host2/"
</VirtualHost>

Перезапустите веб-сервер (делайте перезапуск после каждого изменения файла настройки):

c:\Server\bin\Apache24\bin\httpd.exe -k restart

А теперь откройте 127.0.0.2:

01

При этом на другие IP 127.0.0.*, а также на localhost наши настройки влияние не оказывают.

Виртуальные хосты на основе портов (разные сайты на разных портах)

Теперь добавьте в файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf строки:

Listen 81
<VirtualHost *:81>
    ServerAdmin webmaster@www1.example.com
    DocumentRoot "C:/Server/data/htdocs/virthosts/host3/"
</VirtualHost>

Порт можете заменить на любой другой, не занятый в вашей системе. Также вместо звёздочки можете указать конкретный IP. Перезапустите и откройте в браузере http://localhost:81:

02

Виртуальные хосты на основе имени хоста


Следующий способ требует редактирование файла C:\Windows\System32\drivers\etc\hosts (либо внесение записи в ваш собственный DNS сервер). Придумайте любое имя хоста, желательно, не совпадающее с реальным. Примеры supersite, study.loc, video.ofme. Я возьму в качестве примера study.loc. Откройте файл C:\Windows\System32\drivers\etc\hosts и добавьте туда:

127.0.0.1 study.loc

А в файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf добавьте строки:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "C:/Server/data/htdocs/"
</VirtualHost>

<VirtualHost *:80>
    ServerName study.loc
    DocumentRoot "C:/Server/data/htdocs/virthosts/host1/"
</VirtualHost>

Перезапустите сервер и перейдите в браузере к http://study.loc:

03

Аналогично настраиваются и субдомены (dir1.study.loc, dir2.study.loc, dir3.localhost и т.п.).

Автоматическое создание виртуальных хостов / субдоменов

В файле C:\Server\bin\Apache24\conf\httpd.conf найдите и раскоментируйте следующую строку:

LoadModule vhost_alias_module modules/mod_vhost_alias.so

А также, если вы не сделали этого ранее, строку:

Include conf/extra/httpd-vhosts.conf

В директории C:\Server\data\htdocs\virthosts\ создайте папку localhost (теперь именно её содержимое будет отображаться, когда вы в браузере набираете http://localhost).

В файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf добавьте следующую строку

VirtualDocumentRoot "C:/Server/data/htdocs/virthosts/%1/"

Перезапустите сервер.

Теперь любая папка, созданная в C:\Server\data\htdocs\virthosts\ будет доступна по адресу вида

http://имя_папки.localhost

При открытии http://host1.localhost мы увидим содержимое C:\Server\data\htdocs\virthosts\host1\, при открытии http://super.localhost увидим сайт в C:\Server\data\htdocs\virthosts\super\ и т.д.

Обратите внимание на обозначение «%1» - оно значит первую часть имени, запрошенного виртуального хоста. То есть для запрошенного хоста super.localhost символы «%1» будут обозначать «super».

Вместо «%1» вы можете указать «%0» - это означает полное имя, то есть для запрошенного хоста super.localhost символы «%0» будут обозначать super.localhost и, следовательно, будет искаться папка super.localhost, а не super (как это происходит при использовании %1).


Помните, имена хостов вида *.localhost автоматически преобразуются в локальные IP адреса. Но если вы хотите использовать другие имена хостов, то укажите их в файле C:\Windows\System32\drivers\etc\hosts, чтобы компьютер понимал, какое имя какому IP адресу соответствует.

Если в файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf вместо предыдущей строки с «%1» добавить следующую:

VirtualDocumentRoot "C:/Server/data/htdocs/virthosts/%0/"

То теперь любая папка, созданная в C:\Server\data\htdocs\virthosts\ будет доступна по адресу вида http://имя_папки

Обратите внимание, что теперь не учитывается .localhost. На самом деле, вы можете использовать и .localhost, просто создав папки «host1.localhost», «host2.localhost» и так далее.

Как сделать резервную копию БД MySQL в Windows?

Резервную копию можно создать в графическом веб-интерфейсе в phpMyAdmin. Если вы хотите сделать бэкап сразу всех баз данных, то перейдите на главную страницу phpMyAdmin, оттуда перейдите во вкладку Экспорт. Далее всё достаточно просто, в том числе и с дополнительными опциями.

Аналогично при бэкапе отдельных баз данных: перейдите на страницу интересующей БД, а далее в Экспорт.

Если вы по каким-то причинам хотите сделать бэкап базы данных MySQL из командной строки в Windows, то для этого понадобиться утилита mysqldump.exe, она поставляется вместе с MySQL и расположена в каталоге C:\Server\bin\mysql-8.0\bin\.

Для её использования откройте командную строку и перетащите туда программу. Программу можно использовать с разнообразными опциями:

Если вы хотите сделать резервную копию всех баз данных в один файл, то выполните:

.\mysqldump.exe -u root -p --all-databases > all-databases.sql

Кстати, файл нужно искать в той папке, которую вы видите в приглашении командной строки.

Для того, чтобы сделать резервную копию только одной базы данных (например, rsyslog):

.\mysqldump.exe -u root -p rsyslog > rsyslog.sql

Чтобы сделать резервную копию нескольких баз данных используйте опцию --databases, а после него через пробел перечислите желаемые для бэкапа базы данных:

.\mysqldump.exe -u root -p --databases rsyslog syslog > rsyslog_syslog.sql

Чтобы сделать резервную копию только одной таблицы (wp_posts) из базы данных (wordpress):

.\mysqldump.exe -u root -p wordpress wp_posts > wordpress_posts.sql

Для того, чтобы сделать резервную копию нескольких таблиц, перечислите их через пробел после названия БД:

.\mysqldump.exe -u root -p wordpress wp_posts wp_comments > wordpress_posts_comments.sql

Импорт базы данных

Импорт всех баз данных:


mysql -u username -p < all-databases.sql

Импорт одной базы данных: для импорта существующего файла базы данных в MySQL или MariaDB, вам нужно создать новую базу данных, в которую будет импортировано содержимое дамп файла. Начните со входа в базу данных как root или другой пользователь с достаточными привилегиями для создания новой базы данных.

cd C:\Server\bin\mysql-8.0\bin\
.\mysql -u root -p

Это даст вам приглашение оболочке MySQL. Далее создайте новую базу данных с названием new_database.

CREATE DATABASE new_database;

О создании будет выведено подтверждение.

Output
Query OK, 1 row affected (0.00 sec)

Теперь выйдете из оболочки MySQL нажав CTRL+d. В обычной командной строке вы можете импортировать файл следующей командой:

.\mysql -u username -p new_database < data-dump.sql

В этой команде:

  • username – это имя пользователя, с которым вы можете войти в базу данных
  • newdatabase – имя только что созданной базы данных
  • data-dump.sql – файл дампа с данными для импорта, размещённый в текущей директории

Успешное выполнение команды не выведет никаких сообщений. Если во время этого процесса произойдут ошибки, mysql выведет их в терминале. Вы можете проверить, что база данных была импортирована снова войдя в оболочку MySQL и анализом данных. Это может быть сделано выбором новой базы данных командой

USE new_database;

и затем сделайте SQL запрос:

SHOW TABLES;

или похожей командой для просмотра данных.

Краткая характеристика основных директив конфигурационных файлов Apache

 

 

Настройка ограничения доступа к папкам сервера

Материал размещён в отдельной статье «Контроль доступа к сайту (блокировка по IP, User-Agent)».

Настройка SSL для Apache в Windows (переход с HTTP на HTTPS)

Если вы хотите использовать SSL в веб-сервере Apache под Windows, то вам необходимы три файла: *.key, *.csr и *.crt. Если вы купили валидный SSL сертификат для вашего сайта, то эти файлы вам должны прислать после покупки. Их может быть больше – среди них могут быть промежуточные сертификаты.

Если вы хотите настроить SSL на локальном веб-сервере, то все эти файлы можно сгенерировать самостоятельно, т.е. создать самоподписанный сертификат. Этот сертификат не является валидным (не может быть проверен с участием третьей стороны), но для упражнения в переходе с HTTP на HTTPS он вполне подойдёт.

Предполагается, что вы ставили веб-сервер по этой инструкции – иначе замените абсолютные пути на свои собственные.

Откройте командную строку Windows (WIN + x, далее выберите «Командная строка»). В командной строке введите команды:


cd C:\Server\bin\Apache24\bin\
set OPENSSL_CONF=C:\Server\bin\Apache24\conf\openssl.cnf
openssl.exe genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out localhost.key
openssl.exe req -new -key localhost.key -out localhost.csr

При вводе последней команды появятся запросы на английском языке. Ниже следует их перевод.

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----

Перевод:

Вас попросят ввести информацию, которая будет включена в запрос вашего сертификата. То, что вы будете вводить, называется Distinguished Name или DN. Там всего несколько полей, которые можно оставить пустыми. В некоторых полях будут значения по умолчанию. Если вы введёте '.', то поле будет оставлено пустым.

Далее:

Country Name (2 letter code) [AU]:

Перевод:

Двухбуквенное имя страны (двухбуквенный код)

Далее:

State or Province Name (full name) [Some-State]:

Перевод:

Название штата или провинции/области (полное имя)

Далее:

Locality Name (eg, city) []:

Перевод:

Название населённого пункта (например, города)

Далее:

Organization Name (eg, company) [Internet Widgits Pty Ltd]:

Перевод:

Название организации (т.е. компании).

Далее:

Organizational Unit Name (eg, section) []:

Перевод:

Подразделение организации (т.е. отдел)

Далее:

Common Name (e.g. server FQDN or YOUR name) []:

Перевод:

Общее имя (например, FQDN сервера или ВАШЕ имя). Можете ввести localhost.

Далее:

Email Address []:

Перевод:

Почтовый адрес

Далее:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Перевод:

Пожалуйста, введите следующие «дополнительные» атрибуты для отправки с вашим запросом сертификата

  • Пароль запроса:
  • Опциональное имя компании:

Теперь выполните команду:

openssl.exe x509 -req -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt

В результате в каталоге C:\Server\bin\Apache24\bin\ должны появиться три новых файла:

  • localhost.key
  • localhost.csr
  • localhost.crt

Из них нам понадобятся только два:

  • localhost.key
  • localhost.crt

При использовании сертификатов для настройки реального веб-сайта, удобнее создать виртуальный хост с примерно следующими настройками:

LoadModule ssl_module modules/mod_ssl.so

Listen 443
<VirtualHost *:443>
    ServerName www.example.com
    SSLEngine on
    SSLCertificateFile "/путь/до/www.example.com.crt"
    SSLCertificateKeyFile "/путь/до/www.example.com.key"
</VirtualHost>

Для настройки использования SSL на локальном веб-сервере Apache в Windows следуйте инструкции ниже.

В каталоге C:\Server\ создайте новую папку certs и переместите туда файлы localhost.key и localhost.crt.

В директории C:\Server\bin\Apache24\conf\ откройте текстовым редактором файл httpd.conf. В самый низ добавьте туда строки:

LoadModule ssl_module modules/mod_ssl.so

Listen 443
<VirtualHost _default_:443>
    DocumentRoot "c:/Server/data/htdocs/"
    ServerName localhost:443
    ServerAdmin admin@example.com
    ErrorLog "${SRVROOT}/logs/error-ssl.log"
    TransferLog "${SRVROOT}/logs/access-ssl.log"

    SSLEngine on

    SSLCertificateFile "C:\Server\certs\localhost.crt"
    SSLCertificateKeyFile "C:\Server\certs\localhost.key"
</VirtualHost>

Обратите внимание, что вам может понадобиться отредактировать следующие директивы

  • DocumentRoot — укажите путь до сайтов на сервере
  • ServerName — укажите имя вашего хоста, если то не локалхост

Обратите внимание, что мы не просто поместили эти строки в конфигурационный файл, а заключили их в контейнер VirtualHost. Дело в том, что если этого не сделать, то директива SSLEngine on включит SSL для всего веб-сервера, и даже при попытке открыть сайты на 80 порту, эти подключения будут обрабатываться как HTTPS, что вызовет ошибку «Bad Request. Your browser sent a request that this server could not understand». По этой причине эти настройки помещены в контейнер виртуального хоста. Обратите внимание, что используется ключевое слово _default_ - то есть сюда будут собираться все запросы на 443 порт если они не предназначены для другого хоста, который также настроен. То есть при желании вы можете создать больше виртуальных хостов для работы с HTTPS, при этом вместо _default_ указывайте IP хоста или символ * (звёздочка).

После этого сохраните изменения, закройте файл и перезапустите веб-сервер.

Для проверки сделанных изменений, перейдите по адресу https://localhost/ (протокол HTTPS). Поскольку сертификат является самоподписанным, то появится такое сообщение:

К самоподписанным сертификатам нет доверия и эту ошибку нельзя убрать без добавления таких сертификатов в доверенные. Для перехода нажмите «Всё равно продолжить».

Настоящие валидные сертификаты для своих сайтов (в том числе бесплатно на любое количество времени), вы сможете получить здесь.

Файл .bat для управления сервером (установка сервера, запуск, перезапуск и др.)

Создайте файл RUN.bat и скопируйте в него:

Сохраните и закройте файл. Запускайте файл двойным кликом. При этом будет появляться текстовое меню для управления веб-сервером:

Включение модулей по отображению информации и статуса сервера

Если вы хотите удалённо мониторить состояние сервера (возможно, с помощью автоматизированных скриптов или программ), то вам может пригодиться включение модулей mod_status и mod_info.

В файле C:\Server\bin\Apache24\conf\httpd.conf найдите и раскоментируйте следующие строки:

LoadModule status_module modules/mod_status.so
LoadModule info_module modules/mod_info.so
Include conf/extra/httpd-info.conf

В файле C:\Server\bin\Apache24\conf\extra\httpd-info.conf измените приведённые строки (или просто их удалите и замените на предлагаемые), чтобы получилось:

<Location /server-status>
    SetHandler server-status
    Require host localhost
    Require ip ::1
</Location>

<Location /server-info>
    SetHandler server-info
    Require host localhost
    Require ip ::1
</Location>

Раскоментируйте строку:

ExtendedStatus On

Перезапустите сервер.

Теперь при обращении по адресам http://localhost/server-info и http://localhost/server-status вы сможете наблюдать в режиме реального времени информацию и статус сервера.

Также смотрите статью «Как защитить веб-сервер Apache от взлома в Windows».


Рекомендуется Вам:

33 комментария to Настройка Apache в Windows

  1. Дмитрий:

    Спасибо Вам за подробную инструкцию.

    Сделал Автоматическое создание виртуальных хостов / субдоменов

    В опере всё работает а в IE, SAFARI, Firefox

    нет, работает только http://localhost/

    а созданные папки например - http://site.localhost/ не работает

    как исправить?

    • Alexey:

      Дмитрий, есть догадка по поводу того, как вы пытаетесь открыть виртуальный хост.

      К примеру, у меня в файле C:\Windows\System32\drivers\etc\hosts имеется следующая запись:

      127.0.0.1 host2.loc

      Если в Firefox в адресную строку я ввожу host2.loc, то меня перебрасывает на сайт поисковой системы, где ищется «host2.loc». Если же я ввожу http://host2.loc/, то у меня открывается локальный сервер. Т.е. попробуйте указывать протокол http://.

      Инструкция из Интернета для решения подобной прооблемы:

      Firefox игнорирует файл hosts

      Поведением по умолчанию является поиск и фоновая проверка DNS. Когда Firefox выявляет имя хоста (hostname), он должен показать информационную панель, спрашивающую, хотите ли вы подключиться к этому хосту.

      Чтобы заставить Firefox в первую очередь делать DNS поиск, вы можете использовать следующие настройки

      (1) В новой вкладке наберите или скопируйте в адресную строку about:config и нажмите Enter. Нажмите на кнопку «Я принимаю на себя риск!»

      (2) В строке поиска над списком наберите или скопируйте browser.fixup.dns_first_for_single_words и дождитесь появления результатов.

      (3) Дважды кликните на значение browser.fixup.dns_first_for_single_words чтобы изменить это с false на true

      Ещё проверьте работу файла hosts, как это описано в этом комментарии.

  2. Павел:

    Сделал настройку SSL по данной инструкции, но после этого Apache перестал работать. При запуске httpd.exe просто сразу закрывается, а ApacheMonitor.exe показывает ошибку "The request operation has failed!". Если удалить из httpd.conf последние 5 строк, то Apache снова начинает работать.

    В чем может быть ошибка?

  3. Павел:

    Исправил проблему изменением в последних 5 строчках! Вместо Listen 443 из инструкции указал Listen 127.0.0.1:443

    Теперь https работает.

  4. Павел:

    Большего гемора чем настройка локальнных хостов в windows я ещё не встречал, Linux в этом плане рулит, там всё чётко и понятно, в windows нифига не работает.

  5. Алексей:

    Что в инструкции опять не до конца подходит для Win 7? Не работает вируальный хост по имени. 404 Not Found

  6. Алексей:

    И, как теперь запустить MyAdmin?

    • Алексей:

      Все понятно) Переместил в папку virthosts\localhost . Этот момент кстати, тоже можно пометить, хоть казалось бы и очевидный, но можно просмотреть.

  7. Алексей:

    Хорошо, следующий вопрос) - почему сервер рабоатет в Хроме, но не рабоатет в Мозилле и Эксплорере? Просто не отрывает по вируальному адресу..

  8. Володя:

    Заголовок

    Настройка ограничения доступа к папкам сервера

     - пустой.

    Очень нужен, дописывайте :))

  9. Аноним:

    Статья понравилась. Автору стабильная четвёрка. Допили до конца, плиз.

  10. Juice:

    Статья будет дополняться?

  11. Ким:

    Добрый день! Возникла следующая проблема, файл run.bat который я создал по эторй инстррукции при открытии выдает кракозябры(нечитаемый текст), насколько я понимаю дело в кодировке, подскажите как эту ошибку исправить?

    • Alexey:

      Для сохранения файла используйте текстовый редактор, в котором можно выбрать кодировку. Для пакетного файла Windows нужно выбирать кодировку CP866.

    • Alexey:

      Если не получится - напишите здесь, я выложу готовый файл.

      • Ким:

        Выложите пожалуйста готовый файл, а то так и не удалось самому сделать его читаемым. 

      • Ким:

        Все получилось, огромное Вам спасибо за помощь и этот замечательный ресурс

  12. Ким:

    Добрый день! Возникла следующая проблема файл run.bat который я создал по эторй инстррукции при открытии выдает кракозябры(нечитаемый текст), насколько я понимаю дело в кодировке, подскажите как эту ошибку исправить?

  13. Сергей:

    Добавьте в файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts confследующие строки:

    <VirtualHost 127.0.0.2:80>
        ServerAdmin webmaster@www1.example.com
        DocumentRoot "C:/Server/data/htdocs/virthosts/host2/"
    </VirtualHost>

    А теперь откройте 127.0.0.2:

    У меня почему-то не работает по ип-адресам. Хоть какую директорию указываешь в настройках виртуального хоста, все равно заходит по умолчанию C:/Server/data/htdocs/index.html

    • Alexey:

      Вы не забыли сделать:

      В файле C:\Server\bin\Apache24\conf\httpd.conf найдите и раскоментируйте следующую строку:

      Include conf/extra/httpd-vhosts.conf
      
  14. Александр:

    Доброго времени суток. Спасибо за статьи, все толково и подробно расписано.

    Есть реальная необходимость переключаться между версиями PHP (5/7) . Переключение версий - сделал (phpinfo все честно отрабатывает), а с мускулом - засада:

    И еще вопрос - как можно реализовать на локальной машине два сервера ( две среды разработки) - один php5/sql5, второй php7/sql8 ????

    • Alexey:

      XAMPP умеет переключаться между разными версиями PHP.

      На самом деле, самому сделать это элементарно: PHP портативен. Его запускает Apache когда это нужно. PHP к Apache подключается тремя строками в файле настроек:

      PHPIniDir "C:/Server/bin/PHP"
      AddHandler application/x-httpd-php .php
      LoadModule php7_module "C:/Server/bin/PHP/php7apache2_4.dll"

      Можно сохранить PHP 5 в другую папку и сделать ещё один файл настроек для Apache. Запускать Apache можно с ключом -f после которого указывать альтернативную конфигурацию.

      Можно одновременно запускать несколько версий Apache — главное правило, они должны работать на разных портах (также прописывается в конфигурационном файле).

      ИМХО, разные версии MySQL нужны только в ОЧЕНЬ специфичных ситуациях. Сейчас многие хостеры и даже тот же самый XAMPP перешли на MariaDB и даже такой переход не важен ни для одного веб-приложения.

      Если вам всё равно нужны разные версии MySQL, то служба устанавливается и запускается двумя командами. Останавливается она также двумя командами. Можно сделать небольшой батник (пакетный файл с командами), который будет останавливать процессы одной конфигурации и запускать другие. И ещё один батник, который будет делать наоборот.

      В общем, итог: используйте XAMPP для переключения между различными версиями PHP и этого должно хватить. Если вы из тех разработчиков, который использует экзотические возможности MySQL и вы действительно понимаете, зачем вам разные версии, то немного повозитесь с настройкой двух разных серверов в разных папках (нужно будет правильно прописать пути). Сделайте батник, который будет запускать одну конфигурацию и останавливать другую. И второй батник, который будет делать наоборот.

  15. Татьяна:

    Хорошее пособие. Вы указываете : "Если вы хотите использовать SSL веб-сервере Apache под Windows, то вам необходимы три файла: *.key, *.csr и *.crt". А как они устанавливаются? 

  16. Павел:

    Здравствуйте! Спасибо огромное за ваши статьи, все локанично и просто. Вот только есть ошибка, с которой я борюсь и не могу найти ответа (все сделано в точности по вашим руководствам). После развертывания веб-сервера и установки wordpress, я создал виртуальный хост на основе имени хоста. На компьютере сервере, установленный wordpress работает отлично, а если зайти по имени хоста с другого компьютера, то вместо привычного сайта, просто текст, будто не подгружаются css файлы (к комментарию приложил скрин, как это выглядит).

    • Alexey:

      Приветствую!

      Откройте ваш сайт в веб-браузере, затем прямо в браузере откройте инструменты разработчика — для этого нажмите кнопку F12. Переключитесь на вкладку «Network» (Chrome) или «Сеть» (Firefox):

      Там вы увидите, какие именно файлы запрашиваются. Если информации нет, то перезагрузите страницу — кнопка F5. Обратите внимание на файлы, которые не найдены (ошибка 404, они могут быть подсвечены красным цветом). Попробуйте их открыть, чтобы разобраться в причине.

      В Google Chrome для облегчения поиска можно использовать фильтр:

      status-code:404
      
  17. Юрий:

    Добрый день! Отличная статья! По теме "Автоматическое создание виртуальных хостов / субдоменов" вопрос: 
    1.Как закрыть просмотр каталога Автоматически созданного виртуального хоста/субдомена ?

    • Alexey:

      Приветствую, что вы имеете в виду под «закрыть доступ»? Чтобы появлялась ошибка «403 Forbidden»? Или просто запретить листинг файлов и папок?

      В любом случае, если ответить коротко, нужно сделать то же самое, что и с обычными хостами.

      То есть если вам нужно, чтобы выводился код статуса «403 Forbidden», то смотрите Контроль доступа к сайту (блокировка по IP, User-Agent).

      Если вам нужно запретить листинг в папках, то смотрите «Запрет просмотра содержимого папок без индексного файла». Если не ошибаюсь, «Options -Indexes» можно настраивать не только на уровне всего веб-сервера, но и в файлах .htaccess. Ещё один простой способ — это создавать пустые индексные файлы (index.html) в папках.

  18. Юрий:

    Добрый день! Спасибо за исчерпывающий ответ!

  19. Юрий:

    Добрый день! Сделал "Виртуальные хосты на основе имени хоста". Всё работает.
    Добавил  "Автоматическое создание виртуальных хостов / субдоменов". Проверил: 
    автоматически созданные хосты - работают, а просто виртуальные хосты перестали 
    загружаться. Вопрос: Почему так произошло, может они и не должны вместе работать?
    Выдаёт ошибку: The requested URL was not found on this server. 

    • Alexey:

      Здравствуйте, одновременно оба метода работать не будут, поскольку автоматические виртуальные хосты полностью перехватывают управление на себя. Тем не менее вы можете добиться того, что вам нужно — для этого достаточно автоматических виртуальных хостов. Просто создайте папки с нужными вам хостами в C:\Server\data\htdocs\virthosts\ и получите то, что вам нужно.

      Кстати, я дополнил инструкцию — обратите внимание на часть, где объясняется разница между «%1» и «%0». Благодаря такой замене, можно использовать не только половину имени хоста (как из super.localhost используется только super), но и целое имя хоста, то есть, например, из study.loc будет использовано имя целиком. Таким образом вы добьётесь поведения полностью соответствующему виртуальным хостам на основе имени хоста. И при этом автоматические хосты будут работать как раньше, с той разницей, что теперь будет искаться папка по полному имени, а не по половине имени.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *