Меню Рубрики

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

Virtual Host под XAMPP в Linux Mint

June 06, 2014

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

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

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

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

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

  1. Настройка хостов в файле
  2. Настройка виртуальных хостов в файле

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Все попытки переименовать значение строки приводили к тому, что 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. Меняем владельца файла

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

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

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

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

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

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

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

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

Angular – именованные outlets

Для меня немного запутанная картина с именованными областями отображения и главное – с правильной настройкой. Нужно немного прояснить для. … Continue reading

Источник

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

Часть 2. Организация виртуальных хостов

Настройка XAMPP как виртуального офлайн-хостинга для наших сайтов очень проста, не требует особых познаний (которые, впрочем, никогда не бывают лишними), и конкретно сводится к редактированию трех файлов – одного системного и двух конфигов самого XAMPP:

  • /etc/hosts
  • /opt/lampp/etc/httpd.conf
  • /opt/lampp/etc/extra/httpd-vhosts.conf

Но сначала определимся с нашими будущими сайтами и точкой их монтирования.

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

Для определенности договоримся, что в нашем примере будут три сайта: mysite1.dev, mysite2.dev и mysite3.dev. Вы, естественно, можете сделать их (теоретически) сколько угодно и назвать их как хотите.

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

Размещение виртуальных хостов

Стандартно рекомендуется размещать папки сайтов в директории /opt/lampp/htdocs, однако мы пойдем другим путем и будем держать их в своей домашней директории, что несравненно удобнее, хотя бы потому, что в этом случае нам не нужны будут права рута на каждый чох.

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

Итак, создаем в домашней директории папку www, а в ней папки mysite1.dev, mysite2.dev и mysite3.dev. В них и будем загружать файлы наших сайтов.

Правим /etc/hosts

Предварительное Note : Будьте умницей, сделайте бэкап первоначального /etc/hosts. Бережёного бог бережет.

Файл /etc/hosts приведём к такому виду:

Всё остальное, что может содержаться в этом файле, нас в данном случае не интересует и пусть остаётся как есть.

Правим /opt/lampp/etc/httpd.conf

Здесь нас интересует одна-единственная строка:

Она должна быть где-то 488-ой (для разных версий XAMPP – в районе 480 – 490-ой)

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

Правим /opt/lampp/etc/extra/httpd-vhosts.conf

Приведём этот файл к следующему виду (всё остальное должно быть закомментировано или удалено):

Warning! Везде замените ваш_логин на свой логин в системе, а mysite1(2,3).dev – на имена ваших виртуальных сайтов.

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

Поэтому после правки запустим (или перезапустим) XAMPP из консоли:

чтобы убедиться, что он не выдает ошибок в stdout.

Note : Инструкции в секции меняются от версии к версии, но об этом мы поговорим позже, а пока просто не забывайте, что речь у нас тут идет о XAMPP 1.8.3-1.

Кажется, ничего не забыли? Тогда, как говорит один мой приятель, всё должно зафурыкать. Вбиваем в браузере mysite1(2,3).dev и убеждаемся в этом.

Добавление новых хостов

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

