Тарифы Услуги Сим-карты

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

Скачать дистрибутив 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. Считаю его идеальным для сайтов начального и среднего уровня. Конечно, можно пойти легким путем - установить готовый комбайн Denwer, как это делает большинство новичков, но в нашем случае помимо результата важны также и теоретические знания. А после сегодняшнего урока ваш скилл повысится однозначно:)

Идем на страницу загрузки проекта - http://httpd.apache.org/download.cgi и качаем последнюю стабильную версию под Windows в виде MSI инсталлятора (в моем случае это был apache_2.2.14-win32-x86-no_ssl.msi). Начнем установку. Первый диалог, который может ввести нас в заблуждение - это диалог ввода информации о сервере:

Конфигурировать наш сервер мы будем после установки, а сейчас давайте не будем особо париться и впишем в поля "Network Domain" и "Server Name" localhost, а в поле "Administrator"s Email Address" ваш адрес электронной почты (о том, что такое localhost, речь пойдет позже). Нижние переключатели не трогаем. Жмем "Next", соглашаемся с типичной установкой, еще раз "Next". Инсталлятор предложит выбрать директорию, в которую будет установлен веб-сервер:

На мой взгляд, путь слишком длинный, давайте сократим его до C:\Program Files\Apache . Продолжаем установку, дожидаемся ее окончания. После закрытия инсталлятора в трее появится значок Apache монитора:

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

Теперь давайте вспоминать то, о чем мы беседовали в статье . Как вы помните, у каждого компьютера, подключенного к сети, есть свой IP-адрес. Но даже если ваш компьютер не имеет ни одного сетевого подключения, у него есть как минимум один внутренний IP-адрес. Этот адрес - 127.0.0.1 . На всех компьютерах он одинаковый и указывает на сам компьютер. То есть, если сетевому клиентскому приложению указать адрес сервера 127.0.0.1, то клиент будет пытаться подключиться к серверу, расположенному на вашем же компьютере. Далее мы говорили о доменных именах, которые преобразуются в IP-адреса DNS-серверами. У внутреннего адреса 127.0.0.1 есть свое внутреннее доменное имя - localhost . При этом для преобразования этого имени в адрес компьютеру не нужно обращаться к DNS-серверу, так как это соответствие заложено в самом компьютере.

Давайте запустим веб-браузер и введем в адресную строку домен localhost:

Я надеюсь, вы понимаете, что произошло? Домен localhost преобразовался в IP-адрес 127.0.0.1, веб-браузер подключился к веб-серверу по этому адресу и 80 порту и запросил главную страницу с помощью протокола HTTP. То есть наш веб-сервер работает, он отправил браузеру страничку с надписью "It works" ("работает").

Приступим к настройке нашего веб-сервера, которая сводится к редактированию конфигурационных файлов Apache. Для начала необходимо обзавестись удобным, практичным и в то же время простым текстовым редактором. Если у вас такой уже есть - мои поздравления, если же вы несчастный пользователь Блокнота, могу предложить редактор . Перейдите в папку C:\Program Files\Apache\conf и переименуйте файл httpd.conf в httpd.conf.bak , чтобы в случае чего иметь под рукой начальную конфигурацию. Создайте новый файл httpd.conf со следующим содержимым:

ServerRoot "C:/Program Files/Apache" Listen 80 LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule cgi_module modules/mod_cgi.so LoadModule dir_module modules/mod_dir.so LoadModule env_module modules/mod_env.so LoadModule include_module modules/mod_include.so LoadModule isapi_module modules/mod_isapi.so LoadModule log_config_module modules/mod_log_config.so LoadModule mime_module modules/mod_mime.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule setenvif_module modules/mod_setenvif.so ServerName localhost AccessFileName .htaccess ServerTokens prod LogLevel error ErrorLog "logs/error.log" DefaultType text/plain AddDefaultCharset UTF-8 DirectoryIndex index.html Order allow,deny Deny from all Satisfy All TypesConfig conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz LogFormat "\nclient=%h\ntime=%{%d.%m.%Y %H:%M:%S}t\npage=%U%q\nreferer=%{Referer}i\nreqmethod=%m\nhost=%{Host}i\nagent=%{User-agent}i\n\n" mylog

Разбираемся. ServerRoot - путь, куда установлен наш веб-сервер. Обратите внимание на слеши. Listern - указывается номер порта, который будет "слушать" веб-сервер, а также, если необходимо, IP-адрес (если у вашего компьютера несколько подключений и нужно принимать соединения только по одному из них). Мы указали порт 80, который является стандартным для веб-серверов. LoadModule загружает модуль веб-сервера, модули позволяют получить дополнительные возможности. В нашем конфигурационном файле прописан перечень стандартных модулей. AddDefaultCharset - кодировка по умолчанию, выставили юникод (UTF-8). Остальное пока нас мало волнует.

А теперь самое главное. Не забыли, для чего устанавливаем веб-сервер? Правильно, для работы над нашими будущими сайтами. Существует понятие корневой каталог - это каталог, где расположен контент сайта, то есть файлы, из которых он состоит. По умолчанию в нашем Apache корневым каталогом является каталог . Перейдя туда вы обнаружите там единственный файл под именем index.html . Это тот самый файл, который содержит главную страницу с надписью "It works" по адресу http://localhost . Дело в том, что если в запросе (который, кстати, называется url) отсутствует имя файла, то веб-сервер ищет файл с одним из стандартных имен. Эти имена (точнее, одно имя - index.html ) прописаны у нас в конфигурационном файле:

DirectoryIndex index.html

Таким образом, при запросе http://localhost веб-сервер будет искать файл C:\Program Files\Apache\htdocs\index.html , при запросе http://localhost/docs - C:\Program Files\Apache\htdocs\docs\index.html (в том случае, если docs - папка), при запросе http://localhost/news.html - C:\Program Files\Apache\htdocs\news.html и так далее.

