У меня есть рабочая установка apache и mysql с использованием стандартных портов, а мой файл хоста указывает домены на 127.0.0.1.
Я сейчас переключаю свой стек LAMP на Zend Server, но хочу, чтобы моя старая установка работала одновременно.
Я попытался переключить старый порт apache на 8080 и другой порт для старого mysql. Кажется, все работает нормально (apache работает, mysql прослушивает новый порт, но я не пробовал подключение к базе данных).
Однако моя проблема в том, что я не могу сопоставить домены с 8080 на localhost, потому что файл хоста не обрабатывает порты, а только IP-адрес.
Я должен упомянуть, что я на машине с Windows.
Есть идеи, как я могу решить эту проблему, чтобы я мог использовать файл hosts для сопоставления доменов с двумя разными стеками LAMP?
редактировать
Что касается файла hosts и виртуального хоста. Когда я перехожу на localhost, я запускаю свой новый Zend apache, когда я перехожу на localhost: 8080, у меня есть мой старый корень документа apache. Это как и ожидалось.
Однако я не могу заставить работать файл hosts и виртуальные хосты: 8080. В моем хост-файле у меня есть
127.0.0.1 example.dev:8080
и в моих виртуальных хостах (httpd-vhosts.conf на моем старом экземпляре apache, а не на моем экземпляре Zend) у меня есть
NameVirtualHost *:8080
<VirtualHost *:8080>
DocumentRoot "C:/xampp/htdocs"
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:\xampp\htdocs\example.dev"
ServerName example.dev
</VirtualHost>
Теперь, когда я пробую example.dev в своем браузере, я получаю сообщение «сервер не найден», поэтому я думаю, что виртуальные хосты не работали.
В моем хост-файле у меня есть
127.0.0.1 example.dev:8080
Файл hosts не может понять порт. Перестань пытаться.
и в моих виртуальных хостах (httpd-vhosts.conf на моем старом экземпляре apache, а не на моем экземпляре Zend) у меня есть
NameVirtualHost *:8080 <VirtualHost *:8080> DocumentRoot "C:/xampp/htdocs" </VirtualHost> <VirtualHost *:8080> DocumentRoot "C:\xampp\htdocs\example.dev" ServerName example.dev </VirtualHost>
VirtualHost означает, что вы можете запускать несколько веб-сайтов на одном IP-адресе. Итак, измените порт на 80, в частности ServerName для DocumentRoot C:/xampp/htdocs
и попробуй еще раз.
Хотя хосты не будут сопоставлять порты, вы сможете получить доступ к двум экземплярам, используя их порты и имена хостов, т.е. http: // site1: 8080 /, http: // site2: 80 /. Или, если вам действительно нужно, чтобы оба были доступны на одном порте, переместите новый стек на порт, например 8081, и настройте NGINX, HAProxy, Squid или даже другой экземпляр Apache для прокси-серверов с одного порта.