Home » Создание сайтов и программирование » Настройка Apache, PHP и MySQL под Windows

Настройка Apache, PHP и MySQL под Windows

Даже, если вы никогда не вносите изменений в используемые вами php файлы, все равно не помешает настроить среду для их выполнения локально.

Во-первых, это позволит вам протестировать работу новых версий CMS и плагинов локально, без риска испортить рабочую версию сайта на хостинге.

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

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

Если же вы редактируете какие-то файлы (например, меняете файлы темы в Вордпрессе) или, вообще, занимаетесь программированием на PHP, то локальная среда выполнения намного облегчит и ускорит процесс разработки и тестирования.

Настройка Apache, PHP и MySQL под Windows

Несмотря на то, что на PHP хостингах установлена операционная система Linux, уже давно существует возможность установки всех необходимых программ под Windows. Причем, существует несколько способов это сделать.

Денвер

denwer

Самый простой вариант установить на компьютере с операционной системой Windows набор из Apache, PHP и MySQL – использовать Денвер (Джентльменский Набор Web-Разработчика). После его установки (которая является очень простой процедурой) вы получите готовые к использованию Apache, PHP и MySQL.

Работа с Денвером строится следующем образом. В специальном каталоге (настраивается при инсталляции) вы размещаете свои сайты, располагая их в подкаталогах, которые называются так же, как домены этих сайтов (например, developerguru.net для этого сайта).

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

Когда я только начинал разбираться с Вордпрессом и PHP, то воспользовался именно Денвером. Но в процессе его использования я столкнулся с некоторыми недостатками.

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

Но главной причиной, почему я решил отказаться от использования Денвера, стал переход на ОС Windows 7. На форуме Денвера есть тема про семерку. У части людей все работает, у части нет. Поэтому, я решил попробовать другой вариант – установить все компоненты по отдельности.

Установка Apache, PHP и MySQL

apache, php и mysql

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

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

С установкой Apache и PHP проблем почти не возникло. Единственное, что пришлось выключить встроенный в Скайп вебсервер, т.к. он занимал 80-й порт.

А вот с MySQL пришлось повозиться. Установился он нормально и я без проблем подключился к нему с помощью бесплатной HeidiSQL. Но из PHP подключиться не удавалось. Несколько раз проверив различные настройки и проведя множество экспериментов, удалось выяснить, что проблема кроется в том, что в Windows 7 PHP обращается к localhost по IPv6 — ::1 вместо IPv4 (127.0.0.1).

Эта проблема решается прописыванием строки

127.0.0.1 localhost

в файл hosts.

В целом, установка и настройка Apache, PHP и MySQL по отдельности значительно сложнее установки Денвера. Так что рекомендовать ее абсолютным новичкам не могу.

Кроме установки и настройки Apache, PHP и MySQL оставалось решить, что делать с доменами сайтов. Вордпресс, который я использую на многих сайтах, прописывает домен сайта в базу данных и с другим (тестовым) именем работать не будет.

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

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

Я пользуюсь довольно удобной утилитой HostsMan:

hostsman

Комментировать/раскомментировать нужную строку можно одним кликом мыши.

Существует еще возможность принудительного задания домена блога через wp-config.php, прописав в нем следующие строки:

В этом случае developerguru.net.loc прописываем в файле hosts и больше не трогаем. Если нужна локальная версия сайта, то открываем developerguru.net.loc в браузере.

Но сразу выяснилось, что адреса картинок все равно не меняются. Возможно, есть еще какие-то глюки, поэтому я решил не рисковать.

WampServer и другие

Кроме Денвера есть и другие пакеты, которые позволяют установить необходимые для работы под Windows компоненты. Например, WampServer. Но я их не использовал, поэтому, ничего конкретного сказать не могу.

Заключение

Я доволен своим решением установить Apache, PHP и MySQL в ручном режиме. В процессе настройки я стал лучше понимать их взаимодействие и работу.

Если же вы новичок с одним сайтом, то вашим выбором должен стать Денвер — это самый простой вариант получения рабочей среды хостинга на Windows.

  • Ney

    Интересная подборка.

    Я пользуюсь вот этой статьёй с Хабра – http://habrahabr.ru/blogs/webdev/71743/
    Тут ещё есть про то, как настроить, чтоб письма складывались в файлики, как в Денвере.

    • Спасибо, статья по ссылке довольно толковая. К сожалению, не попалась мне в поиске :-(

  • а в Linux нужно лишь набрать в консоли sudo aptitude install apache2 mysql-server phpmyadmin

    А ещё Linuxоидов извращенцами называют :)

    • Я недавно настраивал свой VPS под линуксом. Это было гораздо сложнее, чем под виндой.
      В частности, простой командой устанавливалась последняя версия PHP, которая не работала с nginx. Чтобы установить более раннюю версию PHP, пришлось собрать ее из исходников.

      • Если обе программы были установлены из репозиториев, то у вас кривые мейнтейнеры или нестабильная ветка. Ну и nginx это всё же не энтерпрайз: поддерживают когда вздумается…
        И кстати, даже сборка из исходников проста под Linux'ом:
        sudo ./configure && make && make install
        Правда, может не хватать каких-то программ – поэтому читайте выхлоп.
        Сам пользуюсь Debian Lenny. Проблем с пакетами, установленными стандартными средствами не было (были проблемы с собственными пакетами, но это уже мои косяки).

        • Тут надо заметить, что без nginx сайт работает заметно медленнее.
          А вообще, если не нужны виндовые программы, то можно сидеть и под линуксом. Но я не могу отказаться от многих приложений. А если основная ОС – винда, то надо и средства разработки под нее ставить. Об этом, собственно, и статья.

          • Эм… Видимо вы про связку апач+nginx. Действительно, так работает всё быстрее (статика быстрее обрабатывается на nginx).

            Да, есть приложения, которые работают только под windows (немного, но есть). Сам года 3-4 назад сидел на винде и использовал denwer. Хороший выбор для новичка. А апач я тогда так и не поставил… Даже не помню в чём была проблема, но не поставил.

  • Кстати, попробуйте добавить в стили #disqus_thread li { list-style-type:none; padding:0px 0px 0px 20px; margin:0px; }
    Дабы убрать точки…

    • Какие точки?

      • У каждого комментария слева точка. Это потому, что каждый коммент заключён в тег <li></li> – тег элемента списка, а он по умолчанию имеет некоторые параметры (например, та же точка, отступ), которые вы не переопределяете. Я предложил вариант как их переопределить для тегов <li>, содержащихся внутри тега с id=disqus_thread (в нём у вас сидят комменты).

        • У меня нет никаких точек нет, проверил в разных браузерах.