Xampp linux настройка виртуальных хостов

Virtual Host под XAMPP в Linux Mint

June 06, 2014

Под локальным сервером XAMPP можно создавать неограниченное количество виртуальных хостов.

Что такое виртуальный хост (Virtual Host)? Применительно в серверу XAMPP — это поддиректории, в которых размещаются отдельные сайты. То есть, имеется директория htdocs , а в ней размещены поддиректории site_1 , site_2 , site_3 (или же так — redface , football , greenpark , название может быть любым).

В каждой из этих поддиректорий распакован и установлен движок CMS WordPress (к примеру). Вот эти поддиректории site_1 , site_2 , site_3 и являются виртуальными хостами под локальным сервером XAMPP.

Как уже упоминалось выше, сервер XAMPP может поддерживать неограниченное количество виртуальных хостов. Однако, по умолчанию разрешено использовать только два хоста. Но редактирование конфигурационного файла позволяет добавлять столько, сколько нужно.

Настройка виртуальных хостов на XAMPP под Linux Mint почти ничем не отличается от подобной настройки под Windows, меняются только пути конфигурационных файлов. Весь процесс настройки можно свести к двум шагам:

  1. Настройка хостов в файле /etc/hosts
  2. Настройка виртуальных хостов в файле /opt/lampp/etc/extra/httpd-vhosts.conf

Ниже на примере расмотрим подробное описание создания одного виртуального хоста на XAMPP под Linux Mint.

Создание поддиректории виртуального хоста (Virtual Host)

Для начала подготовим место, где будет располагаться будущий виртуальный хост. Для этого создадим поддиректорию redface (имя произвольное) и обязательно разместим в ней индексный файл index.html :

Виртуальный хост с именем redface почти создан. Осталось “сказать” об этом локальному серверу XAMPP и операционной системе Linux Mint.

Редактирование файла /etc/hosts

Операционной системе Linux Mint нужно “сказать”, что виртуальный хост redface размещен по адресу 127.0.0.1 . Для этого открываем для редактирования файл /etc/hosts командой:

… и дописываем в нем строку 127.0.0.1 redface.dev :

Окончание .dev является произвольным и служит для того, чтобы вебмастер не забыл, что данный сайт является локальным. Вместо .dev можно использовать .lc и какое угодно другое имя.

Сохраняем Ctrl+O и выходим Ctrl+X из редактора nano .

Включение поддержки виртуального хоста в XAMPP

По умолчанию в настройках XAMPP отключена поддержка виртуальных хостов. Для включения такой возможности нужно отредактировать конфигурационный файл httpd.conf сервера Apache.

Для этого открываем его командой:

В открытом файле httpd.conf нужно найти (в редакторе это сочетание Ctrl+W ) строку # Virtual hosts и раскомментировать (снять знак решетки # ) строку:

Создание виртуального хоста в файле httpd-vhosts.conf

Открываем для редактирования файл httpd-vhosts.conf и знакомимся с его содержимым:

В начале идет много закомментированных строк с кратким описанием виртуального хоста и принципом его создания в данном файле. Можно смело почистить файл httpd-vhosts.conf от этого мусора.

Далее идут два блока с открывающим тегом и закрывающим тегом . Данные блоки являются виртуальными хостами — их два по умолчанию, но можно добавить сколько необходимо.

Эти блоки не рабочие, а всего лишь примеры, как нужно создавать свой собственный виртуальный хост. Внутри тегов / размещена служебная информация — описание виртуального хоста:

Жизненно необходимыми для существования виртуального хоста (Virtual Host) под XAMPP являются две строки:

  • DocumentRoot — путь размещения виртуального хоста в файловой системе
  • ServerName — доменное имя виртуального хоста

Остальные строки носят дополнительный характер:

  • ServerAdmin — e-mail адрес “администратора” хоста
  • ServerAlias — синоним доменного имени ServerName
  • ErrorLog и CustomLog — логи виртуального хоста

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

Читайте также:  Как заставит windows использовать все ядра

Обратите внимание, как поменялись значения в этм блоке на конкретные, под хост redface .

Запускаем (если еще не запущен) или перезапускаем (если уже был запущен) локальный сервер XAMPP:

… и “вбиваем” в адресной строке браузера доменное имя созданного нами виртуального хоста redface.dev :

ОК, все работает!

Проблемы с правами доступа на виртуальном хосте

