Рубрики
Веб-мастеринг

Настройка веб-сервера Apache + PHP + MySQL на Windows 7

Содержание:

Установка Apache

Для начала скачиваем дистрибутив Apache с официального сайта: http://httpd.apache.org/download.cgi

Выбираем последнюю версию (на момент написания этой статьи — 2.2.17) и переходим к списку дистрибутивов. На домашнем компе вам вряд ли понадобится SSL, поэтому скачиваем версию Win32 Binary without crypto (no mod_ssl) (MSI Installer).

Теперь запускаем установщик (пользователь должен обладать правами администратора). В начале ничего интересного — просто экран приветствия:

Установка Apache на Windows (1)
Установка Apache на Windows (1)

Второй этап — соглашаемся с условиями лицензии:

Установка Apache на Windows (2)
Установка Apache на Windows (2)

Третий этап — несколько вводных слов от разработчиков. Сразу жмем Next:

Установка Apache на Windows (3)
Установка Apache на Windows (3)

Четвертый этап. Здесь надо ввести данные во все три текстовых поля. Можно ввести несуществующий домен типа test.test или example.com. Эти данные нужны для создания базового конфигурационного файла. Под текстовыми полями одна из самых важных настроек — установить Apache как службу или как обычную программу. Выбираем «for All Users, on port 80, as a Service — Recommended» — установить как службу:

Установка Apache на Windows (4)
Установка Apache на Windows (4)

Тип установки. Выбираем Custom (выборочная):

Установка Apache на Windows (5)
Установка Apache на Windows (5)

Шестой этап. Выбор компонентов и места установки. Я оставил все значения по умолчанию:

Установка Apache на Windows (6)
Установка Apache на Windows (6)

Седьмой этап. Все готово к установке. Нажимаем Install:

Установка Apache на Windows (7)
Установка Apache на Windows (7)

Завершаем установку (Finish):

Установка Apache на Windows (8)
Установка Apache на Windows (8)

Установка завершена. В трее появится значок Apache, с помощью которого можно быстро остановить/запустить службу:

Apache в трее
Apache в трее

Проверяем работоспособность. Открываем браузер, и в адресной строке вводим http://localhost/. Если все правильно, должна открыться страница с надписью It works!

Проверяем Apache
Проверяем Apache

Чтобы сервер был доступен не только на локальном компьютере, но и из вне, необходимо открыть на вход порт TCP 80 в брандмауэре Windows.

Открытие порта в брандмауэре Windows

Открываем Пуск -> Панель управления -> Система и безопасность -> Брандмауэр Windows. В левой колонке кликаем по ссылке «Дополнительные параметры». В открывшемся окне также в левой колонке кликаем по «Правила для входящих подключений» и затем уже в правой колонке «Создать правило…»:

Открытие порта в брандмауэре Windows (1)
Открытие порта в брандмауэре Windows (1)

Откроется мастер создания правила. Тип правила выбираем «Для порта»:

Открытие порта в брандмауэре Windows (2)
Открытие порта в брандмауэре Windows (2)

Протоколы и порты. Протокол TCP. Ниже выбрать опцию «Определенные локальные порты», и справа в текстовом поле ввести номер порта — 80:

Открытие порта в брандмауэре Windows (3)
Открытие порта в брандмауэре Windows (3)

Действие. Выбираем «Разрешить подключение»:

Открытие порта в брандмауэре Windows (4)
Открытие порта в брандмауэре Windows (4)

Профиль. Оставляем по умолчанию (отмечены все три опции: доменный, частный, публичный):

Открытие порта в брандмауэре Windows (5)
Открытие порта в брандмауэре Windows (5)

В конце концов вводим имя созданного правила. Например Apache Web Server:

Открытие порта в брандмауэре Windows (6)
Открытие порта в брандмауэре Windows (6)

На этом все. Нажимаем Готово. Теперь можно попробовать подключиться с другого компьютера.

Напоминаю, что для подключений к серверу не только из локальной сети, но и из Интернет, на роутере (если он есть) необходимо настроить форвардинг 80-го порта (port forwarding или еще это часто называют virtual server).

Установка PHP (ручная)

Apache без PHP? Это нонсенс! Далее мы рассмотрим ручную (без использования инсталлятора) установку PHP на Apache в режиме модуля.

