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

/ Просмотров: 9401
Метки: ,

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

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

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

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

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

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

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

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

Показать...

Note:   Подробные сведения смотрите в RELEASENOTES, взятом из самого свежего на начало апреля 2014 года XAMPP 1.8.3-3 на конец июля 2014 года XAMPP 1.8.3-4.

Напомню, что нужную версию можно взять на 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-архивах устанавливаются тривиально просто: переходим в директорию со скачанным архивом и даём команду

sudo tar xvfz xampp-linux-<version>.tar.gz -C /opt

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

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

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

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

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

<VirtualHost 127.0.0.1:80>
    ServerAdmin admin@mysite1.dev
    DocumentRoot "/home/ваш_логин/www/mysite1.dev"
    ServerName mysite1.dev
    ServerAlias www.mysite1.dev
    ErrorLog "/opt/lampp/logs/mysite1.dev-error_log"
    CustomLog "logs/mysite1.dev-access_log" common
    <Directory />
    AllowOverride All
    Require all granted
    </Directory>
</VirtualHost>

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

<VirtualHost 127.0.0.1:80>
    ServerAdmin admin@mysite1.dev
    DocumentRoot "/home/ваш_логин/www/mysite1.dev"
    ServerName mysite1.dev
    ServerAlias www.mysite1.dev
    ErrorLog "/opt/lampp/logs/mysite1.dev-error_log"
    CustomLog "logs/mysite1.dev-access_log" common
    <Directory />
    AllowOverride All
    Order allow,deny
    allow from all
    </Directory>
</VirtualHost>

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

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

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

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

254     AllowOverride All
255 
256     #
257     # Controls who can get stuff from this server.
258     #
259     Require all granted

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

232     AllowOverride All                                                            
233 
234 
235     #
236     # Controls who can get stuff from this server.
237     #
238     Order allow,deny
239     Allow from all

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

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

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

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

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

Access forbidden!
New XAMPP security concept:
Access to the requested directory is only available from the local network.
This setting can be configured in the file "httpd-xampp.conf".

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

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

AllowOverride AuthConfig Limit
     Order allow,deny
     Allow from all

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

AllowOverride AuthConfig Limit
     Require all granted

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

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

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

вот, например (показать)
Зачем вам жить по времени германской столицы, если вы там не живете?

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

date.timezone = Europe/Berlin

и исправьте на

date.timezone = Europe/Moscow

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

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

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

Комментариев: 12 RSS

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

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

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

*********************************************************************

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

Access forbidden!

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 млн. результатов.

Алехандор3
2014-01-28 в 08:04:24

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

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

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

Владимир7
2014-04-13 в 22:07:20

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

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

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

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

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

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

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

С уважением.

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

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

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

Если есть такая необходимость, имхо, можно пойти на одинаковое именование реальных и виртуальных сайтов, при этом, возможно, потребуются дополнительные меры, чтобы закрыть 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.

Error 404

localhost

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 не открывается, пишет следующее:

Веб-страница недоступна

ERR_CONNECTION_REFUSED

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

Помогите, пожалуйста!

Заранее благодарю!

Едиге

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

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

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

Оставьте комментарий

Комментарий будет опубликован после проверки

(обязательно)