При создании виртуального хоста (Virtual Host) под XAMPP в директории htdocs для создания или редактирования файлов потребуется изменение прав доступа. По умолчанию поддиректория, в которой располагается виртуальный хост, и все файлы внутри этого хоста имеют разрешение только на чтение.

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

Изменение точки монтирования виртуального хоста

В этой статье точка монтирования виртуальных хостов (Virtual Hosts) располагалась по адресу — /opt/lampp/htdocs/ . То есть, поддиректории виртуальных хостов находились внутри директории htdocs .

Однако, у локального сервера XAMPP имеется возможность переопределить местоположение виртуальных хостов внутри файловой системы Linux Mint. Например, можно расположить все хосты в домашней директории пользователя. Плюсом такого выбора является то, что нет необходимости настраивать права доступа для папок и файлов.

Вся настройка для переопределения точки монтирования виртуальных хостов (Virtual Hosts) сводится к одному действию — изменить значение строки DocumentRoot . Но, к моему сожалению, мне не удалось настроить XAMPP на своем ноутбуке подобным образом.

Все попытки переименовать значение строки DocumentRoot приводили к тому, что XAMPP не мог открыть индексную страницу.

В чем причина подобного отказа со стороны XAMPP, я так и не разобрался. Может быть, внимательный читатель подскажет, в чем причина?

P.S. от 09.09.2014

Добавил в статью комментарий пользователя Alexandr. Сам комментарий мне понравился — подробный и ценный. Поэтому перенес его в статью, как есть. Ниже привожу полный текст, с небольшими стилистическими правками.

Так можно добавить в рабочую папку с проектами на другом диске (например, для использования на Linux и Windows отдельно):

1. Файл httpd.conf

Найти строки и заменить (Имя пользователя):

  • User (username)
  • Group (по умолчанию или username)

2. Создаем мягкую ссылку:

Права на мягкую ссылку “opt/lampp/htdocs/domains” д. б. 777 ( или около того )

3. Файл httpd-vhosts.conf

4. Файл /etc/hosts

5. Меняем владельца файла

Меняем владельца файла /opt/lampp/htdocs/xampp/lang.tmp :

Иначе localhost xampp дальше стартовой страницы может не загрузиться.

6. Перезапуск сервера

… и проверка в браузере: http://mydomain/

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

Если каким-то образом, диск в Linux откажется монтироваться, нужно в Windows отключить быструю загрузку (Fast Boot) в параметрах электропитания.

Для тестирования IE в Linux ставится виртуальная машина (например, VirtualBox), куда устанавливаем Windows7 и любимый браузер IE. В самой Windows редактируем файл hosts также как и в Linux, с одним условием – нужно вписывать другой IP, вместо 127.0.0.1, нужно вписывать 10.0.2.2.

Сайт через виртуальную машину будет также доступен.

TypeScript — размеченные объединения

> Пользовательское объединение типов — что это и как можно использоватьПомимо объединения **примитивных** типов данных (например):<% high. … Continue reading

Источник

XAMPP for Linux: организация и настройка виртуальных хостов — 3

Часть 3. Выбираем версию XAMPP

В предыдущих частях мы рассмотрели (поверхностно, но достаточно для практики) установку и настройку XAMPP for Linux самой свежей на данный момент версии 1.8.3-4.

А теперь зададимся вопросом: а нужна ли нам именно она?

Это вопрос не праздно-философский, а практически важный. И выбирать версию XAMPP надо вполне сознательно.

Дело в том, что сборки XAMPP главным образом приурочены к новым версиям составляющих его компонентов (PHP, Apache, MySQL и т.д.) и создаются довольно оперативно. На реальных же хостингах серверное ПО обновляется гораздо медленнее, по вполне понятным причинам.

Сегодня уже можно найти хостинги, где есть возможность выбрать PHP 5.5, но таких не много, страшно далеки они от народа (в смысле цен), да и нужны они мало кому. В основном приходится иметь дело с хостингами, где стоит надежный, хорошо протестированный PHP 5.3 или имеется выбор между 5.3 и 5.4.

Читайте также:  Oracle linux ��� ��� �����

Основной «удельный вес» в вопросе выбора XAMPP принадлежит версии PHP, поменьше – Apache, и значительно меньше – всего остального.

Краткая табличка соответствий под спойлером:

XAMPP for Linux 1.8.3-4 PHP 5.5.11 Apache 2.4.9
XAMPP for Linux 1.8.3 PHP 5.5.3 Apache 2.4.4
XAMPP for Linux 1.8.2 PHP 5.4.19 Apache 2.4.4
XAMPP for Linux 1.8.1 PHP 5.4.7 Apache 2.4.3
XAMPP for Linux 1.8.0 PHP 5.4.4 Apache 2.4.2
XAMPP for Linux 1.7.7 PHP 5.3.8 Apache 2.2.21

Напомню, что нужную версию можно взять на Sourceforge

Итак, если вы озабочены максимальным приближением к условиям реального хостинга, гораздо разумнее ставить версию XAMPP с PHP 5.3, то есть, конкретно говоря, XAMPP 1.7.7.

Есть и другие доводы в пользу такого выбора. Например, данный сайт, на котором вы сейчас находитесь, работает на движке MaxSite, а эта CMS, в свою очередь, создана на php-фреймворке CodeIgniter. Одно зависит от другого, а всё вместе – от версии PHP. Если на хостинг (или XAMPP) с PHP 5.4 еще удаётся установить MaxSite 0.85, преодолев ошибки с помощью коллективного разума форума MaxSite, то на XAMPP 1.8.3-1 с PHP 5.5 – уже нет (по крайней мере, мне не удалось).

Установка XAMPP ранних версий

Как уже было сказано в Части 1, версии в tar.gz-архивах устанавливаются тривиально просто: переходим в директорию со скачанным архивом и даём команду

каковая означает просьбу к tar’у: распакуйте мне, пожалуйста, этот архивчик в каталог /opt.

Особенности настройки XAMPP ранних версий

Настройка разных версий XAMPP не отличается от того, что мы рассмотрели в Части 2 – за одним исключением.

А именно: в файле /opt/lampp/etc/extra/httpd-vhosts.conf в секциях требуется прописать разные директивы для разных версий.

Как мы помним (см. Часть 2), в XAMPP 1.8.3-1 вся запись для одного хоста выглядела так:

В версиях до 1.7.7 включительно она будет такая:

Так же, естественно, должны выглядеть и секции в записях для каждого хоста.

Note : Есть простой и надёжный способ узнать, какие именно директивы будут правильными для вашей версии.

После установки XAMPP откройте файл /opt/lampp/etc/httpd.conf и найдите строку AllowOverride All. Несколько строк, идущих после нее, в разных версиях будут отличаться. Конкретный пример:

/opt/lampp/etc/httpd.conf (XAMPP 1.8.3-1)

/opt/lampp/etc/httpd.conf (XAMPP 1.7.7)

Это и подскажет вам, какие строки нужно прописать в секциях после строки AllowOverride All.

Ещё одна особенность

Как!? – скажете вы, ведь утверждалось, что особенность одна, как свежесть у осетрины!

Да, но вот для версии XAMPP 1.8.1 (а может, и ещё каких-то между 1.7.7 и 1.8.3-1, не проверял) существует вторая засада.

Если после установки и (обязательно!) перезапуска XAMPP вас не пускают в phpMyAdmin – мол, прав у вас нету:

послушайтесь этой подсказки XAMPP’a и поправьте файл /opt/lampp/etc/extra/httpd-xampp.conf.

Найдите в нём строки

и замените их на

после чего (и перезапуска XAMPP, не забывайте о нём) всё должно устаканиться.

Note : Надо сказать, что подобное встретилось мне лишь однажды, в упомянутом XAMPP 1.8.1, и больше нигде. Может быть, девелоперы поправили это дело и вам оно не понадобится, но «кто предупреждён, тот вооружён».

Возможно, как-нибудь позже совершим более глубокое погружение в настройки XAMPP и его компонентов, там есть что улучшать и модифицировать

Найдите в /opt/lampp/etc/php.ini строку

или ищите свой часовой пояс в /usr/share/zoneinfo

но для начала работы над сайтами на своём локальном сервере, полагаю, первых 3-х частей вполне достаточно.

Успехов вам, креативных идей и удачных стартапов

ХОРОШАЯ СТАТЬЯ ПО НАСТРОЙКАМ xampp! НО У МЕНЯ ТАКАЯ ЖЕ ОШИБКА КАК У ИГОРЯ!

ТЕ В ПАПКЕ HTDOCS БЕЗ ПРОБЛЕМ СОЗДАЮТСЯ ВИРТУАЛЬНЫЕ ХОСТЫ А ВОТ НА ДИСКАХ C:D: НИ В КАКУЮ.

