Содержание:
Для начала скачиваем дистрибутив Apache с официального сайта: http://httpd.apache.org/download.cgi
Выбираем последнюю версию (на момент написания этой статьи — 2.2.17) и переходим к списку дистрибутивов. На домашнем компе вам вряд ли понадобится SSL, поэтому скачиваем версию Win32 Binary without crypto (no mod_ssl) (MSI Installer).
Теперь запускаем установщик (пользователь должен обладать правами администратора). В начале ничего интересного — просто экран приветствия:
Второй этап — соглашаемся с условиями лицензии:
Третий этап — несколько вводных слов от разработчиков. Сразу жмем Next:
Четвертый этап. Здесь надо ввести данные во все три текстовых поля. Можно ввести несуществующий домен типа test.test или example.com. Эти данные нужны для создания базового конфигурационного файла. Под текстовыми полями одна из самых важных настроек — установить Apache как службу или как обычную программу. Выбираем «for All Users, on port 80, as a Service — Recommended» — установить как службу:
Тип установки. Выбираем Custom (выборочная):
Шестой этап. Выбор компонентов и места установки. Я оставил все значения по умолчанию:
Седьмой этап. Все готово к установке. Нажимаем Install:
Завершаем установку (Finish):
Установка завершена. В трее появится значок Apache, с помощью которого можно быстро остановить/запустить службу:
Проверяем работоспособность. Открываем браузер, и в адресной строке вводим http://localhost/. Если все правильно, должна открыться страница с надписью It works!
Чтобы сервер был доступен не только на локальном компьютере, но и из вне, необходимо открыть на вход порт TCP 80 в брандмауэре Windows.
Открытие порта в брандмауэре Windows
Открываем Пуск -> Панель управления -> Система и безопасность -> Брандмауэр Windows. В левой колонке кликаем по ссылке «Дополнительные параметры». В открывшемся окне также в левой колонке кликаем по «Правила для входящих подключений» и затем уже в правой колонке «Создать правило…»:
Откроется мастер создания правила. Тип правила выбираем «Для порта»:
Протоколы и порты. Протокол TCP. Ниже выбрать опцию «Определенные локальные порты», и справа в текстовом поле ввести номер порта — 80:
Действие. Выбираем «Разрешить подключение»:
Профиль. Оставляем по умолчанию (отмечены все три опции: доменный, частный, публичный):
В конце концов вводим имя созданного правила. Например Apache Web Server:
На этом все. Нажимаем Готово. Теперь можно попробовать подключиться с другого компьютера.
Напоминаю, что для подключений к серверу не только из локальной сети, но и из Интернет, на роутере (если он есть) необходимо настроить форвардинг 80-го порта (port forwarding или еще это часто называют virtual server).
Apache без PHP? Это нонсенс! Далее мы рассмотрим ручную (без использования инсталлятора) установку PHP на Apache в режиме модуля.
Скачиваем последнюю версию PHP (5.3.5 на момент написания) с сайта: http://windows.php.net/download/. Здесь доступно сразу несколько версий:
- VC9 x86 Non Thread Safe — для установки на IIS в режиме FastCGI.
- VC9 x86 Thread Safe — ???
- VC6 x86 Non Thread Safe — для установки на Apache в режиме CGI/FastCGI.
- VC6 x86 Thread Safe — для установки на Apache в режиме модуля — наш выбор.
Т.к. мы затеяли установку в ручном режиме, скачиваем zip-архив.
Содержимое архива распаковываем в директорию установки. Я выбрал C:\Program Files\PHP.
Переходим в эту директорию. В корне установки вы найдете два файла php.ini-development и php.ini-production. Эти файлы содержат базовые настройки. Первый файл оптимизирован для разработчиков, второй для рабочих систем. Основное отличие — в настройках для разработчиков разрешен вывод на экран ошибок, тогда как для рабочих систем вывод ошибок запрещен из соображений безопасности.
Итак, выбираем нужный вам файл (я выбрал php.ini-development), открываем его и сохраняем в ту же папку под именем php.ini. Эту операцию можно проделать в обычном блокноте, но все же лучше использовать редактор поудобнее, например notepad2.
Теперь в php.ini необходимо внести несколько изменений:
- Найти опцию extension_dir (пользуйтесь поиском CTRL+F) и изменить путь к папке ext в соответствии с путем установки PHP. У меня это выглядит так: extension_dir = «c:\program files\php\ext»
- Найти опцию upload_tmp_dir. Здесь надо указать путь к временной папке. Я выбрал c:\windows\temp. Всё вместе: upload_tmp_dir = «c:\windows\temp»
- Найти опцию session.save_path. Здесь также требуется указать путь к временной папке: session.save_path = «c:\windows\temp»
- Перейдите к разделу Dynamic Extensions. Здесь необходимо раскомментировать строки (убрать точку с запятой в начале), соответствующие модулям PHP, которые вам необходимы для работы. Базовый набор модулей может выглядеть примерно так:
;extension=php_bz2.dll ;extension=php_curl.dll ;extension=php_fileinfo.dll extension=php_gd2.dll ;extension=php_gettext.dll ;extension=php_gmp.dll ;extension=php_intl.dll ;extension=php_imap.dll ;extension=php_interbase.dll ;extension=php_ldap.dll extension=php_mbstring.dll extension=php_exif.dll ; Must be after mbstring as it depends on it extension=php_mysql.dll extension=php_mysqli.dll ;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client ;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client ;extension=php_openssl.dll ;extension=php_pdo_firebird.dll ;extension=php_pdo_mssql.dll ;extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll ;extension=php_pdo_odbc.dll ;extension=php_pdo_pgsql.dll ;extension=php_pdo_sqlite.dll ;extension=php_pgsql.dll ;extension=php_phar.dll ;extension=php_pspell.dll ;extension=php_shmop.dll ;extension=php_snmp.dll ;extension=php_soap.dll extension=php_sockets.dll ;extension=php_sqlite.dll extension=php_sqlite3.dll ;extension=php_sybase_ct.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll extension=php_xsl.dll extension=php_zip.dll
Теперь переходим к настройкам Apache.
Открываем папку установки Apache (по умолчанию C:\Program Files\Apache Software Foundation\Apache2.2\). Открываем папку conf. Открываем файл httpd.conf.
Переходим в конец файла и дописываем туда следующие строчки:
# Charset AddDefaultCharset windows-1251 # PHP LoadModule php5_module "c:\program files\php\php5apache2_2.dll" PHPIniDir "c:\program files\php" AddType application/x-httpd-php .php
Путь к папке php указываете тот, который вы выбрали в процессе установки.
В том же файле находим следующие строки:
<IfModule dir_module> DirectoryIndex index.html </IfModule>
Перед index.html дописываем через пробел index.php. В итоге получается:
<IfModule dir_module> DirectoryIndex index.php index.html </IfModule>
Чтобы изменения вступили в силу, перезапускаем службу Apache. Если служба перезапустится — это хороший знак. Если нет — ищите ошибки в конфигурационных файлах. Особенно внимательно проверьте все пути.
Чтобы убедиться в работоспособности PHP, откройте директорию установки Apache, далее откройте папку htdocs (здесь содержаться файлы веб-сайта по умолчанию). Создайте в этой папке файл index.php со следующем содержанием:
<?php phpinfo() ?>
Теперь откройте в браузере http://localhost/. Если все нормально, вы увидите похожую страницу:
Если вы видите страницу с надписью «It works!», попробуйте обновить страницу с помощью CTRL+F5.
Инструкция по установке MySQL на Windows вынесена в отдельную статью.
Ссылки по теме:
- Настройка веб-сервера IIS + PHP + MySQL на Windows 7
- Настройка DDNS — как сделать постоянный доступ к веб-серверу, если провайдер Интернет предоставляет только динамические внешние ip-адреса.
150 ответов к “Настройка веб-сервера Apache + PHP + MySQL на Windows 7”
Хотелось бы увидеть ещё и статейку о настройке SendMail на Win7.
Сделайте. :)
Незнаю, а вот у меня тоже не заработало………….. с первого раза, потом в Апач монитор там я нажал Reset и заработало!
Там где у вас в панеле задач ярлычек такой маленький , ввиде перышка со стролочкой, туда правой кнопкой нажмте а потом «Open Apache Monitor» в открывшемся окне ищите кнопку «Reset» и все. Все будет работать,
phpinfo(); как и в статье — работает, все нормально. Php работает :)
Сначало свой сайт хотел запустить http://tolxi.ru посмотреть как бы работало, но как глянул нагрузку процесора …….. офанарел, этот Апачь просто на «холостом ходу» достаточно много процесорных ресурсов компьютера жрет падла! Вот так, так что…. ну а так вообще для своих «домашних эксперементов» использовать можно, хотя Денвер — лучше, жалко Денвер это не сервер :( :(
После изменений http.conf или php.ini всегда нужно делать рестарт Apache.
ну многие незнали,
надо было написать, «незабудте нажать Reset» потому что многие читатели этой статию вообще первый раз сталкиваются с установкоми серверов себе на компьютер. Папробуй догадайся надо reset жать или нет =D
Подскажите,пожалуйста! Почему при запуске некоторых кодов PHP браузер выдаёт соответствующие данные,а при запуске других кодов выдаёт пустой экран или сам код. (IE9,Windows7,Apache2.2.22, модуль PHP5.3.8).
Пустой экран — это скорее всего ошибка. В настройках php надо включить вывод ошибок на экран.
Вывод кода — возможно используется короткий открывающий тег <? вместо <?php
Большое спасибо за помощь. Подскажите, пожалуйста, как правильно удалить сервер MySQL? (для установки нового, Windows7,IE9)
Если устанавливали через инсталлятор, то тогда через Установку и удаление программ.
Если вручную, тогда останавливаем службу. Для этого в командной строке, запущенной от имени администратора выполнить:
Затем удаляем службу:
MySQL — это имя службы, может быть другим на вашем компе. Уточните через Панель управления -> Администрирование -> Службы (здесь же можно и становить службу).
Ну и в конце концов удаляете папку установки MySQL.
Уважаемый Max Bond!
Как практически, пошагово, например в папке C:\Program Files\Apache Software Foundation\Apache2.2\htdocs создать (сохранить) файл, например index.php с содержанием ? В наличии PSPad editor,Блокнот, Windows7, IE9.
Apache2.2.20, модуль PHP5.2.17 (установка инсталлером). В «Службах (локальных) Apache2.2 состояние — работает. Описание:
Apache/2.2.20(Win32)PHP/5.2.17». В трее зелёный треугольничек в окружности.
Набираю в адресной строке браузера: http://localhost/ нажимаю Enter — в левом верхнем углу пустого экрана — It works!
В «Найти программы и файлы» дохожу до Apache2.2 — открываю, выбираю htdocs — открываю, открываю index — It works! И всё. В DirectoryIndex index.php index.html. Помогите, пожалуйста.разобраться.
Открываете Блокнот и пишите:
Сохраняете файл с расширением .php, а не .txt!
Копируете файл в htdocs
Открываете в браузере http://localhost/
Если опять видите It works, попробуйте открыть файл напрямую http://localhost/index.php — если работает, очистите кэш браузера и еще разок попробуйте открыть http://localhost/
Автор, прости меня, но убей сибя апстену! Ваистену!
Всё, имеющиеся по твоему предписанию, удалил. Потом скачал установочные файлы Apache и PHP, всё установил, нигде ничего ручками не правил и всё заработало.
Ну тебя в пень! Полдня потратил.
Apache установился и работает. В строке браузера пишу:
http://localhost/index.php
И в окне просмотра сайта вижу код (содержимое) файла «index.php».
Что не так?
При любом значении порта 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)
А Апач запущен как служба??
Возможно, вы повторно пытаетесь запустить Апач, поэтому порты уже заняты.
Все сделал по инструкции, Apache норм работает. Но при заходе на localhost, то мне выдает вместо it works страничку IIS7, хотя в компонентах компа «Внедряемое ядро служб и Службы IIS отключил. в чем проблема?
Может просто закэшировалась страница в браузере? Попробуй очистить кэш.
Странно, не одного php.ini, php.ini-development и php.ini-production не нашел.
еще посмотри php.ini-dist