При веб-строительстве удобно иметь не один, а, скажем, три локальных (находящихся на локальной машине) домена, на которых можно независимо тестировать ваши сайты. Apache позволяет обслуживать несколько сайтов, то есть вам не придется для каждого домена устанавливать свою копию веб-сервера (к тому же, мы помним, что на компьютере может работать только одно серверное приложение на определенном порту). Несколько доменных имен могут ссылаться на один и тот-же IP-адрес. Apache, в свою очередь, может в зависимости от доменного имени, переданного в HTTP-запросе (вспоминаем параметр Host, статья "Принципы функционирования веб-сервера"), искать файлы в определенном корневом каталоге. Такая технология называется "виртуальный хост" .

Итак, localhost соответствует адресу 127.0.0.1, давайте создадим еще три внутренних домена test-domain1, test-domain2 и test-domain3, которые будут соответствовать этому же адресу. Откройте в текстовом редакторе файл C:\WINDOWS\system32\drivers\etc\hosts . В этом файле можно задать соответствия доменных имен и IP-адресов. Здесь же мы обнаружим то самое соответствие localhost адресу 127.0.0.1. Добавьте в конец файла строки:

127.0.0.1 test-domain1 127.0.0.1 test-domain2 127.0.0.1 test-domain3

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

Следующим шагом необходимо каждому доменному имени создать свой корневой каталог и сказать об этом нашему веб-серверу. Удаляем в папке C:\Program Files\Apache\htdocs файл index.html и создаем там три папки: test-domain1 , test-domain2 и test-domain3 , в каждой из этих папок папку log - для логов и папку www - собственно, корневой каталог для домена. В конце файла C:\Program Files\Apache\conf\httpd.conf дописываем следующее:

NameVirtualHost *:80 ServerName test-domain1 DocumentRoot "C:/Program Files/Apache/htdocs/test-domain1/www" ErrorLog "C:/Program Files/Apache/htdocs/test-domain1/log/error.log" CustomLog "C:/Program Files/Apache/htdocs/test-domain1/log/access.log" mylog ServerName test-domain2 DocumentRoot "C:/Program Files/Apache/htdocs/test-domain2/www" ErrorLog "C:/Program Files/Apache/htdocs/test-domain2/log/error.log" CustomLog "C:/Program Files/Apache/htdocs/test-domain2/log/access.log" mylog AllowOverride All Options -Indexes ServerName test-domain3 DocumentRoot "C:/Program Files/Apache/htdocs/test-domain3/www" ErrorLog "C:/Program Files/Apache/htdocs/test-domain3/log/error.log" CustomLog "C:/Program Files/Apache/htdocs/test-domain3/log/access.log" mylog AllowOverride All Options -Indexes

Три блока VirtualHost описывают наши три виртуальных хоста. Каждому задается свой корневой каталог - DocumentRoot , путь к логу ошибок - ErrorLog и логу доступа - CustomLog .

В корневом каталоге каждого домена создайте по файлу index.html с содержимым "Hello from test-domain1", "Hello from test-domain2" и ""Hello from test-domain3". Чтобы изменения в конфигурации вступили в силу, необходимо перезапустить Apache (левой кнопкой мыши по значку Apache монитора -> Restart). Если ошибок не было допущено, должно все работать:

Поздравляю, теперь у вас есть настроенный веб-сервер с тремя локальными хостами. Раздолье для веб-мастера:) Самое время приступить к изучению основ веб-строительства.

Эта статья – пошаговая инструкция по созданию локального web-сервера. В ней описана установка web-сервера Apache 2.4 на платформе ОС Windows. Тестирование установки выполнялось на Windows XP SP3.

Состав web-сервера:

  • Apache 2.4 (версия 2.4.10);
  • PHP 5.4 (версия 5.4.34);
  • MySQL 5.5 (версия 5.5.23).

Эта рабочая среда подойдет:

  • опытным вебмастерам для тестирования своих проектов;
  • начинающим вебмастерам для создания своих первых сайтов.

Дистрибутивы Apache 2.4 и PHP 5.4 скомпилированы в VC9 (Visual Studio 2008).

Версия Apache 2.4 VC9 работает, практически, со всеми актуальными версиями Windows (7/8/Vista/XP SP3).

Для работы приложений VC9, прежде всего, необходимо обновить библиотеки Visual C++.

Установка пакета обновлений библиотек Visual C++

Скачиваем дистрибутив обновлений vcredist_x86.exe с сайта Microsoft, запускаем файл и выполняем обновление.

Установка и настройка сервера Apache 2.4

В дистрибутиве Apache нет файла инсталляции. Поэтому установка будет выполняться вручную.

Создаем папку и распаковываем архив httpd-2.4.10-win32-VC9.zip .

В файле конфигурации httpd. conf по умолчанию установлены маршруты C:\ Apache24 . Поэтому, правок в файле конфигурации будет гораздо меньше, если распаковать архив в эту папку.

Мы распакуем дистрибутив в папку C:\ TestServer .

Вносим правки в файл конфигурации C:\ TestServer \ Apache24\ conf\ httpd. conf . При написании путей вместо символа «\» (обратная косая черта) следует использовать символ «/» (прямая косая черта). Так прописываются пути в операционных системах Linux и Unix. А ведь первоначально Apache разрабатывался именно для этих операционных систем.

Выполняем групповую замену текста C:/ Apache24 на C:/ TestServer / Apache24 .

Устанавливаем значение параметра ServerName .
ServerName localhost:80

Устанавливаем значение параметра ServerAdmin (e-mail администратора).
ServerAdmin [email protected]

Устанавливаем значение параметра DocumentRoot (расположение документов сайта).
DocumentRoot C:/ TestServer / Apache24/ htdocs

Возможно, вы захотите хранить документы сайта отдельно от сервера. Например, в папке C:\ MySites . Тогда этот параметр можно изменить.
DocumentRoot C:/ MySites

Исполняемые файлы Apache находятся в папке C:\TestServer \Apache24\bin . Добавляем это значение в переменную среды PATH Windows .
PATH = C:\TestServer \Apache24\bin;

