Установка сервера apache под windows. Установка Apache под Windows

Самым популярным на сегодняшний момент является веб-сервер Apache . Сегодня я расскажу вам как быстро и правильно установить apache . Вашему вниманию будет представлено пошаговое описание процесса установки веб-сервера, которое будет сопровождаться скриншотами экрана.

Приступим!

Так как проект расчитан на начинающих веб разработчиков, то для простоты настройки и установки ПО мы будем программировать под Windows. По мере набора опыта, вы легко сможете “переехать” на *nix платформу.

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

Находим на странице раздел “Apache HTTP Server 2.2.10 is the best available version ” (лучшая доступная версия) и там выбираем дистрибутив для Windows – “Win32 Binary without crypto (no mod_ssl) (MSI Installer) ” (установочный файл без поддержки SSL, т.к. для наших уроков SSL нам не понадобиться):

Итак, мы скачали установочный файл apache_2.2.10-win32-x86-no_ssl.msi . Запускаем установщик:

Просто нажимаем Next.

Принимаем лицензионное соглашение и нажимаем Далее.

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

Я настоятельно рекомендую вам установить Apache именно в эту папку (она предлагается по умолчанию). Следующие уроки будут посвящены установке и настройке PHP и MySQL. Я буду ориентироваться именно на этот путь установки Apache. Так что, если после установки Apache вам не нужны лишние проблемы с прикручиванием к нему PHP и MySQL, то советую прислушаться к моим словам. В дальнейшем, когда вы пару раз сами поставите и сможете настроить apache , вы установите его в удобную для вас директорию.

Подготовка к установке завершена. Нажимаем Install и ждем пока завершиться установка.

Поздравляю, установка Apache завершена!

Если у кого-то возникли трудности в установке – пишите в комментариях. Я постараюсь помочь.

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

Apache HTTP-сервер (сокращение от англ. a patchy server ) – одна из наиболее популярных и распространенных программ, созданных для веб-разработчиков и администраторов интернет-ресурсов. По данным независимых исследователей, Apache установлен на 50% компьютеров всех пользователей HTTP-серверов.

Главными преимуществами Apache являются стабильность, быстродействие и гибкость, и обусловлены они модульной организацией, а также тем, что разработку ведёт открытая группа программистов, хоть и под официальным названием Apache Software Foundation .

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

О том, как установить сервер Apache для операционной системы Windows 7, пойдет речь в данной статье.

Установка Apache

В первую очередь необходимо скачать последнюю версию дистрибутива Apache без поддержки SSL и запустить установку. В приветственном окне нужно кликнуть на «Next », прочесть лицензионное соглашение разработчика и подтвердить свое согласие с ним.

Затем, в окне установки необходимо заполнить поля так, как показано на картинке ниже, а в поле «Administrator’s Email Address » указать адрес своей электронной почты, кликнуть «Next » и установить переключатель в положение «Custom ».




Далее необходимо создать директорию www на диске C и указать её в качестве установочной папки для Apache, кликнуть «Next » в этом и «Install » в следующем окне. Когда установка закончится, нажмите на «Finish ».

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

Кликнув по тому же значку правой кнопкой мыши, можно перейти к различным системным службам операционной системы или открыть монитор Apache.

Для того чтобы проверить работает ли установленный сервер Apache, наберите в адресной строке вашего браузера http://localhost

Если появилась страница с воодушевляющей надписью «It works! », значит, установка Apache прошла успешно, и он функционирует правильно.

Базовая настройка веб-сервера

Хоть Apache и является весьма удобным и исключительно надёжным, не все готовы его использовать как локальный сервер по ряду причин, и основная - отсутствие даже в среде Microsoft Windows какого-либо графического конфигуратора, что довольно непривычно для большинства пользователей.

Настройка сервера производится с помощью ручного редактирования конфигурационного файла httpd.conf . Однако, вопреки представлениям о непонятности и сложности данного процесса, ничего сложного в данной операции нет по двум причинам: во-первых , для того, чтобы сделать из только что установленного Apache сервер, который настроен для приемлемой и комфортной работы, в файле конфигурации нужно поменять совсем немного данных, а во-вторых - комментарии httpd.conf содержат немало полезной информации, необходимой для того, чтобы разобраться с настройкой.

Что необходимо?

  • Запустить Apache под платформой Windows 7;
  • Хранить в удобной для пользователя директории файлы будущего сайта (например, C:www);
  • Не испытывать проблем с кодировкой, а в частности - с отображением кириллицы;
  • Возможность работать с несколькими сайтами одновременно.

Чтобы успешно решить эти проблемы, зайдите в папку с установленным Apache, найдите и откройте в подпапке conf файл httpd.conf . Обратите внимание, что строки, начинающиеся с «решётки », являются текстовыми комментариями, а в качестве настроек веб-сервера использованы строки, в начале которых значок «решётки » отсутствует.

Для начала нужно выполнить настройку той директории, которая будет использоваться сервером в качестве папки веб-сайта. Найдите в тексте строку, которая начинается с DocumentRoot . Данная директива определяет, какая папка будет являться корневой.

Исправьте её на DocumentRoot “C:/www ”. Следует уточнить, что слэши в этом файле должны быть наклонены вправо, а не влево, как, вероятно, уже привыкли пользователи Windows. После вышеуказанных манипуляций, проблема с месторасположением вашего сайта решена.