КАК Я ПОНЯЛ НАДО РАЗБИРАТЬСЯ С ПУТЯМИ В httpd-xampp.conf

Новый XAMPP концепция безопасности:

You don’t have permission to access the requested directory. There is either no index document or the directory is read-protected.

If you think this is a server error, please contact the webmaster.

Читайте также:  Настройка принтера астра линукс по сети

ПОмогите настроить httpd-xampp.conf

Андрей, спасибо за «хорошую статью», но я еще раз подчеркиваю: я пишу о XAMPP для Linux. В настройке версий для Linux и Windows есть серьёзные различия, и не только в путях. Тут я Вам помочь не могу, просто потому, что давно не пользуюсь Виндой, однако в Рунете до фига материалов на эту тему. Вот, например, Гугель второй строкой выдает на запрос «xampp на windows» статью «Установка и настройка сервера XAMPP на Windows» по адресу http://makegood.ru/tools/8/, а всего более 4 млн. результатов.

огромное спасибо за все три части статьи! описано чётко, понятно и с объяснением.

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

Спасибо друг. мне очень помогла твоя статья.

На здоровье и успехов.

Администратору ресурса большая благодарность за эту серию статей про xampp.

Живо, интересно, полезно.

Есть вот только ещё один «засадливый» момент, который относится, правда, не к самому концепту или сборке, а к рекомендации автора.

Речь про наименование рабочих сайтов на локальной машине, mysite1.DEV и т.д., конкретно про то, что домен должен быть отличным от реального.

Но по «лучшим практикам» ведь даже внутри сайта рекомендуется абсолютная адресация, и тогда получится большой трындец в том, что, наклепав 10-20 перекрёстных страниц на локальной машине (с переходом во вложенные папки и прочими прелестями, вроде mysite1/cat1/cat2/index.php) получим все неработающие ссылки на реальном сервере. Либо, соответственно, наоборот: написав под реальный проект (mysite1.ru) мы ничего не сможем проверить в XAMPP, поскольку он о таком вообще не знает, а знает только mysite1.dev.

Как эту ситуацию обойти?

Хотелось бы знать Ваше мнение.

Спасибо на добром слове.

Я, как Вы, должно быть, понимаете, отнюдь не крутой веб-мастер, и насчет «лучших практик» и преимуществ абсолютной адресации не убежден, мягко говоря. Может, тут у меня пробел в самообразовании, не исключено. Но вот в CMS-ках, насколько они мне известны, в основном использется относительная.

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

Если есть такая необходимость, имхо, можно пойти на одинаковое именование реальных и виртуальных сайтов, при этом, возможно, потребуются дополнительные меры, чтобы закрыть XAMPP извне и вовне.

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

Кроме того, возможно и другое решение: перед экспортом прошерстить локальный сайт (заменить все ссылки) при помощи php или даже bash/sed, что, конечно, предполагает некоторое знание этих инструментов плюс регулярных выражений. Этот путь кажется мне на первый взгляд более симпатичным.

Установил Xampp по выше размещенной инструкции, все заработало до того момента, как распаковал Joomla в директорию www/site1.my. Когда ввожу в браузере http://localhost/site1.my , то на белом экране неизменно вижу это:

Object not found!

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

If you think this is a server error, please contact the webmaster.

Apache/2.4.10 (Unix) OpenSSL/1.0.1i PHP/5.4.31 mod_perl/2.0.8-dev Perl/v5.16.3

Подскажите, что здесь может быть не так!

Иван, если Вы сделали всё правильно, то Ваш сайт должен открываться по адресу site1.my, а не localhost/site1.my.

Установил на комп Xampp V3.2.2. В первый день установки запустил Апач изменив порты на 1337/7331, мог работать в консоли. На следующий день localhost не открывается, пишет следующее:

Подробности: Попытка Google Chrome подключиться к localhost была отклонена. Сайт недоступен или ваша сеть настроена неправильно.

Попоробуйте зайти на localhost не Хромым, а другим браузером.

Не поможет — еще раз перепроверьте правильность записей в /etc/hosts и везде, где меняли настройки. Если и это не поможет, придется долго и нудно гуглить (в основном на английском) и медитировать. Лично я никогда с такой проблемой не сталкивался, — за ненадобностью.

Кстати, что за версия 3.2.2? Насколько я знаю, после XAMPP 1.8.3 пошла нумерация 5.5.хх — 5.6.хх

Источник

Оцените статью