Устанавливаем Apache как службу.
httpd.exe -k install

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

Запускаем сервер Apache.
httpd.exe -k start

Проверяем работоспособность сервера. В командной строке браузера набираем адрес: http://localhost . Если установка Apache прошла успешно – на экране отобразится текст It works ! . В противном случае мы увидим пустой экран.

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

Делается это с помощью команды
netstat –anb

Чаще всего этот порт используют Skype или Firefox. В этом случае следует либо освободить порт, либо перевести Apache на порт 8080 .

Для этого в файле httpd . conf изменяем значений параметров ServerName и Listen . ServerName localhost:8080
Listen 8080

После этого перезапускаем службу командой
httpd.exe -k re start

и опять пытаемся зайти по адресу http://localhost

Для удобства работы с сервером Apache можно установить в меню ярлык, указывающий на C:\TestServer \Apache24\bin\ ApacheMonitor.exe

Установка PHP 5.4

Заходим на сайт разработчика http://windows.php.net/download/ . Находим дистрибутив PHP 5.4 в секции VC9 x86 Thread Safe и загружаем архив php-5.4.34-Win32-VC9-x86.zip .

Создаем папку на локальном компьютере, пусть это будет C:\TestServer \PHP54 , и распаковываем архив.

Возвращаемся на сайт с дистрибутивом Apache. В разделе Additional + VC9 находим архив php5apache2_4.dll-php-5.4-win32.zip с PHP-модулями Apache и скачиваем его.

В архиве находим папку с самой последней версией модуля php5apache2_4.dll и помещаем его в папку C:\TestServer \PHP54 .

В файл конфигурации httpd . conf добавляем строки:

LoadModule php 5_ module « C :/ TestServer / PHP 54/ php 5 apache 2_4. dll »
AddHandler application / x — httpd — php . php
# configure the path to php . ini
PHPIniDir « C :/ TestServer / PHP 54/ php «

В папке C:\TestServer \Apache54\htdocs создаем файл test.php .

echo «Hello Apache!»;
?>

Перезапускаем Apache.

В адресной строке браузера набираем http://localhost/test.php . Если на экране появится текст Hello Apache! , то установка PHP завершилась успешно.

Настройка php.ini

Для работы с БД MySQL нам необходимо настроить php. ini – файл конфигурации PHP.

В папке C:\ TestServer \ PHP54 находятся два шаблона: development и php.ini-production .

Переименовываем шаблон php.ini-production в .

Библиотеки для работы с БД MySQL находятся в папке C :\ TestServer \ PHP 54\ ext . Этот путь должен быть прописан в директиве extension_dir файла конфигурации php.ini.

Находим этот параметр, удаляем символ комментария в начале строки (это точка с запятой) и прописываем путь.
extension_dir = « C :/ TestServer / PHP 54/ ext «

Для работы с БД MySQL в PHP существуют две библиотеки: php _ mysqli . dll – более новая и именно ее рекомендуется использовать в работе; php _ mysql . dll – старая, но ее используют на большинстве сайтов.

В файле php.ini лучше прописать обе библиотеки.
extension = php _ mysql . dll
extension = php _ mysqli . dll

После завершения правок обязательно перезапускаем сервер Apache.

Установка и настройка MySQL

Заходим на страницу http://www.mysql.ru/download/ . Выбираем версию для Win32 или Win64 . Мы будем загружать установочный пакет mysql-5.5.23-win32.msi .

Запускаем файл mysql-5.5.23-win32.msi .

Соглашаемся на лицензионные условия, выбираем тип установку Typical .

Переходим к настройке MySQL сервера.

Выбираем Detailed Configuration – детализированную настройку конфигурации.

Выбираем тип сервера с минимальными требованиями к памяти – Developer Machine .

Теперь нужно решить, с какими базами данных (InnoDB, MyISAM ) будет работать наш сервер.

Multifunctional Database – поддерживаются InnoDB и MyISAM .
Transactional Database Only - поддерживается InnoDB .
Non-Transactional database Only - поддерживается myISAM .

При выборе поддержки InnoDB , следующий шаг – выбор места хранения таблиц InnoDB .

Максимальное число одновременных подключений лучше выбрать Manual Setting (ручная установка) и согласиться со значением по умолчанию (15 ).

На этом шаге параметром Enable TCP/IP Networking включается поддержка TCP-соединений, выбирается порт, по которому будут осуществляться эти соединения. Также устанавливается параметр Enable Strict Mode – режим строгого соответствия стандарту MySQL.

Теперь необходимо выбрать кодировку по умолчанию. Лучший вариант - кодировка UTF-8 . Поэтому выбираем Best Support For Multilingualism .

Для того чтобы MySQL запускался как служба Windows - устанавливаем Install as Windows Service . Если необходим автозапуск этой службы - устанавливаем Launch the MySQL Server automatically .

Теперь устанавливаем пароль администратора и выключаем опцию Modify Security Settings .

После нажатия кнопок Next и Execute установку MySQL можно считать законченной.

Для проверки работоспособности MySQL нажимаем кнопку Пуск Windows, находим утилиту работы с MySQL (MySql Server 5.5 MySQL Server Command Line ) и запускаем ее.

После ввода пароля администратора мы попадаем в командную строку MySQL.

Вводим команду
show databases;

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

Выходим из режима командной строки:
exit;

На этом установка сервера завершена. Удачной работы!

В этой статье мы рассмотрим установку и настройку Web-сервера Apache , PHP 5 и СУБД MySQL для использования их на локальной машине под операционной системой Windows (2000 и XP). Использование локальных серверов может понадобится по многим причинам – вам необходимо изучить PHP или MySQL, а тестирование своих Web-приложений на хостинге либо дорого обходится, либо такой возможности вообще нет. В этом случае вам понадобится связка Apache+PHP+MySQL на локальной машине.

Для начала необходимо раздобыть дистрибутивы серверов Apache и MySQL, а так же архив PHP. Мы будем устанавливать и настраивать Apache 2, MySQL 4 и PHP 5.

