Содержание:
Для начала скачиваем дистрибутив 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”
Я долго и упорно мучился, делал всё по этой статье, но у меня так и не получилось сделать оформление каталогов, у меня ни чего не происходит, вот мой .htacces:
http://46.8.142.151/shared/ Что с ним, что без него, у меня ни чего не меняется, может я что-то не сделал? Потому что пробовал на сайте, там всё работает…
А подключен ли модуль autoindex в http.conf ??
Вроде да, вот мой httpd.conf.
Да, autoindex включен.
А попробуйте еще включить
Не выходит, при включении этого модуля, апач не включается.
Скриншот.
Тфу, я ступил. Перепутал ssl и ssi
А ssi у вас включен (mod_include).
В общем пока не знаю, что вам посоветовать, надо самому покрутить…
Хорошо, жду ответа.
Я так понимаю, вы так и не разобрались с моей проблемой?
Сорри, пока нет времени на эксперименты
Долго бился с проблемой вылета Апача. Затем воспользовался прогой DoScan и посмотрел, что использует 80 порт. Оказалось проблема в MS Office. А именно, нужно убрать службы публикации и SharePoint. После этого все заработало. Также не должны быть включены службы ISS.
Установил Апач как написано, запускаю и выдаёт ошибку The requested operation has failed! Что делать?? PHP и MYSQL не ставил
Скайп включен?
Если да, необходимо найти и отключить опцию «использовать порты 80 и 443 в качестве входящих альтернативных»
httpd.conf правили?
Здравствуйте,столкнулся с проблемой, все устновил по вашему примеру….проверил,вроде все работает…
но при озапуске файла php-cgi.exe и php.exe открывается окно с текстом ошибки….
примерно такого плана….PHP Warning PHP Startup:Uable to load dynamic libary ‘лс:\program files \php\php_mbstring.dll’ — =x эрщфхэ и т.п.
in unknown on line 0
\php_exif.dll’
\php_mysql.dll’
\php_musqli.dll’
\php_sockets.dll’
\php_sqlite3.dll’
\php_xsl.dll’
\php_zip.dll’
помогите пожалуйста…в чем может быть проблема?
Похоже, что в файле php.ini (директива extension_dir) указан неверный путь к папке расширений.
исправил,допустил ошибку вместо » поставил « из-за этого и возникли проблемы =)))
С виртуальным каталогом разобрался, спасибо, но у меня ещё вопрос. Вот как мне сделать что бы, список файлов и каталогов выглядел вот так? А то у меня он выглядит по стандартному, а хотелось бы, что бы было удобнее.
Это продвинутый вариант с использованием модуля mod_autoindex: http://www.oglib.ru/apman/mod/mod_autoindex.html
Вот пример настройки: http://www.yellowlemon.net/helpful/internet/listing-failov-spisok-failov-v-veb-servere-apache
Здравствуйте…маленькая проблемка,перешел в директорию PHP, в корне установки я не нашел файлы php.ini-development и php.ini-production. Вместо указанных вами файлов в папке обнаружил php.ini-dist и php.ini-recommended…
открыл с помощью блокнота файл php.ini-dist сохранил в ту же папку под именем php.ini…..открыл ,ввел изменения….
сохранил….
далее сохранил index.php
Открываю в браузере http://localhost/ и «It works», попробовал открыть файл напрямую http://localhost/index.php — работает…а так нет…в чем проблема? можете помочь…?правильно ли я все сделал…
Вам надо изменить настройки в конфигурационном файле Апаче — httpd.conf, чтобы приоритет index.php был выше index.html
В инструкции это есть
Ура…=)))
…а скажите пожалуйста, я правильно выбрал файл под ini?….
ив разделе Dynamic Extensions ничего не напутал??…
апач вроде работает …http://localhost/ тоже выдает картинку, как в вашем примере…означает ли это, что я все сделал правильно?
заранее огромное спасибо =)
Лучше, на мой взгляд, за основу взять php.ini-recommended.
Расширения (extensions) устанавливаются в зависимости от потребностей скриптов, которые вы запускаете.
Похоже на то ))
Спасибо вам огромное, все заработало =)))
У меня вопрос, как сделать доступной папку не находящуюся в основном каталоге веб сервера, например у меня в http://46.8.142.151/shared/ лежат всякие файлы, но я например хочу, что бы там же можно было зайти в папку которая находится на другом жёстком диске, на IIS можно было добавить виртуальный каталог, а как сделать подобное тут?
В Апаче тоже есть виртуальные каталоги.
В httpd.conf необходимо прописать директиву:
/test — имя виртуального каталога. В кавычках указываем путь к нужной папке. Далее указываем права доступа:
Options Indexes MultiViews — необходимо для отображения содержания каталога, елси индексный файл отсутствует.
Здравствуйте, у меня проблема, сделал всё по вашей статье, всё работает, я поставил phpMyAdmin, но когда я пытаюсь его открыть, он мне выдаёт ошибку:
Хотя в php у меня все модули включены, MySQL стоит в включен, в чём дело?
А если запускаете phpinfo() модуль mysqli указан в списке подключенных?
По моему нет, посмотрите сами — http://46.8.142.151/phpinfo.php а то я может не там смотрю… Но через поиск не нашёл.
Расширение mysqli у вас не подключено!
Найдите в php.ini строку:
;extension=php_mysqli.dll
и удалите точку с запятой в начале строки. Сохраните файл. Перезапустите веб-сервер.
Провертье phpinfo.
Так в том то и дело, что я всё сделал, а он всё равно его не включает. Вот мой файл http://46.8.142.151/shared/newest/php.ini
Так у вас же строка:
; extension_dir = «c:\program files\php\ext»
закомментирована!!!
Поэтому расширения и не грузятся. Надо убрать точку с запятой (путь вроде бы правильный)!
Точно, спасибо, помогло, я когда заполнял те параметры, я думал они так и должны быть закоментированы.
Припишите тогда перед настройкой этого файла, что все изменяемые строчки надо раскоментировать.
И ещё раз благодарю! :)
Здравствуйте!
подскажите пожалуйста, что не так — установила Apache, PHP и MySQL, всё работало. сегодня включаю компьютер, а сервер не запускается. была ошибка: The request operation has failed. скайпа нету, все пути проверила, все же работало вчера и я ничего не меняла. сервер запустился после удаления файлика php.ini. сейчас без него работает и сервер и пхп, добавляю его, сервер не запускается. не понимаю в чем дело может быть ???
Восстановите php.ini из php.ini-development или php.ini-recommended. С ними не должно быть проблем
Спасибо! восстановила из php.ini-dist. всё заработало [:
Мля, офигенно!!! Целый день провел переписывая по сто раз этот хттпд.конф по инфе с разных сайтов, и вот когда уже был готов снести все к ебеням и поставить Денвер наткнулся на ваше описание. Все получилось!!!