Как настроить виртуальные хосты Apache на XAMPP (Windows)

Где идет этот тег?

Где я могу найти файл vhosts?

Я не мог найти его в документации.

<VirtualHost hostname:80>
   ...
   SetEnv NS_ENV variable_value
   ...
</VirtualHost>

Ответ 1

Полное руководство для создания VHOST (Virtual Host) на XAMPP/WAMP

Примечание.. Для начала единственная разница для этого руководства, между XAMPP и WAMP или другими пакетами Apache для Windows, - это вопрос, где эти пакеты установлены на вашем компьютере.

Введение: vhost (виртуальный хост) - отличное решение, если вы планируете разрабатывать много независимых проектов в php и изолировать их друг от друга, например:

  • Проект 1 основан на php и имеет локальный адрес URL php.localhost
  • Проект 2 - проект Laravel с url laravel.localhost
  • Проект 3 является Codeigniter с url codeigniter.locathost
  • Проект 4 - это WordPress с URL wordpress.locathost

Предполагается, что вы установили последнюю версию XAMPP/WAMP. Кстати, в моем случае я только установил Apache и MySQL.

* Примечание.. По умолчанию большинство веб-серверов будут использовать порт 80 как порт по умолчанию, в некоторых случаях, если у вас установлен другой веб-сервер (Microsoft IIS), он также использует порт 80 или в других случаях SKYPE также несколько раз использует порт 80, как это имеет место для некоторых в Windows 8/10 для некоторых пользователей, в этом случае вы можете сделать две вещи

  • Измените порт Apache на порт 8080, 8081 и т.д. или некоторые другие свободные порты (примечание: 8080 может несколько раз также дать некоторые проблемы)
  • ИЛИ Измените другое программное обеспечение/порт IIS и сохраните Apache по умолчанию на порту 80 в случае Skype, просто запустите приложение Skype и перезапустите его после установки Apache на порт 80, Skype автоматически получит новый порт.

Я решил изменить мой Apache на порт 8080.

Примечание:
 - Для следующего раздела нам нужно использовать текстовый редактор, например блокнот или обычную IDE. Я использовал возвышенный текстовый редактор.
 - Если вы сохраняете Apache до порта 80 по умолчанию, пропустите эту часть и перейдите к виртуальным хостам.

Изменить порт XAMPP/WAMP (только при необходимости) если оставить значение по умолчанию, а затем перейти к настройке виртуального хоста

Шаг 1. Отредактируйте httpd.conf

Нажмите "Конфигурация" → "Apache" (httpd.conf) Или вы найдете файл здесь C:\XAMPP\apache\conf\httpd.conf, C:\XAMPP\apache2\conf\httpd.conf, C:\Bitnami\wampstack\apache\conf\httpd.conf или C:\Bitnami\wampstack\apache2\conf\httpd.conf или аналогичное местоположение.

Измените строку с помощью

Listen 80

К 8080 или другим, свободным портам.

Listen 8080

Пока мы открываем файл httpd.conf, мы должны обеспечить включение httpd-vhosts.conf: Включить conf/extra/httpd-vhosts.conf

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

Примечание. По умолчанию серверные документы находятся на C:\XAMPP\htdocs или C:\Bitnami\wampstack\apache2\htdocs, это нормально, если у вас есть только один проект или несколько небольших тестовых файлов. Однако, если вам нужно разработать много проектов, то предлагалось отделить их от виртуального хоста, как упоминалось ранее.

Шаг 2. Настройка виртуального хоста

  • Создайте папку для ваших проектов; Я создал один в c:\vhost, вы можете назвать его проектами и т.д.
  • В папке c:\vhost мы создаем подпапку domain1 или project1 или любую другую, это зависит от вас (c:\vhost\project1)
  • Открыть httpd-vhosts.conf файл C:\XAMPP\apache\conf\extra\httpd-vhosts.conf Добавить следующий код в строке в зависимости от того, сколько хостов вы хотите создать:
<Directory C:/vhost>
    AllowOverride All
    Require all granted
</Directory>

#this is the default address of XAMPP    
<VirtualHost *:8080>
    DocumentRoot "C:/XAMPP/htdocs/"
    ServerName localhost
</VirtualHost>

#this is the first vhost address in XAMPP
<VirtualHost *:8080>
    DocumentRoot "C:/vhost/project1/"
    ServerName php.localhost
    SetEnv NS_ENV variable_value
</VirtualHost>

#this is the second vhost address in XAMPP for project like Laravel
<VirtualHost *:8080>
    DocumentRoot "C:/vhost/Laravel-Blog/public"
    ServerName laravel.localhost
</VirtualHost>

etc

Примечание.. Если вы работаете над проектами Laravel, вы можете создавать неограниченные проекты Laravel, а также другие фреймворки, такие как codeigniter, Yii и т.д., дело в том, что у вас есть проект Laravel/s на c:\vhost\laravel1, c:\vhost\laravel2 и т.д. и сделайте c:\vhost\laravel1\public как DocumentRoot и т.д., Как показано ранее. Каждый проект Laravel будет иметь собственный URL-адрес VirtualHost.

Сохранить и закрыть файл