Так же можете скачать с нашего сайта файлы php.ini для настройки PHP и httpd.conf для Apache. Однако, делайте это только в крайнем случае - если у Вас ничего не получилось с "родными" файлами, которые появилиcь при установке приложений. Но в любом случае, их необходимо будет настроить под конкретную машину. Скачать php.ini и httpd.conf

Скачать Apache можно с зеркал приведённых на официальном сайте http://www.apache.org/dyn/closer.cgi . При поиске следует помнить, что Apache так же может называться httpd, по имени его демона в UNIX. На зеркалах обычно много различных файлов, например:
httpd-2.0.49-win32-src.zip - это архив с исходными кодами (src) для Windows (win32) Web-сервера Apache (httpd) версии 2.0.49.
httpd-2.0.49.tar.gz - тоже самое, но для Linux, в котором программы принято распространять в исходных кодах.
apache_2.0.50-win32-x86-no_ssl.exe - а вот это, откомпилированный под архитектуру (x86) для Windows (win32) без поддержки SSL(no_ssl) сервер Apache (apache) версии 2.0.50 - вот он и нужен.

Замечание

Бинарные коды дистрибутивов Apache распространяются в нескольких вариантах, как с расширением *.exe, так и *.msi и имеют название вида httpd_версия_win32_*_.msi.

Чтобы вам не мучатся, вот ресурс где можно его взять: http://apache.rinet.ru/dist/httpd/binaries/win32/
Вторая и третья цифра в версии могут отличаться от приведённых здесь – следует выбирать самую последнюю версию, так как в ней устранены ошибки обнаруженные в предыдущих версиях.

PHP 5 можно загрузить из раздела нашего сайта.

Дистрибутив MySQL можно загрузить со страницы нашего сайта.

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

После того как мы запаслись всеми необходимыми дистрибутивами можно приступать к установке. Порядок установки Apache, PHP и MySQL не имеет значения. Начнём с Web-сервера Apache.

Установка Web-сервера Apache

Запустите установщик Web-сервера Apache. Результатом будет окно с лицензионным соглашением, после принятия которого, следует перейти к следующему окну с краткой информацией о нововведениях во второй версии Apache. Следующее окно, показанное на рисунке, позволяет ввести информацию о сервере: доменное имя сервера , имя сервера и адрес электронной почты администратора . Если установка происходит на локальную машину, то в поля для доменного имени и имени сервера следует ввести localhost (см. рисунок.). В нижней части окна предлагается выбрать номер порта по которому сервер будет принимать запросы (80 или 8080).


localhost - это имя для использования сервера на локальной машине, которое связано с IP-адресом 127.0.0.1, который зарезервирован для локального использования.

После этого будет предложен способ установки: стандартный (Typical ) или выборочный (Custom ), позволяющий выбрать компоненты сервера вручную. Следующее окно позволяет выбрать каталог установки сервера, по умолчанию это C:Program FilesApache Group , но мы рекомендуем выбрать другой каталог, например, С:www. После этого мастер установки сообщит о готовности к процессу установки и после нажатия кнопки Install , будет произведено копирование файлов сервера. Если установка прошла успешно, Windows автоматически запустит Apache.

После успешной инсталляции при наборе в окне браузера http://localhost/ или http://127.0.0.1/ - должна загрузится страница сервера.

Теперь необходимо научиться управлять Apache, а именно научится запускать, останавливать и перезапускать сервер. Существует много способов осуществить эти операции: при помощи утилиты ApacheMonitor, используя консоль управления сервисов Windows, используя пункты меню Пуск, из командной строки… Мы рассмотрим консоль управления сервисов Windows, позволяющего настроить Apache для автоматического старта при запуске системы. Для запуска консоли управления выполните команду
Пуск->Настройка->Панель управления->Администрирование->Службы .
В появившемся окне консоли, на приведённом ниже рисунке, следует выбрать сервис Apache2. Контекстное меню, открывающееся по нажатию на правой кнопке, позволяет осуществлять запуск, остановку и перезапуск сервиса.


Службы Windows позволяют осуществлять запуск фоновых приложений при старте системы. Для этого необходимо перейти в окно Свойства, выбрав в контекстном меню сервиса пункт Свойства и в появившемся окне в выпадающем списке "Тип запуска " выбрать пункт "Авто ".

Конфигурирование Apache

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

Пути к файлам

В конфигурационных файлах Apache и PHP Вам часто придется указывать пути к различным директориям и папкам. В операционных системах UNIX и Windows при-меняются различные разделители каталогов. В UNIX используется прямая косая черта "/", например /usr/bin/perl, в в Windows обратная, например, c:Apachein. Вообще, в некоторых директивах Apache и PHP работают оба вида разделителей каталогов: прямой(/) и обратный(), но так как и Apache и PHP изначально разрабаты-вались под UNIX, то применяя их "родной" формат, Вы сможете избежать ряда проблем. Поэтому пути в настроечных файлах (httpd.conf и php.ini) рекомендуется писать через слеш в формате UNIX - "/". Например:

ScriptAlias "/php_dir/" "c:/php/"

Директивы файла httpd.conf

Port

Port 80

Устанавливает порт TCP, который используется Apache для установки соединения. По умолчанию используется 80 порт.

Примечание

Единственная причина использования нестандартного порта - это отсутствие прав на использование стандартного порта. При использовании нестандартного порта, например, 8080 номер порта следует указывать в адресе, например: http://localhost:8080/.

ServerAdmin

ServerAdmin [email protected]

Содержит e-mail-адрес администратора web-сервера, который будет отображаться при ошибках работы сервера.

ServerName

ServerName myserver

Содержит имя компьютера для сервера.

ServerRoot

ServerRoot "C:/Apache2"

Указывает на каталог, содержащий файлы WEB-сервера Apache.

Примечание

Не путайте директиву ServerRoot с директивой DocumentRoot, которая указывает каталог для файлов WEB-сайта.

DocumentRoot

DocumentRoot "C:/Apache2/htdocs"