Скачиваем последнюю версию PHP (5.3.5 на момент написания) с сайта: http://windows.php.net/download/. Здесь доступно сразу несколько версий:

  1. VC9 x86 Non Thread Safe — для установки на IIS в режиме FastCGI.
  2. VC9 x86 Thread Safe — ???
  3. VC6 x86 Non Thread Safe — для установки на Apache в режиме CGI/FastCGI.
  4. VC6 x86 Thread Safe — для установки на Apache в режиме модуля — наш выбор.

Т.к. мы затеяли установку в ручном режиме, скачиваем zip-архив.

Содержимое архива распаковываем в директорию установки. Я выбрал C:\Program Files\PHP.

Переходим в эту директорию. В корне установки вы найдете два файла php.ini-development и php.ini-production. Эти файлы содержат базовые настройки. Первый файл оптимизирован для разработчиков, второй для рабочих систем. Основное отличие  — в настройках для разработчиков разрешен вывод на экран ошибок, тогда как для рабочих систем вывод ошибок запрещен из соображений безопасности.

Итак, выбираем нужный вам файл (я выбрал php.ini-development), открываем его и сохраняем в ту же папку под именем php.ini. Эту операцию можно проделать в обычном блокноте, но все же лучше использовать редактор поудобнее, например notepad2.

Теперь в php.ini необходимо внести несколько изменений:

  1. Найти опцию extension_dir (пользуйтесь поиском CTRL+F) и изменить путь к папке ext в соответствии с путем установки PHP. У меня это выглядит так: extension_dir = «c:\program files\php\ext»
  2. Найти опцию upload_tmp_dir. Здесь надо указать путь к временной папке. Я выбрал c:\windows\temp. Всё вместе: upload_tmp_dir = «c:\windows\temp»
  3. Найти опцию session.save_path. Здесь также требуется указать путь к временной папке: session.save_path = «c:\windows\temp»
  4. Перейдите к разделу 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/. Если все нормально, вы увидите похожую страницу:

Проверка установки PHP
Проверка установки PHP

Если вы видите страницу с надписью «It works!», попробуйте обновить страницу с помощью CTRL+F5.

Установка MySQL

Инструкция по установке MySQL на Windows вынесена в отдельную статью.

Ссылки по теме:

150 ответов к “Настройка веб-сервера Apache + PHP + MySQL на Windows 7”

Вроде сделал всё по описанию 1-в трее пусто. 2-когда вставляю в адресную строку http//:localhost/
браузер выдаёт такое сообщение:

Service Unavailable
HTTP Error 503. The service is unavailable.

Здравствуйте!
Установил 2.0.64 Апач+5.2.17 PHP. Началось с того, что php.ini-development и php.ini-production не нашел, воспользовался php.ini-recommended для создания php.ini и редактирования. В C:\Program Files\Apache Software Foundation\Apache2.2\ оказался httpd.conf вместо http.conf (имеет ли это значение?), в котором не оказалось строк
1
2 DirectoryIndex index.html
3 ,
а только строка DirectoryIndex index.html index.html.var, изменил ее и добавил строки, что требовались в конце с правильными директориями.
Апач не перегружается, упорно выскакивает ошибка. Есть ли варианты, почему?

Установил 2.0.64 Апач+5.2.17 PHP. Началось с того, что php.ini-development и php.ini-production не нашел, воспользовался php.ini-recommended для создания php.ini и редактирования. В C:\Program Files\Apache Software Foundation\Apache2.2\ оказался httpd.conf вместо http.conf (имеет ли это значение?)

httpd.conf — это правильно. У меня опечатка была.
А почему версия 2.0.64, хотя в указанном вами пути — apache 2.2?

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

Какая именно ошибка? Без PHP Апач работал?

Ошибка The requested operation has failed!
Апач отдельно без PHP работает. Кстати, когда захожу на localhost, то вместо It works! получаю сообщение If you can see this, it means that the installation of the Apache web server software on this system was successful. You may now add content to this directory and replace this page и т.д. Насколько я понимаю, это приветствие также подтверждает нормальную работу Апача.
Версию 2.0.64 скачал с указанной вами ссылки, скорее вопрос почему в пути 2.2 :))

Версию 2.0.64 скачал с указанной вами ссылки, скорее вопрос почему в пути 2.2 :))