Дополнительная информация и примечания:

  • Если порт остается по умолчанию 80, тогда адрес URL будет localhost
  • Если порт остается по умолчанию 80, то тег VirtualHost следует изменить на <VirtualHost *:80>
  • Если порт изменен на 8080, адрес URL будет localhost:8080
  • И адрес URL-адреса vhost может выглядеть так: project1.localhost:8080 и т.д.
  • Вы можете добавлять неограниченные проекты и виртуальный хост таким образом.

Мы еще не готовы, читаем больше.

Шаг 3. Редактирование файла хоста Windows

  • Остановить службы Apache и MySQL от XAMPP/WAMP.
  • Открыть файл hosts в C:\windows\system32\drivers\etc вам необходимо получить права администратора для редактирования файла. Я предлагаю отредактировать файл напрямую с помощью текстового редактора Sublime.
  • Добавьте 127.0.0.1 project1.localhost в конец файла, сохраните и закройте файл.
127.0.0.1       localhost
127.0.0.1       php.localhost
127.0.0.1       laravel.localhost
127.0.0.1       codeigniter.localhost
127.0.0.1       wordpress.localhost
127.0.0.1       laravel2.localhost
etc. those are just examples

сохранить файл

Заключительный шаг. Запустите/снова запустите свой Apache и MySQL.


Добавление (предложение)

Примечание.. В процессе разработки вы можете столкнуться с проблемой кэширования, потому что вы можете рискнуть обновить что-то в Laravel и не появится в вашем браузере. Поэтому вам может потребоваться отключить кэш php в процессе разработки в локальной среде.

Откройте файл php.ini в папке php в папке Apache (XAMPP или WAMP) и измените opcache.enable на 0, чтобы он выглядел так:

[opcache]
zend_extension=php_opcache.dll
; Determines if Zend OPCache is enabled
opcache.enable=0

Добавление (альтернативное решение)

Важно: Следующее решение не подходит для тестирования Restful Api, canvas, тяжелых решений и т.д., это может дать вам некоторые головные боли, я бы предложил решение виртуального хоста с портом 80 по умолчанию.

Можно развернуть временный виртуальный сервер без необходимости настройки виртуального хоста XAMPP/WAMP, запустить консоль CMD и выполнить следующую команду php:

php -S localhost:8001 -t c:\vhost\Laravel-Project\public
  • Порт 8001 может быть изменен на любой доступный номер порта и быть уверенным и противоречить другим портам программного обеспечения.
  • c:\vhost\Laravel... путь должен быть изменен на любой путь к проекту.
  • Можно запускать несколько серверов, но должны иметь разные номера портов.

В вашем браузере вам нужно только право

http://localhost:8001/

Примечание по 403 Запрещенная ошибка доступа

Если вы обнаружите 403 доступную запрещенную ошибку при переходе на ваш сайт, вам может потребоваться добавить ее в файл httpd.conf:

<Directory path_to_dir>
    AllowOverride none
    Require all granted
</Directory>

Ответ 2

Вы можете сделать свой localhost указывать на разные папки на разных номерах портов. Выполните следующие простые шаги:

Шаг 1: Сделайте ваш apache для прослушивания нескольких портов. Перейдите в C:\xampp\apache\conf\httpd.conf и выполните поиск ключевого слова. Слушайте, вы можете увидеть что-то вроде этого. Слушайте 80. Теперь скажите, чтобы ваш apache прослушивал несколько портов, замените их ниже содержания

  • Слушайте 80
  • Слушайте 8001
  • Слушайте 8002

Шаг 2: Теперь перейдите к "C:\xampp\apache\conf\extra\httpd-vhosts.conf", это настоящий игрок. В конце файла вы можете указать что-то вроде этого ниже:

DocumentRoot "C:/xampp/htdocs/project1" Имя_сервера localhost: 8001

DocumentRoot "C:/xampp/htdocs/project2" Имя_сервера localhost: 8002

Что говорит Apache брать разные папки при попадании разных номеров портов. То есть, когда вы нажмете localhost: 8001/, он отобразит содержимое из project1, аналогично localhost: 8002/укажет на вашу папку project2.

Сделав это, мы и запустим 2 разных сайта на нашей локальной машине.

Примечание. Вам необходимо перезапустить apache, когда вы что-то изменяете в httpd.conf или httpd-vhosts.conf.

Ответ 3

Прежде всего, откройте "Блокнот" в качестве администратора и затем нажмите file > open. Затем перейдите к своему драйверу окна, и найдите папку system32, затем найдите папку drivers, а затем папку etc.

Теперь вы увидите папку с пустыми файлами, поэтому не беспокойтесь, чтобы увидеть текстовые документы (*.txt) внизу. Измените представление на all files, после чего вы увидите файл vhost.

Откройте и наслаждайтесь!

Ответ 4

Виртуальный хост создает

  • C:\XAMPP\Apache\конф\экстра Откройте файл httpd-vhost, затем Добавить
                 DocumentRoot "C:\xampp\htdocs\project\timegrid\public"        Имя_сервера mytimegrid.me(выбор ура)
  • C:\Windows\System32\Drivers\Etc   Откройте файл hosts, затем добавьте 127.0.0.1 mytimegrid.me(ваше доменное имя)

N.B. вы сначала открываете свой редактор (блокнот и т.д.) в режиме "Запуск от имени администратора", иначе вы не сможете сохранить эти файлы. ок.