Определяет каталог, в котором расположены файлы WEB-сайта.

Контейнер

Сфера действия директив внутри этого контейнера распространяется на все файлы и подкаталоги внутри DocumentRoot.


Options FollowSymLinks Includes Indexes
AllowOverride All

  • Директива AllowOverride установленная в значение All разрешает переопределять значения главного конфигурационного файла httpd.conf в файлах.htaccess.
  • Директива Options FollowSymLinks разрешает Apache следовать символическим ссылкам.
  • Директива Options Includes разрешает выполнение директив SSI (Server Side Includes) в коде страниц web-сайта.
  • Директива Options Indexes указывает, что нужно возвращать содержимое каталога, если отсутствует индексный файл.

DirectoryIndex

DirectoryIndex index.html index.phtml index.php

Содержит список индексных файлов, которые следует отображать при обращении к директории без указания имени файла (например, http://localhost/test/).

AddDefaultCharset

AddDefaultCharset windows-1251

Устанавливает кодировку по умолчанию, если кодировка не установлена в заголовке HTML-документа. Также Вам может потребоваться указывать значение кодировки KOI8-R.

Создание виртуальных хостов

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

Сначала требуется указать какой IP-адрес используется для виртуальных хостов.



# Директивы виртуального хоста

Файл httpd.conf. Контейнер


ServerAdmin webmaster@may_domain.ru
DocumentRoot c:/www/mysite
ServerName www.mysite.ru
ServerAlias www.site.ru www.host2.ru
ErrorLog logs/mysite-error.log
CustomLog logs/mysite-access.log common

Рассмотрим директивы виртуального узла:

  • DocumentRoot указывает каталог, где расположены файлы (странички) данного виртуального узла (WEB-сайта)
  • ServerName указывает имя виртуального узла, по которому к нему можно обратиться. В данном случае, по адресу http://www.mysite.ru/.
  • ServerAlias содержит псевдонимы имен виртуального узла. В данном случае к виртуальному узлу можно также обратиться, используя имена: http://www.site.ru/ и http://www.host2.ru/.
  • ErrorLog и CustomLog указывает имена логов сервера для этого виртуального хоста.

Контейнеры обычно располагают один за другим в конце файла httpd.conf.

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

NameVirtualHost 127.0.0.1:80

# Директивы виртуального хоста 1


# Директивы виртуального хоста 2


# Директивы виртуального хоста 3

Примечание

Для применения изменений, вносимых в файл httpd.conf, Apache следует перезагрузить.

Для того, чтобы обращаться к виртуальным узлам по именам их следует прописать в базы данных DNS-сервера. Если Вы используете Apache для тестирования файлов на локальной машине, то имена ваших виртуальных узлов следует прописать в файле hosts. Для Windows 2000 и XP он расположен в каталоге C:WindowSystem32Driversets. Файл hosts содержит записи вида:

Формат записей файла hosts

127.0.0.1 www.mysite.ru
127.0.0.1 www.site.ru
127.0.0.1 www.host2.ru

Установка и настройка PHP

Для установки PHP следует создать каталог c:/php и разместить в нём файлы из zip-архива дистрибутива. После этого следует переименовать конфигурационный файл php.ini-dist в php.ini и скопировать его в директорию Windows.

Установка PHP в качестве модуля

Установка PHP в качестве модуля немного повышает быстродействие, так как модуль PHP загружается один раз при запуске Web-сервера

Замечание

При установке PHP в качестве модуля настройки из php.ini читаются один раз при запуске Web-сервера. Поэтому при внесении изменений в php.ini необходимо перегрузить Apache для того, чтобы внесенные изменения вступили в силу.

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

Файл httpd.conf. Подключение PHP как модуль Apache


LoadModule php5_module c:/php/php5apache2.dll

Примечание

Установка PHP, как CGI-приложения

При установке PHP, как CGI-приложения интерпретатор PHP будет загружаться каждый раз при вызове PHP-сценария. В связи с этим, возможно, некоторое ухудшение быстродействия. Если PHP установлен, как CGI, то при внесении изменений в файл php.ini Apache перезагружать не следует, так как установки читаются каждый раз при выполнении PHP-сценария. Установка PHP как CGI немного ускоряет внесение изменений в конфигурацию PHP, так она не требует перезагрузки WEB-сервера.

Примечание

При установке PHP, как CGI перестанут работать некоторые заголовки, например, Вы не сможете организовать авторизацию пользователей средствами PHP. Авторизации можно будет реализовать только средствами самого Apache с помощью файлов.htaccess.

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

Файл httpd.conf. Подключение PHP как CGI

AddType application/x-httpd-php phtml php

Options ExecCGI

ScriptAlias "/php_dir/" "c:/php/"
Action application/x-httpd-php "/php_dir/php-cgi.exe"

Примечание

Вместо директории c:/php подставьте Вашу директорию с установленным PHP.

Конфигурирование PHP (файл php.ini)

Так как на локальной машине вы, скорее всего, будете заняты тестированием Ваших Web-приложений, то необходимо должным образом настроить конфигурационный файл php.ini. Найдите директиву error_reporting и установите для неё следующее значение:

Это значение настроит PHP таким образом, что при работе PHP-скриптов будут отображаться все ошибки, а "замечания" будут игнорироваться. Так же обходимо проследить, чтобы директива display_errors, была включена:

Display_errors = On

Если данная директива отключена (Off), то сообщения об ошибках не будут выводится в окно браузера и в случае возникновения в коде ошибки вы будете гадать перед девственно белым окном - что бы это означало.
Так же необходимо проследить, чтобы директива variables_order имела следующее значение:

Variables_order = "EGPCS"

Буквы здесь означают следующее:
E - переменными среды
G - переменными передаваемыми по методу GET (G)
P - переменными передаваемыми по методу POST (P)
C - Cookies
S - сессии
Отсутствие какой-либо из букв не позволит вам работать с соответствующими переменными.

Следующая директива, которая может потребовать настройки – это register_globals . Если данная директива включена

Register_globals = On

то переменные передаваемые метором GET, POST, через cookies и сессии можно использовать в PHP-скрипте, обращаясь к ним просто как обычным переменным $someone.
Если данная директива отключена

Register_globals = Off

то к таким переменным можно будет обращаться только при помощи суперглобальных массивов ($_POST, $_GET и т.п.).
Директива register_long_arrays позволяет использовать суперглобальные массивы в старом формате ("длинном" - $HTTP_GET_VARS, $HTTP_POST_VARS и т.д.)

Register_long_arrays = On

Теперь необходимо настроить индексный файл. Если в окне браузера набрать строку http://localhost/, а не http://localhost/index.html. Сервер всё равно предоставит браузеру index.html, так как этот файл является индексным и ищется в директории первую очередь, если не указан конкретный файл. Теперь необходимо настроить http.conf, таким образом, чтобы Web-сервер Apache так же реагировал на файлы index.php. Для этого найдте в http.conf директиву DirectoryIndex и исправьте её следующим образом:

DirectoryIndex index.html index.html.var index.php

После этого необходимо перегрузить сервер Apache, а в корневой директории виртуального хоста ("C:/www/scripts") создать пробный файл PHP (index.php):

phpinfo ();
?>

В случае успешной настройки, обращение по адресу http://localhost/index.php отобразит фиолетовую таблицу с текущими настройками PHP, которая выдаётся функцией phpinfo().
Таким образом, у нас настроена связка Apache и PHP и можно переходить к настройке MySQL. Распакуйте дистрибутив MySQL во временную директорию и запустите установщик. Контролировать работу сервера MySQL можно точно так же как и Apache, используя консоль управления сервисов Windows.

Подключение MySQL

Подробная методика подключения к PHP расширения MySQL описана в статье по ссылке: .

Если сервер MySQL уже установлен на Вашей машине, то следующим шагом будет настройка PHP для работы с базами данных MySQL.

Откройте на редактирование файл php.ini из каталога Windows. Для подключения библиотеки расширения MySQL Вам нужно убрать символ комментария;(точка с запятой) из строки:

Extension=php_mysql.dll

Также проверьте значение директивы extension_dir

Extension_dir ="c:/php-5.0/ext"

Она должна указывать на каталог, где хранятся расширения PHP. Разделители каталогов рекомендуется писать в формате UNIX (/) - обратный слеш. Однако, если ничего не получается, просто откатите назад значение директивы extension_dir, а библиотеку php_mysql.dll скопируйте в корень C:/php-5.0/ - в большинстве случаев это должно помочь.

Если PHP Вас подключен как модуль, то Вам также необходимо скопировать библиотеку libmysql.dll из каталога с установленным PHP в системный каталог C:/Windows/System32. Чтобы внесенные изменения вступили в силу - перезагрузите Apache.

Для проверки работы MySQL перезапустите сервер Apache и создайте проверочный скрипт со следующим кодом:

$dblocation = "127.0.0.1" ;
$dbname = "test" ;
$dbuser = "root" ;
$dbpasswd = "" ;

$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 );
?>

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