Версию Apache можно посмотреть открыв Apache Monitor (в трее).

Насколько я понимаю, это приветствие также подтверждает нормальную работу Апача.

Верно

Ошибка The requested operation has failed!

А покажите изменения которые вы внесли в http.conf

Добрый день! Извиняюсь за поздний ответ.
Версия 2.0.64.
Просто вконце вставил следующее:
# 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
Директории указаны правильно.
Также как уже говорил, не нашел этих строк в данном файле:
1
2 DirectoryIndex index.html
3
Есть только строка «DirectoryIndex index.html …» Пытался вместо нее вставить указанное, пытался после «DirectoryIndex index.html …» вписать index.php. Никаким образом не работает.

О чудо! Я вам очень благодарен! Спасибо за уделенное время. Работает!!!

Установил Zend удачно!
Спасибо!!!
Доросту, попробую еще раз ручками.

Здравствуйте,

Вписал в httpd.conf всё согласно показанному, но Apache отказывается с ним работать. После перезагрузки выдает сообщение «The requested operation has failed».

#
# Charset
AddDefaultCharset windows-1251
# PHP
LoadModule php5_module "c:/php/php-5.4.7/php5apache2_2.dll"
PHPIniDir "c:/php/php-5.4.7"
AddType application/x-httpd-php.php
<FilesMatch /.php$>
      SetHandler application/x-httpd-php
 </FilesMatch>

Автоматическая установка php не ставится, в конце выдает ошибку 2738 и отменяется. Искал на форумах решения проблемы, но они мне не помогли, попробовал установить вручную, как описано в посте. Apache работает, php никак не ставится. Я чайник. Прошу помощи!
Правильно ли я всё изначально сделал: скачал с http://www.php.net версию php5.3.17 и розархивировал в нужную папку, на которую потом даю ссылки. Но в архиве даже не было файла который упоминается в коде: php5apache2_2.dll, скачивал отдельно.

В общем проблема понятна, если порыться в комментах, то и решение найдется.

НО!
Как начинающему я советую установить Zend Server CE.
Это комплект из Apache + PHP + MySQL + phpMyAdmin от разработчиков PHP.
Предварительно не забудьте удалить все предыдущие установки Apache и PHP!

Поднаторее, и тогда уже перейдете к ручной установке (если захотите).

Именно эта сборка работать не будет. Дело в том, автор, что PHP скомпилирован VC9 а апач VC6. Но на сайте апача есть ссылка на сайт http://www.apachelounge.com где расположена версия апача VC9. И качать нужно именно ее.

Вы совершенно правы насчет технической части.

Насчет остального. Обратите внимание, что я никогда и не рекомендовал устанавливать PHP в версии VC9 на обычный Апач. На момент написания статьи дистрибутивы PHP 5.3 еще были доступны в версии VC6.

В любом случае, спасибо за сообщение, надо обновить статью.

Всем здрасти, у меня вопрос немного не по теме: можн ли на один компьютер установить Apache и IIS так, что бы сервера работаль одновременно? И какой сервер лучше?

На один компьютер установить IIS и Apache можно с одним условием — сайты должны использовать разные порты.

Какой сервер лучше? Это зависит от ваших задач. Если нужна полноценная среда PHP, то лучше Apache, если ASP, то тут только IIS.

Доброго времени суток. Сделал все как написано. apche перезапустился, но по адресу http://localhost/ так и осталась надпись It works! Подскажите с чем это может быть связано и вариант решения данного вопроса. Раньше пытался установить AppServ 2.5.10, но не получилось по непонятным причинам поэтому решил попробовать установить компоненты по отдельности, os win7x64,php-5.4.3-Win32-VC9-x86,httpd-2.2.22-win32-x86-no_ssl( я чайник)

Очистите кэш браузера.
Если без изменений, тогда попробуйте открыть http://localhost/index.php
Если ок, то смотрим httpd.conf, там должна быть такая конструкция:

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

Благодарю за помощь. Проблему удалось решить. Суть в том, что после сохранения файла — index.php, он оставался текстовым, а у меня на компьютере была включена функция «Скрывать расширения для зарегистрированных типов файлов» поэтому я не сразу сообразил что к чему. В итоге поменял расширение и все заработало. Еще раз спасибо.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.