Options (определяет, какие серверные функции будут доступны) AllowOverride (определяет, какие директивы из.htaccess могут преобладать над такими же в httpd.conf) Order (устанавливает определенные правила доступа к серверу)

Список используемых параметров:

Options. Возможны следующие варианты:

  • Includes – использование SSI разрешено;
  • IncludesNOEXEC – использование SSI разрешено с ограничениями (не допускаются #include и #exec );
  • Indexes – разрешено использование индексных файлов, и если URL-адрес указывает на директорию сайта (например, www.domain.ru/dir/ ), в которой не существует индексного файла, будет показано содержимое данной директории, а если этой опции нет – выдается оповещение о том, что доступ запрещён;
  • ExecCGI – выполнение скриптов CGI разрешено;
  • FollowSymLinks – сервер следует по имеющимся символическим ссылкам директории (используется в Unix-системах);
  • SymLinksIfOwnerMatch – сервер следует по имеющимся символическим ссылкам директории лишь в том случае, если целевой файл имеет одного владельца со ссылкой;
  • All – все вышеописанное вместе разрешено;
  • None – все вышеописанное вместе запрещено;
  • MultiViews – возможность подбора определенного контента и его выдачи в зависимости от предпочтений браузера (даже если включено все (Options All). Указывается отдельно).

AllowOverride. Варианты:

  • AuthConfig – позволяет использовать директивы для авторизации;
  • FileInfo – разрешает использование директив для работы с различными типами документов;
  • Indexes – разрешает использование директив для работы с файлами индексации;
  • Limit – разрешает использование директив для определения доступа к хосту;
  • Options – разрешает использование директив для работы с определенными специфическими функциями директорий;
  • All – все вышеуказанное вместе;
  • None – ничего из вышеуказанного вместе.

Order. Варианты:

  • Deny, Allow – Deny определяется перед директивой Allow, доступ разрешен по умолчанию, кроме хостов, которые указаны в следующей после Deny from строке;
  • Allow,Deny – Allow определяется перед директивой Deny, доступ запрещен по умолчанию, кроме хостов, которые указаны в следующей после Allow from строке;
  • Mutual-failure – разрешен доступ только таких хостов, которые отсутствуют в Deny и присутствуют в Allow.

На основе всего вышесказанного, попробуйте настроить ваш сервер. В файле httpd.conf директива Directory по умолчанию существует сразу в двух экземплярах - и . Первый вариант трогать не следует, поэтому во втором установите параметры следующим образом:

Options Indexes FollowSymLinks AllowOverride None Order allow, deny Allow from all

Говоря другими словами, для папки C:/www и всех её подпапок выбраны следующие параметры:

  • Из возможной функциональности имеющегося сервера разрешены индексы в директориях и переходы по символическим ссылкам;
  • Возможность параметрического переопределения с помощью файлов.htaccess полностью отсутствует, однако учитывая то, что вы имеете полный доступ к серверу, она не является актуальной – все можно настроить через httpd.conf;
  • Доступ к веб-серверу разрешен со всех хостов.

Теперь, сохраните файл httpd.conf и перезапустите Apache с помощью Apache Monitor либо командой apache –k restart в командной строке. Настройка корневой папки сайта закончена.

Следует проверить, правильно ли вы всё сделали. Создайте простейшую веб-страницу в папке C:www, откройте ваш браузер и введите http://127.0.0.1/ваша_созданная_страница . Страницы должна открыться. В ином случае необходимо тщательно проверить все изменения в файле httpd.conf на правильность.

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

Если пресловутый Internet Explorer в подобных случаях определяет кодировку из самой страницы, то, к примеру, Mozilla Firefox и Opera к подобным действиям склонности совершенно не имеют, и способ выставления кодировки в браузере вручную едва ли можно назвать удобным. Следовательно, необходимо настроить Apache на выдачу по умолчанию необходимой кодировки.

Найдите в файле httpd.conf строку, которая начинается на AddDefaultCharset . Скорее всего, там указана кодировка ISO-8859-1, в которой отсутствуют кириллические символы. Поменяйте ISO-8859-1 на windows-1251 , сохраните файл и перезапустите Apache. Теперь корректное отображение русского языка на вашем сайте будет работать в любом браузере.

В сервере Apache достаточно просто настроить работу с несколькими сайтами. Адреса, которые можно использовать для них - 127.0.0.2, 127.0.0.3 и т.д. При этом по сети виден будет только тот, который является сайтом по умолчанию (127.0.0.1), однако для локальной работы это не является критичным. Раздел файла httpd.conf , в котором производится настройка всего необходимого для этого, находится в самом конце и именуется VirtualHosts .

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

Проверено на Windows Vista SP1, Vista Ultimate, Windows 7

Ваши действия:

  1. Скачайте бесплатно с официальных сайтов следующие дистрибутивы:

    Настройка PHP интерпретатора

    1. Откройте двойным щелчком файл php.ini из папки C:\server\php\ .
    2. В разделе "Paths and Directories" должна присутствовать строка extension_dir ="C:\server\php\ext" .
    3. В разделе "Dynamic Extensions" найдите; Be sure to appropriately set the extension_dir directive. , внизу этой строчки поместите:
      extension=php_gd2.dll
      extension=php_mbstring.dll
      extension=php_mysql.dll
      extension=php_mysqli.dll
      extension=php_pdo.dll
      extension=php_pdo_mysql.dll
      extension=php_sqlite.dll
    4. Где-то в конце файла найдите строчку; End: и удалите все, что за ней следует.

    Сохраните измененный файл там же.

    Завершив редактирование файлов, создайте папку www в папке server и папку cgi-bin в папке www . Перезапустите компьютер. В результате в трее, в статусе сервера появился зеленый треугольник вместо красного квадрата, если нет и выведено окно с предупреждением об ошибке, значит изменение файла httpd.conf было неточным и вам прийдется внимательно все проверить, наклоны слэшей, кавычки и так далее.

    www — корневая директория (root directory) локального сервера, именно здесь следует сохранять все документы (папки, страницы, изображения, скрипты и другие файлы) вашего сайта.

    Тестируем PHP интерпретатор

    Создайте новый файл в редакторе (Notepad2 или Notepad+) и напишите код:

    echo phpinfo ();
    ?>

    Сохраните файл в директории C:\server\www\ как index.php . В браузере наберите http://127.0.0.1 или http://localhost/ ⇒ должна быть показана таблица:


    У меня все получилось! Если у вас есть какие-либо вопросы или пожелания, пишите в блог.

    Мы имеем локальный сервер в связке с интерпретатором и теперь можно изучать PHP.

    Тестируем соединение с сервером баз данных MySQL

    Небольшой скрипт:

    $dblocation = "127.0.0.1" ;
    $dbname = "test" ;
    $dbuser = "root" ;
    $dbpasswd = "" ; /* Укажите пароль который вы вводили при
    установке MySQL */
    $dbcnx = @ mysql_connect ($dblocation , $dbuser , $dbpasswd );
    if (! $dbcnx )
    {
    echo "Не доступен сервер mySQL" ;
    exit();
    }
    if (!@
    mysql_select_db ($dbname , $dbcnx ))
    {
    echo "Не доступна база данных" ;
    exit();
    }
    $ver = mysql_query ("SELECT VERSION()" );
    if(! $ver )
    {
    echo "Ошибка в запросе" ;
    exit();
    }
    echo mysql_result ($ver , 0 );
    ?>

    Сохраняем скрипт в папке C:\server\www\ как mysql.php и набераем в браузере http://localhost/mysql.php ⇒ будет показан серийный номер MySQL сервера :

    5.5.12
    1. Скачайте бесплатно дистрибутив менеджера по управлению базами данных с официального сайта php-myadmin.ru , последнюю стабильную версию, файлом с расширением all-languages.zip .
    2. Распакуйте архив в папку phpmyadmin , и поместите её в папку www .
    3. Скачайте config.inc.php , извлеките из архива и скопируйте его в папку phpmyadmin .
    4. Откройте config.inc.php , найдите строчку $cfg["Servers"][$i]["password"] = "pass"; ⇒ вместо pass укажите корневой пароль (root) , который вы использовали при установке сервера MySQL ⇒ сохраните файл.
    5. В браузере наберите http://localhost/phpmyadmin/ ⇒ будет показана титульная страница менеджера:

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

    Были использованы материалы с сайтов: dev.mysql.com | php.net | php-myadmin.ru

Скачать дистрибутив web-сервера Apache 2.2 можно тут: httpd-2.2.20-win32-x86-openssl-0.9.8r.msi . На основе инсталяции этого дистрибутива написана данная статья. Все версии HTTP-сервера Апач, ниже 2.2.20, подвержены серьезной уязвимости, информацию по которой можно прочесть, используя ссылку внизу страницы. На сегодняшний день ранее популярная, и считавшаяся наиболее стабильной ветка Apache 1.3 уже является устаревшей и разработчиками HTTP-сервера Apache рекомендуется к установке последняя стабильная версия Apache 2.2. Самые новые версии Apache доступны на официальном сайте: HTTP сервер Apache . Информация о том, как выбрать дистрибутив Apache, опубликована в статье .

Установка Apache 2.2 в Windows

Установка и запуск сервера Apache 2.2 в Windows XP с использованием бинарного дистрибутива с интегрированным инсталятором не представляет сложностей (инструкции в статье по больщей части применимы и для установки в Windows Vista и Windows 7 , тестирование проводилось исключительно для установки Apache в Windows XP).

Следует учесть, что если компьютер подключен к локальной сети/интернету - сайты под управлением Apache, по умолчанию, могут быть доступны всем пользователям локальной сети или интернет.

После запуска файла-инсталятора Apache 2.2 "httpd-2.2.20-win32-x86-openssl-0.9.8r.msi" нажимаем кнопку "Next", соглашаемся с лицензионным соглашением. В поля "Network Domain" и "Server Name" вводим "localhost" (без кавычек). "Administrator`s Email Address" - email администратора, например: admin@localhost. Оставляем выбранное по умолчанию поле "For All Users, on Port 80, as a Service -- Recommendend", которе делает Apache доступным для всех пользователей системы на 80 порту в качестве автоматичесски запускаемого сервиса при запуске Windows.

Следующий шаг мастера (Setup Type) - выбор типа установки: типичная (Typical) и выборачная (Custom). Следует выбрать "Custom" и нажать "Next". Далее нужно сменить путь установки на "C:\apache2.2.20" нажав кнопку "Change" и оставить выбранные по умолчанию компоненты как есть. После нажатия "Next" и "Install" HTTP-сервер Apache будет установлен.

В процессе установки появится 2 черных окна, которые закроются автоматически (закрывать их вручную нельзя). В случае успешной установки возле системных часов Windows отобразится новая иконка. Если на иконке зеленый треугольник - Apache запущен, красный квадрат говорит о том, что сервис по каким-либо причинам не стартовал.

Наберя в адресной строке браузера адрес http://localhost/ должна появится страничка с крупной, выделенной жирным шрифтом надписью: "It Works", что будет говорить о том, что Apache работает как положено. Если Apache запущен, а надпись "It Works" не появилась - следует поискать причину в брандмауэре и прочитать раздел этой статьи: "Ошибки при запуске Apache".

Узнать причину сбоя, точнее посмотреть сообщение об ошибке при запуске Apache можно при помощи консоли Windows ("Пуск" -> "Выполнить" -> cmd -> "Ок"), вручную запустив сервис. Команды управления Apache через консоль:

    httpd.exe -k start (Запуск)
    httpd.exe -k stop (Остановка)
    httpd.exe -k restart (Перезапуск)

Чтобы Windows не выдал ошибку:

"httpd.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Необходимо прописать путь к bin директории Apache в Windows переменную Path, что в дальнейшем может пригодится для быстрого запуска утилит командной строки Apache, например таких, как htpasswd.exe. Это можно сделать открыв меню "Пуск", найти "Мой компьютер" и нажав на нем правой кнопкой мыши выбрать из появившегося списка "Свойства". Далее выбрать закладку "Дополнительно" и нажать кнопку "Переменные среды". В окне "Системные переменные" выбираем переменную "Path" и жмем кнопку "Изменить". В самое начало поля "Значения переменной" добавляем путь к bin каталогу Apache:

Добавление пути в переменную Path Windows к директории bin Apache

C:\apache2.2.20\bin;

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

Ошибки при запуске Apache

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

Одной из самых распространненых ошибок, возникающей при запуске Apache, является занятость 80-го порта другой программой, например Skype или ISS. В результате, при старте сервера командой httpd.exe -k start получаем следующее сообщение:

httpd.exe: Could not reliably determine the server"s fully qualified domain name, using 192.168.1.2 for ServerName
(OS 10048)+сvўэю ЁрчЁх°рхЄё юфэю шёяюы№чютрэшх рфЁхёр ёюъхЄр (яЁюЄюъюы/ёхЄхтющрфЁхё/яюЁЄ). : make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down
Unable to open logs
Note the errors or messages above, and press the key to exit. 30...

Сообщение "could not bind to address 0.0.0.0:80 no listening sockets available" говорит о том, что 80-ый порт уже занят. Посмотреть, какой процесс занимает 80-ый порт можно запустив в командной строке Windows: netstat -anb и подождав несколько минут, пока не выведется весь список. Теперь нужно настроить ПО, мешающее Apache, на другой порт (в настройках программы), удалить его, либо, перенастроить Apache на другой порт.

Для того, чтобы убрать не критичную, но мозолящую глаза ошибку: "httpd.exe: Could not reliably determine the server"s fully qualified domain name, using 192.168.1.2 for ServerName", необходимо расскоментировать строку, в httpd.conf:

ServerName localhost:80

Запускать и останавливать службу Windows можно и такими командами из командной строки Windows:

    net start apache2.2 (Запуск)
    net stop apache2.2 (Остановка)

Вот только в этом случае, сообщения об ошибках при запуске Apache будут не информативными.

Посмотреть состояние HTTP-сервера Apache можно и с помощью служб Windows: "Пуск" -> "Панель управления" -> "Администрирование" -> "Службы" -> "Apache 2.2". Тут также можно остановить и запустить HTTP-сервер.

Настройка Apache

Основной файл с настройками Apache httpd.conf расположен по умолчанию в директории conf, которая находится в корне установочной директории Apache (если Apache установлен согласно инструкциям статьи - директория Apache: C:\apache2.2.20). Добраться до файла конфигурации Apache можно через: "Пуск" -> "Все программы" -> "Apache HTTP Server 2.2" -> "Configure Apache Server" -> "Edit the Apache httpd.conf Configuration File".

Все строки-комментарии в файле httpd.conf , которые не воспринимаются HTTP-сервером Apache и служат только в качестве текстовых пояснений для администратора, начинаются с символа "# ". Удалив все комментарии из конфигурационного файла Apache можно существенно облегчить дальнейшее восприятие и редактирование настроек сервера. Перед удалением комментариев, желательно сохранить оригинальный httpd.conf в той же папке, где он и был под другим именем, например: httpd.conf.original.

При удалении комментариев в настроечном файле Apache следует быть внимательным, и не удалить лишнего. Удалять следует только строку, начинающуюся с символа "#". Например, в примере, приведенном ниже, следует оставить все строки, которые не начинаются с символа "#": .

Произвольная часть конфигурационного файла Apache httpd.conf

#
# This should be changed to whatever you set DocumentRoot to.
#

# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None

Перед началом конфигурирования HTTP-сервера Apache следует отметить, что все пути к файлам в httpd.conf следует разделять прямой косой чертой "/" , а не обратной "\", которая используется в Windows. Это необходимо для избежания некоторых проблем.

Пример использования "правильной" прямой косой черты "/" в путях к файлам в httpd.conf

ServerRoot "C:/apache2.2.20"

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

Подключение PHP как модуль Apache

Находим в httpd.conf множество строк, начинающихся с LoadModule и после последней вставляем:

LoadModule php5_module "c:/php5.2.17/php5apache2_2.dll"
PHPIniDir "c:/php5.2.17"

Первая строка подгружает модуль php5apache2_2.dll, вторая - указывает интерпретатору PHP, где следует искать главный конфигурационный файл PHP - php.ini. В предидущих версиях PHP, необходимо было перемещать php.ini в главный каталог Windows, что вносило некоторую путаницу, при настройке PHP.

Далее указываем Apache, что файл index.php, также является индексным файлом, который запускается, когда в запросе клиента (например http://www.. Для этого меняем параметры директивы DirectoryIndex на:

DirectoryIndex index.php index.html

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

Теперь необходимо удостовериться, что PHP-скрипты выполняются. Для этого, в каталоге C:\apache2.2.20\htdocs\ нужно создать файл phpinfo.php с таким содержимым:

phpinfo () ;

После чего, открыв в браузере страницу по адресу http://localhost/phpinfo.php появится страница с информацией о настройках интерпретатора PHP. Если вместо этого, отображается код скрипта, значить модуль PHP не подключен.

Лог-файлы Apache

Из лог-файлов Apache, можно узнать много интересного, например, почему Apache не запустился? По умолчанию, основные лог-файлы хранятся тут: C:\apache2.2.20\logs. Изменить их месторасположение, можно путем настройки соответствующих параметров httpd.conf:

  • ErrorLog - путь к логу ошибок.
  • CustomLog - путь к логу доступа.

VirtualHost Apache

Виртуальные хосты Apache служат для обработки одним сервером Apache нескольких различных сайтов. Детальная информация по директиве VirtualHost: " ". Ниже будет рассмотрен пример, как в Apache, установленном в Windows, открыть поддержку нескольких сайтов.

Для начала следует создать основную папку, в которой будут храниться файлы всех сайтов: C:\www. В этой директории создадим две подпапки: mysite.lc и phpmyadmin.lc, в которых будут лежать файлы и конфиги Apache для сайтов: http://mysite.lc и http://phpmyadmin.lc. Далее в каждой из папок mysite.lc и phpmyadmin.lc, создаем еще по три подпапки: conf, log и public. В итоге, должна получиться такая структура:

Доменная зона "lc" (сокращение от английского "local") будет служить определением того, что открываемый сайт, располагается на локальном компьютере. Чтобы ОС Windows перенаправляла все запросы к локальным сайтам куда следует, необходимо отредактировать файл hosts (например, с помощью блокнота), находящийся в директории: C:\WINDOWS\system32\drivers\etc\. После "127.0.0.1 localhost" (хотя, по существу, место размещения добавляемых строк в файле может быть любым), необходимо добавить две строки и сохранить изменения:

127.0.0.1 mysite.lc
127.0.0.1 phpmyadmin.lc

Теперь вводим в адресной строке браузера адрес http://mysite.lc и http://phpmyadmin.lc , после чего в нем откроется страница с крупной, выделенной жирным шрифтом надписью: "It Works".

Файл hosts опрашивается системой при каждой попытке подключения к любому домену, поэтому для вступления изменений, внесенных в него, не требуется ничего перезагружать. Другое дело, если попытаться открыть домен http://mysite.lc до сохранения данных в hosts. При этом, браузер, скорее всего, запишет в кеш DNS информацию о том, что домен не существует, и при повторном открытии этой страницы, с уже модифицировнным файлом hosts, результат не изменится. В таком случае, чтобы добится нужного результата, нужно попытаться сбросить кеш DNS: "Пуск" -> "Выполнить" -> "cmd" -> ipconfig /flushdns . Если это не поможет, попробуйте открыть сайты в других браузерах. Крайняя мера, которая 100% помогает - перезагрузка компьютера.

Настало время "объяснить" Apache, что у каждого сайта есть свои каталоги, для чего и понадобятся директивы-контейнеры . Но перед этим, нужно создать и отредактировать два файла с именем index.php, которые будут являть собой тестовые сайты, и разместить их в подпапках "public".

Текст файла index.php для C:\www\mysite.lc\public\

echo "Mysite" ;

Текст файла index.php для C:\www\phpmyadmin.lc\public\

echo "Phpmyadmin" ;

Теперь в папках conf создаем настроечные файлы vh.conf виртуальных хостов:

vh.conf для mysite.lc в каталоге C:\www\mysite.lc\conf\


# Основное название сайта
ServerName mysite.lc

# Дополнительные названия сайиа
# *.mysite.lc - доступны все поддомены для mysite.lc
ServerAlias *.mysite.lc

DocumentRoot "c:/www/mysite.lc/public"
ServerAdmin [email protected]

# Пути к логам сайта
ErrorLog "c:/www/mysite.lc/log/error.log"
CustomLog "c:/www/mysite.lc/log/access.log" combined

# Настройки директории сайта

Order allow,deny
Allow from all

vh.conf для phpmyadmin.lc в каталоге C:\www\phpmyadmin.lc\conf\


ServerName phpmyadmin.lc
ServerAlias *.phpmyadmin.lc
DocumentRoot "c:/www/phpmyadmin.lc/public"
ServerAdmin [email protected]
ErrorLog "c:/www/phpmyadmin.lc/log/error.log"
CustomLog "c:/www/phpmyadmin.lc/log/access.log" combined

Order allow,deny
Allow from all

В httpd.conf, с самого низа, запускаем виртуальные хосты и подгружаем конфигурационный файл vh.conf для каждого сайта:

Настройка виртуальных хостов в httpd.conf

# Подключение виртуальных хостов
NameVirtualHost *:80

Чтобы применить новые настройки - перезагружаем сервер Apache.

Последнее обновление статьи: 2011/09/08

Apache - установка и настройка.

Все хорошо. На локальном компьютере Apache работает. В локальной сети Apache работает. А вот из сети интернет сервер Apache недоступен.

Вся локальная сеть подключена к сети интернет через прокси сервер UserGate 4.
Сделано правило для публикации веб сервера, но Apache не доступен из сети интернет

При любом значении порта Listen в httpd.conf, при Start-е в чёрном окне на 30 секунд выводится "Only one usage of each socket addressis normally permited: make_sock: could not bind to address ... no listening sockets available, shutting down Unable to open logs"
Listen address...
80 0.0.0.0:80
8080 0.0.0.0:8080
1234 0.0.0.0:1234
127.0.0.1:80 127.0.0.1:80
При этом, при наборе в адресной строке компьютера http://localhost/ на экране выводится "It works!".
Пожалуйста, подскажите, что делать.(Windows7,Internet Explorer9)

"При любом значении порта Listen" - Скорее всего у вас на 80 порту висит какое-то другое приложение. Найдите его и отключите/удалите/переведите на другой порт. Как это сделать - написано в статье. Как вариант - переведите Apache на другой порт.

Вы пишете в статье "Если вместо этого, отображается код скрипта, значить модуль PHP не подключен". Именно это у меня и происходит, хотя я сделал все как написано. Не подскажете в чем может быть причина?

Причина та же - PHP не подключен. Проверьте, что написано в логах Apache, также посмотрите внимательно настроечный файл Apache - раздел отвечающий за подключение модуля PHP. Если делать все, как написано в статьях - связка Apache + PHP + MySQL запускается с первого раза. Материал статей протестирован реальными успешными установками.

Ваш вопрос мне не понятен.

В инструкции тактично умолчали, что нужно в httpd.conf добавить

Эта строка не обязательна - PHP будет работать и без этой директивы.

Не работает несколько виртуальных хостов. Бьюсь уже месяца три, то одно попробую, то другое. Все настройки сделаны как тут описано. Один localhost работает. Если "Запихнуть" внуть папки localhost/www какой-нибудь каталог и обратиться туда по адресу localhost/каталог, то работает. А более никак (((((
В чем может быть причина? ОС Windows XP SP3, но редакция ZverCD - может в этом быть причина?
Помогите плиззз...

Причина точно не в сборке Windows. После того, как вы сделали все, как в инструкции, какую ошибку выдает браузер после обращения к mysite.lc и phpmyadmin.lc?

Первым сайтом прописан localhost, вторым site.ru. В виндовском файле hosts оба висят на 127.0.0.1.
При попытке зайти на site.ru долго-долго ищет хост и потом пишет "Не может отобразить страницу". В корне директории файл index.php и index.html лежит, и в любом случае если обратиться по адресу localhost/site.ru (там продублирован простой html), там все открывается. Либо если закомментировать хост по умолчанию (localhost) в Virtualhosts, тогда при наборе localhost открывается сайт site.ru.
Может, вместо localhost надо прописывать другое имя?

После изменения файла hosts попробуйте перезагрузить компьютер. Если сначала попытаться открыть в браузере site.ru, а только после этого изменить файл hosts - сайт не откроется. Далее запустите в cmd команду ping на localhost и site.ru. Если site.ru пингуется (127.0.0.1) - проблема в настройках Apache. Также, попробуйте на время теста отключить все антивирусы/файрволы - возможно проблема в них. Если ничего не поможет - переустановите Apache заново, полностью соблюдая все инструкции статьи (порядок действий, названия тестовых сайтов и т.д.) - должно все заработать. А уже после того, как все заработало, начинайте пробовать самостоятельную корректировку конфигов.



PHPIniDir "c:/php"
ошибку выдает "Неудалось запустить службу APACHE2 на локальный компьютер. Подробности содержатся в журнале системных событий. Если эта служба разработана не в Майкрософт обратитесь к разработчику службы и сообщите специфический для этой службы код ошибки 1"
при удалении вышеуказанных строк все снова работает

Большое Вам спасибо! Всё работает!

У меня php страница начала интерпретироваться только после добавления
AddType application/x-httpd-php .php

"У меня php страница начала интерпретироваться только после добавления
AddType application/x-httpd-php .php"
То же самое, 10 раз перезагружался, пока не полез в инет и не увидел, что еще нужно эту строку прописывать. Добавил, и все сразу заработало на Windows 7.

Установил Apache (httpd-2.2.20-win32-x86-no_ssl) под OC Windows 7,запускается,но Firefox не открывает стартовую страницу с:Its work! Пинг 127.0.0.1 localhost проходит, настройки NOD 32,Skype, файла vhosts.conf, что пишут в рекомендациях, проверены. В чём проблема? Помогите пожалуйста!

А точно ли, что строка "#ServerName localhost:80" в файле htpd.conf должна быть закомментирована? я создал файл CreateDB.php в котором прописал суть: "создать базу данных test". базу данных он создал, как я потом узнал из консоли самого mysql, но в браузере пишет "удаленный сервер или файл не найден". При этом файлы типа phpinfo.php и всякие "привет!" отрабатали без замечаний

Здравствуйте.
Проблема такая.Установил Apache2.2.20,PHP5.2.17
Вроде бы модуль PHP подключается,но любые попытки
обратиться http://localhost/phpinfo.php не приводят
к результату.Приведу текст из файла error/log
Apache/2.2.20 (Win32) PHP/5.2.17 configured -- resuming normal operations
Server built: Aug 30 2011 21:54:15
Parent: Created child process 8012
Child 8012: Child process is running
Child 8012: Acquired the start mutex.
Child 7488: Released the start mutex
Child 8012: Starting 64 worker threads.
Child 7488: All worker threads have exited.
Child 8012: Starting thread to listen on port 80.
Что делать,не знаю.Может подскажете.

Хорошая статья, но вы забыли упомянуть что при подключение php как модуля, так-же необходимо добавить конфигурацию для него:

После строк "
LoadModule php5_module "c:/php5.2.17/php5apache2_2.dll"
PHPIniDir "c:/php5.2.17"
"

Нужно прописать что-то типа "

AddType text/html .php

Поправка (Теги потёрлись)

"знак меньше"IfModule php5_module"Знак больше"
"знак меньше"Location /"Знак больше"
AddType text/html .php
AddHandler application/x-httpd-php .php
"знак меньше"/Location"Знак больше"
"знак меньше"/IfModule"Знак больше"

На компьютере Apache (httpd-2.0.64-win32-x86-no_ssl.msi)работает. После установки PHP - php-5.2.17-Win32-VC6-x86.zip все работает. Но после вставки в httpd.conf:
LoadModule php5_module "c:/php/php5apache2_2.dll"
PHPIniDir "c:/php"

Ошибку выдает "Неудалось запустить службу php5apache2_2.dll
и соответсвенно Apache не запускается в чём может быть причина????
PS.здесь ответа не нашёл!

To Alex
Извините что поздно, но может кому пригодится. В параметре директивы LoadModule нужно указывать dll, которая соответствует версии апача. Т.е. в Вашем случае это должна быть php5apache2.dll

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

К тому же, на сервере хостинг-провайдера стоит не пакет разработки, а родные дистрибутивы Apache, MySQL и PHP. Буквально на днях я столкнулся с ситуацией, когда создаваемый сайт нормально работал в установленной и сконфигурированной в ручную среде разработки, а под Денвером не работал вообще.

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

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

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

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

Установка и настройка MySQL . Точно такая же ситуация. Автор - я сам.

Пару слов для новичков. Зачем вообще нужна среда локальной разработки. Если вы разрабатываете сайт, который будет состоять из нескольких статических HTML-страниц, то среда разработки - это всего-на-всего удобство при просмотре сайта в браузере в процессе отладки. Удобно заходить на разрабатываемый сайт по доменному имени. Вот кажется и все преимущества.

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

Ну что же, поехали!

Установка Apache

Я обещал избавить вас от магического трепета перед принципами загрузки сайта с сервера хостинг-провайдера в вашем браузере. Сейчас я это сделаю.

Сервер - это ничто иное, как мощный компьютер, на жестком диске которого хранятся файлы вашего сайта. Обычно такой компьютер работает под управлением Unix-подобных систем. На этом компьютере запущена программа, которая называется Apache . При обращении к 80-му порту сервера, программа Apache выдаст обратившемуся компьютеру HTML-код и графические файлы, хранящиеся на жестком диске. Браузер компьютера пользователя примет полученные данные и оформит их в привычную нам страницу сайта.

На жестком диске сервера может находится сразу несколько сайтов. Все они распределены по папкам с уникальными именами (в этом случае сайты называются виртуальными хостами ). Apache настроен таким образом, что при обращении к 80-му порту с определенным URL-адресом сайта, точно знает какие данные и из какой папки нужно отправить обратившемуся компьютеру.

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

Теперь я расскажу, как установить и настроить Apache на локальном компьютере.

После установки и настройки Apache, в браузер можно будет ввести придуманное вами доменное имя, которое будет поставлено в соответствие разрабатываемому на локальном компьютере сайту, и локальный сервер выдаст браузеру запрашиваемый HTML.

Шаг 1. Скачиваем Apache.

На следующем экране обязательно установите галочку в пункте Include Bin Directory in Windows PATH :

Если вы этого не сделаете, то PHP не сможет найти нужный ему файл и будет ругаться.

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

На этом процесс задания директив для настройки завершен и можно приступать к их применению:

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

Настройка Apache и настройка PHP

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

У меня это папка www в корне диска «С ».

Шаг 1. Разрешение доступа Apache к папе www на жестком диске.

Теперь в настройках Apache мне нужно указать путь к этой папке и разрешить доступ.

Для этого нужно открыть в любом текстовом редакторе основной файл конфигурации Apache. Это файл .

В файле ищем блок инструкций:

AllowOverride None Options None Order allow,deny Allow from all

Ниже этого блока вставляем следующие инструкции:

AllowOverride All # Options None Options Indexes FollowSymLinks Order allow,deny Allow from all

Тем самым мы разрешили доступ Apache к папке www в корне жесткого диска.

Шаг 2. Создаем место для хранения файлов сайта.

В папке www необходимо создать папку с именем нашего сайта (например moysite ). В папке moysite создаем еще две папки: www - для хранения файлов сайта и logs - сюда Apache будет автоматически записывать ошибки, связанные с работой сервера и информацию о подключениях к сайту.

Так как обычно работа ведется с несколькими сайтами (т.е. в папке www корня жесткого диска, может находится несколько проектов: moysite , moysite1 , noviysite и т.д.) , доступными по разным локальным URL, то нужно настроить работу Apache с виртуальными хостами .

Для этого в файле конфигурации C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf необходимо подключить файл дополнительной конфигурации виртуальных хостов .

Ищем в файле httpd.conf строку #Include conf/extra/httpd-vhosts.conf . Процесс подключения файла дополнительной конфигурации виртуальных хостов заключается в удалении символа решетка (#) перед этой строкой.

#Include conf/extra/httpd-vhosts.conf

Include conf/extra/httpd-vhosts.conf

Дело в том, что в настройках Apache символом решетка (#) обозначается закомментированная строка, которая не участвует в конфигурации сервера.

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

В конце файла необходимо добавить следующий блок:

ServerName moysite.loc DocumentRoot "C:/www/moysite/www" ErrorLog "C:/www/moysite/logs/error.log" CustomLog "C:/www/moysite/logs/access.log" common

Пункт ServerName задает URL, по которому будет осуществляться доступ из браузера локального компьютера к разрабатываемому сайту, файлы которого находятся в папке C:/www/moysite/www . Файл C:/www/moysite/logs/error.log будет содержать информацию об ошибках в работе сайта, а файл C:/www/moysite/logs/access.log - информацию о подключениях.

Шаг 3. Перенаправление запросов на локальный сервер.

Последний шаг - это перенаправление запросов на локальный сервер. Нам нужно сообщить Windows о том, что при запросе в браузере URL moysite.loc его должен обработать наш локальный Apache. Для этого открываем файл C:\WINDOWS\system32\drivers\etc\host в любом текстовом редакторе и в конце дописываем одну строчку: 127.0.0.1 moysite.loc .

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

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

Наводим лоск

Если при разработке проекта вы применяете ЧПУ , то необходимо включить модуль mod_rewrite.so в файле основной конфигурации Apache C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf .

Включение модуля осуществляется простым раскомментированием строки LoadModule rewrite_module modules/mod_rewrite.so

#LoadModule rewrite_module modules/mod_rewrite.so

LoadModule rewrite_module modules/mod_rewrite.so


Использование укороченных тегов. Некоторые ленивые программисты вместо полного кода ..., в начале php-скрипта, используют укороченную форму ... Для включения укороченных тегов необходимо настроить файл конфигурации PHP C:\Program Files\PHP\php.ini :

Short_open_tag = Off

Short_open_tag = On

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

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

1. В папке C:\www\ создать новую папку noviysite , внутри которой создать папку www и logs .

2. В файле настройки виртуальных хостов Apache C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf указать настройки для нового виртуального хоста noviysite.loc :

ServerName noviysite.loc DocumentRoot "C:/www/noviysite/www" ErrorLog "C:/www/noviysite/logs/error.log" CustomLog "C:/www/noviysite/logs/access.log" common

3. В файле C:\WINDOWS\system32\drivers\etc\hosts указать перенаправление для нового виртуального хоста на локальный сервер: 127.0.0.1 noviysite.loc

4. Перезапустить Apache, кликнув левой клавишей по значку рядом с часами и выбрав пункт Restart .

P. S.: Естественно в папке C:\www\noviysite\www должны лежать файлы сайта, которые и будут отображаться в браузере при вводе URL noviysite.loc/... .

В случае, если вводится только доменное имя noviysite.loc из папки C:\www\noviysite\www будет загружаться файл index.html (таким образом настроен Apache по умолчанию и именно данный файл является автоматически-запускающимся при вводе лишь доменного имени).

Поскольку, в последнее время, большое распространение получили динамические сайты, написанные на языке PHP, то стартовый файл будет носить имя не index.html , а index.php . Для того, чтобы на ряду с index.html при вводе лишь доменного имени автоматически запускался еще и index.php нужно внести небольшие изменения в файл C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf :

Находим блок директив DirectoryIndex index.html . После директивы DirectoryIndex index.html нужно дописать через пробел index.php , чтобы получилось вот так: DirectoryIndex index.html index.php .

Хочу заметитье, что в этом случае Apache будет сначала искать файл index.html и пытаться запустить его, а потом уже index.php .

В случае, если папка с сайтом не содержит файла index.html или index.php (а в ней находится файл с именем kakoeto_imya.html ), то набор URL noviysite.loc в браузере ничем хорошим не закончится (Apache не найдет файлов, которые захочет запустить по умолчанию). Для запуска файла из папки сайта с именем kakoeto_imya.html необходимо набрать URL noviysite.loc/kakoeto_imya.html .

Возникает законный вопрос: Каким образом администрировать базы данных MySQL, если phpMyAdmin нет?
Ответом на этот вопрос является программа HeidiSQL и .

На сладкое

После прочтения данной статьи, я надеюсь, у вас возникла ясность в вопросе «как работает сайт с сервера хостинг-провайдера», а так же «как самому установить и настроить Apache, PHP и MySQL». Теперь не грех выпить чашечку кофейка и посмотреть забавный видеоролик.

Выражаю благодарность отличному программисту Павлу Красько

за помощь в написании данной статьи.

Я посвятил проблеме установке локальной среды разработки на компьютер под управлением Windows. Если, после прочтения статьи, локальную среду запустить не удалось - очень рекомендую посмотреть видеоурок.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то