В новых версиях MySQL (начиная с 4.1.0) изменился порядок работы с национальными кодировками, поэтому старый код может вызывать появление в таблице базы данных знаков вопроса "????????" вместо русского текста. Для того, чтобы этого не возникало в начало PHP-скрипта, после установки соединения с базой данных, следует поместить следующие строки:

mysql_query ("set character_set_client="cp1251"" );
mysql_query ("set character_set_results="cp1251"" );
mysql_query ("set collation_connection="cp1251_general_ci"" );
?>

Установка расширений PHP

На последок вам возможно понадобится настроить некоторые расширения PHP, они настраиваются точно так же как и MySQL.

Так для того, чтобы подключить графическую библиотеку GDLib в php.ini необходимо раскомментировать строку:

Extension=php_gd2.dll

Проверьте после этого наличие данной библиотеки в папке c:phpext. После внесения изменений в php.ini перезапустите сервер. Что бы быстро проверить: подключилась ли библиотека - выполните функцию phpinfo(). Если все в порядке, то в таблице, которая отображается функций phpinfo(), должен появится раздел "gd

При использовании устаревшего имени php.exe, использовавшегося в более ранних версиях вместо php-cgi.exe также возможно появлении ошибки:

403 Forbidden You don"t have permission to access /__php_dir__/php.exe/test.php on this server

HTML-файлы выполняются, а PHP-скрипты нет

При ненастроенном подключении PHP при обращении к файлам с расширением php, например: http:/localohost/index.php открывается окно с запрос на загрузку такого файла. Это говорит о том, что не настроена обработка файлов с расширением php. Проверьте в файле httpd.conf существование следующей строки:

AddType application/x-httpd-php phtml php

Notice: Undefined variable...

На новом, только что установленном, PHP можно часто видеть сообщения вида:

Notice: Undefined variable: msg in C:/Main/addrec.php on line 7

Error_reporting = E_ALL & ~E_NOTICE

Не подключается MySQL

Иногда возникают проблемы с установкой MySQL. Следует проконтролировать запускается ли MySQL в качестве сервиса каждый раз при старте системы. Для этого откройте консоль сервисов:

Пуск | Настройка | Панель управления | Администрирование | Службы

найдите там MySQL - запустите. Чтобы сервер стартовал при каждой загрузке системы нажмите правую кнопку мыши на сервисе и выберите "Свойства" - в открывшемся выпадающем списке "Тип запуска" выберите пункт "Авто".

Если при запуске Apache и при обращении ко скриптам выдается сообщение о невозможности загрузки библиотеки php_mysql.dll.

PHP startup: Unable to load dynamic library c:/php/ext/php_mysql.dll
- не найден указанный модуль