/www/&ltимя_нового_хоста> и загружаем туда файлы

  • Дописываем имя нового хоста в файле /etc/hosts
  • Добавляем в файл /opt/lampp/etc/extra/httpd-vhosts.conf ещё одну секцию по аналогии с существующими и прописываем в ней вместо mysite1(2,3).dev имя нового хоста.
  • Перезапускаем XAMPP
  • Два слова о паранойе

    Если вам необходимо (или хочется) защититься по максимуму, нажмите на стартовой странице на Security

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

    и пройдя весь процесс step-by-step.

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

    В следующей части речь пойдет о нюансах настройки, специфических для разных версий.

    Здравствуйте, уважаемый админ!Большое спасибо за такое понятное и подробное объяснение, все установил.

    И можно еще один вопрос? После установки, как Вы и посоветовали, попробовал открыть свой сайт через браузер, сайт открылся, но вот загруженные фотографии не захотели. У меня это фотогалерея со скриптами JavaScript – не открываются ни маленькие ни большие фото. Получается, что нужно еще поставить JavaScript? Или проблема в чем-то другом?

    И что еще интересно – созданный сайт на флешке открывается браузером (получается средствами браузера?)без проблем. Для чего тогда нужен XAMPP (apache на компе, PHP), если сайт (небольшой) можно сделать и так, поправляя редактором HTML-файлы и перезагружая браузер? Извините, что спрашиваю, может, простые вещи, делаю в web-разработке первые шаги.

    Константин, спасибо за отзыв.

    Судя по всему, Ваш сайт не использует php, и поэтому Вам XAMPP не требуется, сайт будет работать и без него. JavaScript — технология браузерная и ни apache, ни каких-то дополнительных пакетов в системе не требует. Если всё сделано правильно, скрипт заработает. Смотрите документацию к JS-галерее и ищите, где допустили ошибку.

    т.е. разрешил всё и всем домашней папке. Заработало! Почему-то не было права доступа у пользователя к картинкам в подкаталоги. Хотя это папка home.

    Еще раз огромное спасибо!

    Константин, а зачем же было разрешать “всё и всем домашней папке”? Вполне достаточно было расширить права на отдельные файлы и директории. Таким “глобальным” решением Вы создали себе потенциальные угрозы для безопасности, и это как минимум. В норме в /home права на каталоги 755, на файлы 644 (т.е. запись для группы и остальных запрещена), а на ряд каталогов и файлов права могут быть 700 и 600, например, а на файлы, где хранятся пароли и т.п. конфиденциальная информация – еще жестче, вплоть до 400.

    Теорию прав доступа следует достаточно хорошо изучить, особенно если Вы собираетесь заниматься созданием сайтов и вообще веб-технологиями, где это совершенно необходимо. В Linux механизмы прав точно такие же, а “правовая политика” – одна из причин высокой безопасности и надежности Linux.

    Да, я еще совсем новичок. Уже сделал 755. Сайт работает))). Просто до этого, когда начинал работать в подкаталогах opt (поначалу там хотел сайт установить), 755 не хватило для того, чтобы пользователь (я) мог туда файлы записывать (копировать без терминала). Только через терминал или mc. А иногда все же хочется мышкой быстренько.

    А, кстати, подскажите, пожалуйста, что лучше почитать по теории прав (желательно с примерами установки). И вообще по Linux (интересует Debian, Ubuntu, Linux Mint), чтоб было понятно новичку, с примерами команд. Хотя, конечно, такие развернутые инструкции вряд-ли в одном месте есть. В любом случае надо будет решение конкретной задачи искать.

    Насчет прав процитирую сначала золотые слова (http://docs.altlinux.org/current/modules/linux_permissions/index.html#id2526339), хотя написанные по поводу ALT Linux, но вполне применимые к любому Linux-дистру:

    “Установка и поддержание оптимальных прав доступа является одной из важнейших задач системного администратора. Права должны быть достаточными для нормальной работы пользователей и программ, но не бóльшими, чем необходимо для такой работы. Дистрибутивы ALT Linux обладают продуманной системой прав (предопределённые группы, псевдопользователи для различных программ-серверов, права доступа для системных файлов и каталогов). Прежде чем вносить существенные изменения в эту систему, целесообразно понять её логику и выяснить, нет ли другого способа достичь нужной цели.”
    Ну, а конкретных материалов море, можно начать хотя бы с http://www.opennet.ru/base/sys/file_access.txt.html. Советую прямо сразу постараться осилить хоть и непростые местами, но серьезные материалы типа этого: http://www.ibm.com/developerworks/ru/library/l-lpic1-v3-104-5/

    А дальше, всё лучше ориентируясь в теме, сами без труда найдете массу полезной информации

    Отлично, в очередной раз спасибо!))

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

    Так, кое-что выяснилось. Я-то думал, что Ваш сайт написан на статических страницах, без php. Если Вы при установке выбрали сервер, то XAMPP Вам уже не нужен. XAMPP как раз и предназначен для того, чтобы не превращать домашний десктоп в сервер, но при этом иметь возможность создавать и отлаживать сайты. А если уж установлена серверная ОСь, то на ней и надо всё это делать. Что-нибудь одно.

    Там только Apache2 без PHP и MySQL(хотя когда я еще до них доберусь). Мне сервер на данном компьютере не нужен, задача – только создавать и отлаживать сайты. В-общем-то только для этого и ставил сервер. Сейчас немного боюсь удалять Apache2 – как бы это не повлияло на настройки XAMPP. Хотя, переустановить недолго.

    Удаление апача из ОС никак не повлияет на XAMPP, который всё нужное имеет у себя “на борту” – тем-то он и хорош.

    Не могли б вы также написать как устанавливать модули в Xampp, у меня например сложности с imagick

    Max, я никогда не нуждался в каких-либо дополнительных модулях и, как существо крайне ленивое, ненужным не интересовался. А пожалуй, надо бы. Но поскольку придется более-менее глубоко влезать в сабж, обещать такой материал в самое ближайшее время, увы, не могу.

    Посмотрите для начала эту ссылочку: https://community.apachefriends.org/f/viewtopic.php?f=17&t=39759, может, в этом что-то есть.

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

    Сомневаюсь, но давайте попробуем. Перешлите мне всё на rulitbox@yandex.ru или выложите на каком-нибудь pastebine.

    В общем я кажется справился сам.

    Пользовался этим https://community.apachefriends.org/f/viewtopic.php?f=17&t=39759 и этим http://sbd-inlinux.blogspot.com/2011/07/configure-error-not-found-please.html

    Вот слова не мальчика, но настоящего линуксоида

    Кстати, Ваша ссылка вместе с моей – уже приличная основа для дополнительной части “XAMPP for Linux”, как развяжусь с текущими делами, так займусь.

    Спасибо огромное за статью. Перелопатил кучу сайтов, и здесь единственно где написано от и до , доходчиво даже для меня, только только начинаю разбираться с линуксом. Все получилось, сайты заработали из домашней директории. Только вот одно но, при установке новой темы, говорит – нет прав на создание папки uploads, все равно права 777 надо выставлять для папки wp-content, несмотря на то что сайты в домашней директории находятся. И еще в винде я кидаю просто папку в темы, с индексным файлом и файлом стилей пустым, и его уже можно установить как тему, так удобно работать при создании своего шаблона с нуля. А здесь даже у почти готового шаблона почему-то не читает файл стилей, пока опять же права 777 не задашь. Тогда какой смысл в домашнюю папку переносить сайты? В общем вопрос может смешной, но совершенно не понимаю почему в домашней категории, где вроде бы все можно делать без прав администратора, wordpress эти права запрашивает, может браузеру эти права надо выставить?)) Еще раз спасибо за статью.

    Сергей, спасибо за хороший отзыв.

    Что касается прав: смысл переноса виртуальных сайтов в домашнюю директорию в том, что мы можем как угодно их править/изменять/удалять (в том числе и менять права на файлы и директории) без прав рута. А вот конкретные права на файлы и директории — это уже другое дело. Они определяются, применительно к Вашему случаю, требованиями движка WP.

    Иными словами, в Linux, как и во всем Web, Вы можете быть владельцем файла, но не иметь права его читать (права в восьмеричном виде 200) или редактировать (400) или запускать как исполняемый (600). Кроме Вас как владельца, учитываются права группы и остальных. Такие же ограничения прав действуют и по отношению к руту.

    В винде, если Вы администратор, то Вам (а также группе и остальным) можно всё (что соответствует правам 777). Это очень плохая практика, из-за которой винда так уязвима. Советую Вам поскорей избавляться от этого наследия и обязательно изучить вопрос о структуре прав на файлы и директории, поскольку, повторюсь, та же система действует и на серверах во всем интернете, и без ее знания будет очень трудно разобраться с возникающими проблемами. Материалов по теме в интернете — море. Успехов!

    ТЕма жива еще? проблемка есть небольшая.
    вот файл часть файла httpd-vhosts.conf

    xampp.ru – работает, остальное – браузер пишет access forbidden, error 403

    права на папку поставил www поставил 755, не помогло

    вопрос снят, забыл поставить это

    Require all granted

    на другом сайте инструкцию нашел, там про Директори не было написано ничего. сейчас работает.

    Здравствуйте! спасибо за статью, но вот есть проблемка, я сайты собираюсь хранить на внешнем устройстве (ntfs), которое при использовании примонтировывается, sudo chmod не помогает, не пускает, пишет 403 Access forbidden. Как бы я мог выйти из ситуации?

    Боюсь, это у Вас не проблемка, а проблема, и, возможно, даже с большой буквы. Дело в том, что монтирование ntfs в обычном варианте означает права на файлы 600 (на директории 700) на ntfs-разделе, и простыми линуксовыми средствами это не решается. Придется разбираться с драйвером ntfs-3g и опциями монтирования. Лично я с этим дела не имел, могу лишь посоветовать для начала почитать тут:

    Здравствуйте уважаемый админ. Проблема вот в чем заключается. Я полный ноль в линуксе. Установил xampp. Запустил его, проверил по адресу localhost. все работает отлично. В htdocs создал папку test.dev и в нем создал файл test.dev. в нем прописал: когда вывел этот документ в браузер он мне все это и выдал. Не скрипт php, а html код. он вывел мне все что я написал. Если Вы можете помочь буду вам очень сильно благодарен.

    Уважаемый Александр! То, что Вы “полный ноль в линуксе” — это, конечно, не есть хорошо, но к данному случаю отношения не имеет. Здесь нужно иметь (хотя бы первоначальное) представление о том, как устроен и работает сайт. К примеру, файл test.dev не поймет ни один сервер, они понимают файлы index.html или index.php — таковы по умолчанию начальные страницы сайта, именно эти страницы отдает пользователю сервер при обращении к нему по адресу сайта (в Вашем случае htpp://test.dev).

    Так что совершенно тот же результат Вы наблюдали бы и в Винде, — на Денвере или Виндовой сборке XAMPP.

    Информации по сайтостроению и вообще веб-технологиям в интернете более чем достаточно (кстати, как и о Линуксе, который документирован лучше чем Windows), так что требуется только желание учиться, время и некоторое терпение.

    Уважаемый админ. Приношу свои извинения, что ввел вас в заблуждение и забыл дописать что файл с расширением php. был написан в блюфише и сохранен с расширением php. еще раз приношу свои извинения. мы пытались запустить парсер сайта. вот код ошибки:

    xampp Warning: Unknown: failed to open stream: Отказано в доступе in Unknown on line 0

    Ну это уже конкретнее. На поверхности у Вас две проблемы: кодировка и права на файлы-каталоги.

    XAMPP сообщает именно об этом (Отказано РІ доступе в “переводе на русский” означает Отказано в доступе).

    С главной проблемой — доступом — будет гораздо легче справиться, если у Вас есть ясное представление о владельце файла и правах на файл. Если нет — настоятельно советую прояснить для себя эти вопросы, поскольку они являются фундаментальными как для Linux, так и для всего интернета в целом. В данном случае нужно начать с проверки прав на файл index.php (обычно нормальные права 644) и директорию test.dev (755).

    этот файл был создан на ОС Windows. Перенесли на Linux. Вот и проблема. не могли бы вы более конкретно обьяснить что делать?

    Права на файл можно поменять командой chmod.

    Предположим, Ваш index.php расположен по пути /opt/lampp/htdocs/test.dev/index.php (в норме это так и должно быть, а если не так — пропишите точно существующий путь). Тогда достаточно забить в терминале команду

    sudo chmod 644 /opt/lampp/htdocs/test.dev/index.php

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

    Аналогично можно поменять права и на другие файлы, занесенные с другой ОС. Учтите, что в зависимости от разных причин права на некоторые специфические файлы могут требоваться нестандартные, так что моя рекомендация — освоить понятие о правах и владельце файлов-каталогов — остается в силе.

    Спасибо огромное. Все проблемы решены при помощи команды chmod 777. Парсер заработал! еще раз огромное спасибо за вашу помощь.

    Сделал все по инструкции. При переходе по адресу mysite1.dev, выдает стандартную заглушку “Приветствия” (первое окно после установки) подскажите в чем может быть проблема?

    Обычно такое происходит при неправильной настройке DNS. Проверьте записи в /etc/hosts, а также еще раз /opt/lampp/etc/extra/httpd-vhosts.conf — в нем частенько случаются ошибки.

    Нашел в чем была причина!

    Файл “httpd.conf” имел расширение после установки XAMPPa “httpd.conf.bak” следовательно как я тщательно не копировал и не сверял настройки все сводилось к нулю, т.к. данный файл имел не то расширение (.bak)

    Информация будет полезна тем кто решил установить свежую версию xampp. Возможно разработчики изменили установщик возможно это связанно с “linux mint 17.3 cinnamon” на других не пробовал.

    Автору статьи большое спасибо!

    Спасибо, Дмитрий. Как соберусь дополнить материал сведениями о новых версиях XAMPP, буду иметь в виду Вашу информацию.

    Источник

    Популярные записи


    Adblock
    detector