То еще раз сверьтесь с инструкциями из раздела, где описывается подключение к PHP библиотеки для работы с MySQL. Используете ли Вы "правильную" версию файла php_mysql.dll (именно для той версии PHP, которая установлена в системе)?
Версии файла php_mysql.dll различаются для разных версий PHP, хотя и имеют одно и тоже название.

  • Использование разделителей каталогов формате Windows (обратный слеш): c:apache/bin. Для надежной работы следует использовать разделители в формате UNIX (прямой слеш), например: c:/apache/bin.
  • Существование нескольких настроечных файлов php.ini на машине, либо отсутствие такого файла. Нужный файл php.ini должен лежать в директории Windows. Проведите поиск по дискам компьютера, найдите все лишние версии файлов и удалите их.
  • Любые возникающие по установке связки Apache+PHP+MySQL вопросы вы можете задать на нашем форуме посвященном установке и настройке Apache, PHP и библиотек расширений .

    Подготовка папок

    Я очень не люблю, чтобы у меня все валялось, где попало, так что для начала создадим папки, где у нас будут располагаться программы и сайты.
    Создадим на диске «C:\» (или где вам удобней) папку «Server»:
    C:\Server\
    В ней создадим 2 папки:
    C:\Server\web – это папка в которой у нас будут лежать программы
    C:\Server\domains – а в этой папке будут лежать наши сайты
    Итак, в папке \web\ мы создадим 3 папки для apache, php, mysql:
    C:\Server\web\apache\
    C:\Server\web\php\
    C:\Server\web\mysql\
    Далее перейдем в папку domains и создадим папку \localhost\
    C:\Server\domains\localhost\
    Внутри папки у нас будет 2 подпапки: public_html – для файлов сайта; logs – для текстовых файлов, в которых записывается «кто» получал доступ к сайту и какие ошибки в работе сайта появлялись.
    C:\Server\domains\localhost\public_html\
    C:\Server\domains\localhost\logs\
    На этом структура папок заканчивается, переходим к настройке Apache.

    Настройка Apache

    Для установки Apache нам понадобиться сам Apache (Кэп). Так как у нас Windows 8.1 x64, то устанавливать будем Apache x64.
    Для скачивания перейдем по ссылке:
    www.apachelounge.com/download/win64
    и скачиваем «httpd-2.4.6-win64.zip». Так же нам понадобиться для нормальной работы «Распространяемый пакет Microsoft Visual C++ 2010 (x64)». Для этого скачаем его по этой ссылке:
    www.microsoft.com/ru-ru/download/details.aspx?id=14632
    и устанавливаем.
    После того как скачался наш архив с Apache, откроем его. Открыв архив, мы увидим папку «Apache24», зайдем в нее. Появиться множество папок и файлов программы, все распаковываем в заготовленную ранее папку:
    C:\Server\web\apache\
    Должно получиться так:
    C:\Server\web\apache\bin\
    C:\Server\web\apache\cgi-bin\
    C:\Server\web\apache\conf\
    C:\Server\web\apache\error\
    C:\Server\web\apache\htdocs\
    C:\Server\web\apache\icons\
    C:\Server\web\apache\include\
    C:\Server\web\apache\lib\
    C:\Server\web\apache\logs\
    C:\Server\web\apache\manual\
    C:\Server\web\apache\modules\
    Папки, такие как \cgi-bin\, \htdocs\, \icons\ и \manual\ нам не нужны – можете их удалить.
    Перейдем в папку:
    C:\Server\web\apache\conf\
    И откроем файл конфигурации Apache – «httpd.conf» любым текстовым редактором. В этом файле каждая строка содержит директивы для настройки Apache, а строки, начинающиеся со знака # (решетка) – комментарий и пояснение. Приступим к настройке:

    Файл конфигурации Apache

    # директива Apache
    ServerRoot “C:/Server/web/apache”
    # Слушаем на локальном IP порт (80 по стандарту)
    Listen 127.0.0.1:80
    # далее подключим библиотеки расширений для Apache
    LoadModule rewrite_module modules/mod_rewrite.so
    LoadModule php5_module "C:/Server/web/php/php5apache2_4.dll"
    # указываем Apache, что файлы с расширением php, нужно воспринимать как php-скрипты
    AddHandler application/x-httpd-php .php
    # укажем расположение файла настроек php
    PHPIniDir “C:/Server/web/php”
    # изменим имя сервера
    ServerName 127.0.0.1:80
    # изменим доступ к директории

    Options Includes Indexes FollowSymLinks
    AllowOverride All
    Allow from all


    # директория с нашими сайтами
    DocumentRoot “C:/Server/domains”
    # индексные файлы, по приоритету.

    DirectoryIndex index.php index.html index.htm index.shtml

    # папка для log-файлов
    ErrorLog “C:/Server/domains/logs/error.log”
    CustomLog “C:/Server/domains/logs/access.log”
    # добавим alias для phpMyAdmin, и поправим alias для cgi

    Alias /pma “C:/Server/domains/phpMyAdmin”
    ScriptAlias /cgi-bin/ “C:/Server/web/apache/cgi-bin/”

    # правим путь для cgi

    AllowOverride None
    Options None
    Require all granted

    # типы файлов


    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    # Другие конфиги:



    BrowserMatch "MSIE 10.0;" bad_DNT


    RequestHeader unset DNT env=bad_DNT

    На этом заканчивается настройка httpd.conf.
    В конфигурационном файле Apache httpd.conf были подключены дополнительные конфиги:
    Include conf/extra/httpd-mpm.conf
    Include conf/extra/httpd-autoindex.conf
    Include conf/extra/httpd-vhosts.conf
    Include conf/extra/httpd-manual.conf
    Include conf/extra/httpd-default.conf
    Откроем файл «C:\Server\web\apache\conf\extra\httpd-mpm.conf» и быстро пробежимся по нему.
    # указываем, где у нас будет храниться pid-файл:

    PidFile “C:/Server/web/apache/logs/httpd.pid”

    Остальные параметры оставляем без изменений. Откроем файл «httpd-autoindex.conf», изменим там только строки с путем:
    Alias /icons/ "c:/Server/web/apache/icons/"

    Options Indexes MultiViews
    AllowOverride None
    Require all granted

    Файл хостов Apache

    # на примере доменная localhost

    DocumentRoot "C:/Server/domains/localhost/public_html"
    ServerName localhost
    ErrorLog "C:/Server/domains/localhost/logs/error.log"
    CustomLog "C:/Server/domains/localhost/logs/access.log" common


    # добавим для будущего phpMyAdmin (не забываем создать папку)

    DocumentRoot "C:/Server/domains/phpmyadmin/public_html"
    ServerName localhost
    ErrorLog "C:/Server/domains/phpmyadmin/logs/error.log"
    CustomLog "C:/Server/domains/phpmyadmin/logs/access.log" common

    На этом редактирование файла заканчивается. Далее в оставшихся файлах правим только пути:
    Файл «httpd-manual.conf»:
    AliasMatch ^/manual(?:/(?:da|de|en|es|fr|ja|ko|pt-br|ru|tr|zh-cn))?(/.*)?$ "C:/Server/web/apache/manual$1"

    В файле «httpd-default.conf» никаких изменений не производиться. На этом настройка конфигурации Apache завершается.

    Настройка PHP

    Раз у нас Windows 8.1 x64 и Apache x64 установлен и настроен, то и php должно быть x64.
    Идем на сайт:

    и скачиваем архив php последней версии. Нам нужен php как модуль, т.е. для этого скачиваем Thread Safe. После того как архив скачался, открываем его и переносим содержимое в папку «C:\Server\web\php\». Создадим две пустые папки «tmp» и «upload». Далее в этой папке ищем файл «php.ini-development» и переименовываем его в «php.ini». Открываем файл в текстовом редакторе и изменяем директивы (комментирования строк в файле начинается с точки с запятой).

    Настройка php.ini

    short_open_tag = On
    zlib.output_compression = On
    post_max_size = 64M
    include_path = ".;С:\Server\web\php\includes"
    extension_dir = "C:/Server/web/php/ext"
    upload_tmp_dir = "C:/Server/web/php/upload"
    upload_max_filesize = 64M
    extension=php_bz2.dll
    extension=php_curl.dll
    extension=php_gd2.dll
    extension=php_mbstring.dll
    extension=php_mysql.dll
    extension=php_mysqli.dll
    extension=php_pdo_mysql.dll
    extension=php_sockets.dll
    extension=php_sqlite3.dll
    ; в секции указываем временную зону нашего сервера (http://php.net/date.timezone)
    date.timezone = "Asia/Yekaterinburg"
    session.save_path = "С:/Server/web/php/tmp/"


    На этом настройка php заканчивается.

    Настройка MySQL

    Ставим MySQL x64 как сокет под windows. Скачиваем архив с последней версией MySQL x64:
    dev.mysql.com/downloads/mysql
    В низу страницы находим Windows (x86, 64-bit), ZIP Archive и жмем на кнопку «Download». Вам перекинет на страницу регистрации на сайте. Нажимаем внизу страницы «No thanks, just start my download», запуститься скачивание архива MySQL. После того как скачался архив откроем его и перенесем все содержимое папки в «C:\Server\web\mysql\»
    Теперь открываем файл настроек MySQL – «C:\Server\web\mysql\my-default.ini». Удаляем все его содержимое и вносим туда свои данные.
    port=3306
    host=127.0.0.1
    port=3306
    bind-address=127.0.0.1
    enable-named-pipe
    basedir="C:/Server/web/mysql/"
    datadir="C:/Server/web/mysql/data/"
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    Вот и всё. В конфигурационном файле мы указали, что скрипты могут обращаться к серверу и по локальному IP, и по сокет-соединению.
    Осталось дело за малым. Добавим в системную переменную «PATH» пути к Apache и MySQL, для этого:
    1. Перетащите курсор мыши в правый нижний угол экрана
    2. Щелкните на значке «Поиск» и введите: панель управления
    3. Выберите System (Система)-> Advanced (Дополнительные параметры системы)
    4. Выберите Environment Variables (Переменные среды), в меню System Variables (Системные переменные), найдите переменную PATH и щелкните на ней.
    5. Пропишите пути к Apache и MySQL:
    ;C:\Server\web\apache\bin;C:\Server\web\mysql\bin
    Далее установим службы Apache и MySQL. Для этого воспользуемся сочетанием клавиш «Win+X», появиться выпадающее меню в левом нижнем углу. Выберем «Командная строка (администратор)».
    В командной строке вводим, для установки Apache:
    httpd –k install
    для установки MySQL:
    mysqld.exe --install MySQL --defaults-file=”C:\Server\web\mysql\my-default.ini”
    Установим пароль для MySQL-пользователя. Для этого запустим службу MySQL командой:
    NET start MySQL
    После того как служба запустилась, установим пароль:
    mysqladmin –u root password ВашПароль
    В файл «httpd-vhosts.conf» мы прописали два сайта, для того чтобы браузер мог их увидеть, названия сайтов нужно добавить в файла «hosts». Перейдем в папку:
    C:\Windows\System32\Drivers\etc\
    откроем файл «hosts» любым текстовым редактором (запустить от имени администратора) и в конец файла добавим:
    127.0.0.1 localhost
    127.0.0.1 phpmyadmin
    Сохраняем файл.
    Для удобства запуска и остановки служб Apache и MySQL создадим файлы start-server.bat и stop-server.bat.
    Для этого перейдем в папку «C:\Server\» и создадим два этих файла.
    Содержание «start-server.bat»:
    @echo off
    NET start Apache2.4
    NET start MySQL
    Содержание «stop-server.bat»:
    @echo off
    NET stop Apache2.4
    NET stop MySQL
    Настройка Apache, PHP и MySQL на этом закончена. Для того чтобы протестировать сервер, давайте в папке «C:\Server\domains\localhost\public_html» создадим файл «index.php» с содержимым:

    Далее запустим наш сервер, для этого запустите «start-server.bat» от имени администратора. После того как сервер запустился, откройте браузер и введите в адресной строке «localhost».
    Должна отобразиться страница с информацией о PHP.