Настройка web-сервера: Apache+PHP+MySQL на Windows 7 Ultimate x64

Установив свежекупленную Windows 7 Ultimate x64 на свой ноутбук столкнулся с задачей глобальной перестановки софта, в том числе и веб-сервера. Это дело и постараюсь описать, пока свежо в памяти.

Установка и настройка сервера разработчика почти ничем не отличается от описанной ранее, кроме пары-тройки мелких моментов.

1. Качаем свежий  софт. На момент написания это были:

  • Apache 2.2.14
  • PHP 5.3.1 (на сколько я понял, VC9 - для IIS, а нам для Apache нужен VC6)
  • MySQL 5.1.4 (качаем себе x64 версию для 64-битных систем)

Софт предпочитаю в инсталлерах, т.к. с ним в этом случае возникает меньше проблем.

2. Ставим всё по порядку:

  • MySQL - работает без проблем из коробки. Единственное, что стоит подкрутить руками настройки в области InnoDB, т.к. по умолчанию они работать будут, но непонятно как. Не забываем умолчательной кодировкой поставить вашу любимую. У меня это utf-8.
  • Apache - стал из коробки со 2-й попытки. После неудавшейся установки (инсталлеру система не дала доступа к сервисам) Windows (сам!) предложил это дело повторить и апач поднялся. До установки советую прописать в hosts красивый фэйковый домен, дабы потом апач в логи не плакал как ему плохо. 
  • PHP. Стал с первой попытки. Единственное, что ему опять-же не дали прописаться в конфиге апача.

3. Пиксельхантинг:

  • Первым делом становимся владельцем всех конифгов и убираем всевозможные read only, которые развесила на них система. Если в конфиги часто ходить не планируется, то тупо запускаем текстовый редактор от суперпользователя (правой кнопкой мыши на exe'шнике -> запуск от имени администратора) и правим их до нужного состояния.
    • В php.ini ничего смертельного не менял - только убил пару пока ненужных модулей и докинул памяти в некоторых местах
    • httpd.conf включил mod_rewrite, прописал index.php и подключил внешний файл с настройками виртуальных хостов.
      Попутно туда-же прописал PHP, который не смог сам влезть в апач.
      Не забываем поставить свои пути:
      PHPIniDir "C:/Program Files (x86)/PHP/"
      LoadModule php5_module "C:/Program Files (x86)/PHP/php5apache2_2.dll"

      <IfModule php5_module>
      <Location />
      AddType text/html .php .phps
      AddHandler application/x-httpd-php .php
      AddHandler application/x-httpd-php-source .phps
      </Location>
      </IfModule>

      Вписываю выстраданные кровью для 64-битных систем строчки:

      EnableSendfile Off
      EnableMMAP Off
      Win32DisableAcceptEx
    • MySQL не трогал
  • Наслаждаюсь полученным результатом. Если сервер вдруг не стартует, то можно перезагрузить систему и потом курить логи, если опять не завелось.

Основная особенность установки под Windows 7 Ultimate x64 - это наконец дефолтная настройка операционки на нормальную работу с правами доступа. Что-бы поменять что-либо на системном диске нужно слегка напрячься. Ну и плюс тараканы с Apache'м. В отличие от RC Windows 7, погибающей 1 марта 2010 года, в полной версии 7-ки работает даже Apache Monitor. Только при первой попытке поуправлять сервисами ему это дело нужно просто разрешить делать.

Добавлено: случайно наткнулся на грабли в виде неприятия Windows 7 всего, что написано в C:\Windows\System32\drivers\etc\hosts. После небольшой медитации вылечил добавлением прав на чтение файла для пользователя Everyone.

Опять добавлено: после установки SP1 на Windows 7 Ultimate x64 опять стало всё плохо - все локальные ресурсы и host перестали пинговаться. Ранее найденное решение нифига не работало.

Вылечилось добавлением прав на чтение для NETWORK SERVICE и перезапуском службы DNS-клиент.

RSSAdd to Google

Обсуждение:

  • Автор: (Анонимус)
  • Тема: настройка веб сервера
  • Хорошо что написал.Я пробую у меня такая же конфигурация . Подробнее бы

  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Спасибо!!!
  • очень помогло спасибо, поставил все за 30 минут
  • Отправлено:
  • Автор: (Анонимус)
  • нужна подробная инструкция по установки сервера PHP--не все ясно.
  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Тема: Установка PHP
  • Запускаете инсталляцию PHP от Администратора и жмёте "Далее" пока не всё не закончится. Если нужны нестандартные модули, то включаете их во время установки.

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

    Если PHP не стартует, то или он не прописан в конфиге web-сервера или ему мешает какой-то из модулей.

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

  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Помошь
  • прощу помочь, во время запуска апачи появляется окошка с текстами
    The requested operation has failed

    Прошу помочь
  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Fax, скорее всего проблемы с одним из модулей php или apache.
    Для начала в httpp.conf установите LogLevel в debug и посмотрите на что апач ругается в лог-файлах.
    Если проблема по подсказке из логов останется неясной, то начните с постепенного выключения ненужных расширений php для поиска виноватого - на windows чаще всего виноват php_openssl.
    По окончании экспериментов не забудьте вернуть на родину LogLevel в apache, иначе место на диске с апачем будет быстро стремиться к нулю.
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Помошь
  • не помогло.
    Я думаю что дела не в настройках PHP.
    Апачи должен же работать и без PHP.
    Кто знает прощу помочь
  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Если php не стартует, то и apache валится следом.
    Чего апач в логах пишет?
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Помошь
  • сейчас апачи норма запускается, но когда ставлю PHPIniDir "C:/Program Files (x86)/PHP/"
    LoadModule php5_module "C:/Program Files (x86)/PHP/php5apache2_2.dll"


    AddType text/html .php .phps
    AddHandler application/x-httpd-php .php
    AddHandler application/x-httpd-php-source .phps


    опять потом The requested operation has failed

  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • тогда однозначно в php.ini ловить модуль, который не работает.
    Можно закомментировать все extension=php_*.dll и если в таком состоянии заведётся, то включать по одному, пока опять не ляжет - это и будет виновное расширение.
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Помошь
  • не получается.
    Что делать ?
  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • хм..
    А php.ini имеет место быть в папке C:/Program Files (x86)/PHP/?
    И можно ещё проверить наличие php5apache2_2.dll в папке C:/Program Files (x86)/PHP/
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: та же проблема
  • у меня в точности всё то же самое, не запускается, когда добавляю строки
    PHPIniDir "C:/Program Files (x86)/PHP/"
    LoadModule php5_module "C:/Program Files (x86)/PHP/php5apache2_2.dll"
    помогите разобраться
    windows 7 x64
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: ребят подскажите
  • Есть лицензия на Windows Seven Ultimate. Ребят подскажите стоит ли запускать сервер (не локальный) не на базе Windows Server 2008 R2, а на базе Windows Seven Ultimate ???
    Или в Server R2 больше всяких примочек, и средст защиты и экономия в 20 т.р. того не стоит??
    ** ответ пожалуйста отправляйте на мыло S.Mezencev@nnov.comstar-r.ru
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Подскажите про SP1
  • Подробнее плиз про пропажу пинга и разрешения на NETWORK SERVICE после установки SP1, а то у меня белый IP перестал с ноута пинговаться после этой шляпы, хотя некоторые компы видят меня....
    ответ просьба на мыло, прогуглить не вышло, kondr_nik@mail.ru
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: настройка web-сервера
  • после дня стараний, 3-и строчки помогли!
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: web-server на Windows 7
  • Не могли бы вы выложить настройки ftp сервера, и второй вопрос:
    Я хочу организовать сервер на компе, но мне не нужны CGI и php, собираюсь выложить чисто html файлы, возможно ли это организовать стандартными компонентами windows 7(IIS)
  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • IIS с этим замечательно справится.
    Про ftp-сервер - не понял.
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: web-server на Windows 7
  • FTP-сервер, так же посредствомм IIS, просто я пытался его настроить, но у меня что то не заладилось. У мну вин 7 х64 профессионал, настройки вроде правильные, но он не работает, при запуске проверки выдает ошибку, не может подключитьс, типа нет доступа или недостаточно прав...
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: большое спасибо
  • большое спасибо за
    Вписываю выстраданные кровью для 64-битных систем строчки:
    EnableSendfile Off
    EnableMMAP Off
    Win32DisableAcceptEx
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Настройка apache(x64)+php(x64)+mysql(x64) на Win 7 Ultimate x64
  • PHP 5.3.1 (на сколько я понял, VC9 - для IIS, а нам для Apache нужен VC6) - верно, но как я понял не обязательно оно и так))).
    У меня Win 7 Ultimate x64, установлено следующее ПО: apache_2.2.16-x64-openssl-1.0.0a.msi, mysql-5.5.15-winx64.msi, php-5.3.6-Win32-VC9-x64.zip.
    Все работает отлично (не только у меня одного). Никаких проблем пока не было.

    Этого тоже не прописывал:
    EnableSendfile Off
    EnableMMAP Off
    Win32DisableAcceptEx
    Собственно я даже не знаю куда его сунуть и зачем)

    И вот, может кому понадобиться:
    php тянем отсюда - http://www.anindya.com/php-5-3-6-x64-64-bit-for-windows/.

    Apache настраиваем как обычно, но конец httpd.conf (apache) ОБЯЗАТЕЛЬНО дописываем:
    PHPIniDir "C:/Program Files/PHP/"
    LoadModule php5_module "C:/Program Files/PHP/php5apache2_2.dll"


    AddType text/html .php .phps
    AddHandler application/x-httpd-php .php
    AddHandler application/x-httpd-php-source .phps


    В архиве PHP (php-5.3.6-Win32-VC9-x64.zip, его мы сунем в C:\Program Files\PHP) два файла - php.ini-production и php.ini-development. Делаем из php.ini-production - php.ini и настраиваем как обычно.
    Устанавливаем MYSQL. Настройки my.ini не трогал.

    Не забываем о настройке hosts и конечно же о httpd-vhosts.conf)))
    Удачи всем!!!

  • Отправлено:
  • Автор: (Анонимус)
  • Тема: apmwu
  • Вот настройки php.ini и httpd.conf.

    -----------------------------------------------------------------
    Устанавливаем Apache.
    Настройки Apache в файле:
    c://Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf
    Для применения изменений в этом файле нужно перезагружать Apache.

    Чтобы Apache принимал запросы только с локального компьютера, указываем его неизменный IP адрес и порт: 127.0.0.1:80
    Т.е. скачать или запустить что-то на вашем хостинге можете только Вы и только с локального компьютера но при этом Ваши PHP программы могут скачивать что-то из интернета.

    Заменяем
    Listen 80
    на
    Listen 127.0.0.1:80

    ----------
    Модуль mod_rewrite.so нужен для реализации человеку понятных адресов (ЧПУ)
    Применяется для создания ссылок на страницы вида: site.ru/news/2010/03/
    Убрать знак комментария "#":
    LoadModule rewrite_module modules/mod_rewrite.so

    ----------
    Для того, что бы можно было использовать файлы .htaccess
    После кода:

    # 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
    на
    AllowOverride All

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

    Заменяем
    DirectoryIndex index.html
    на
    DirectoryIndex index.html index.htm index.php

    ----------
    Даем доступ к папке "work"
    После кода:


    AllowOverride None
    Options None
    Order allow,deny
    Allow from all


    Добавляем:


    AllowOverride All
    Options Indexes Includes
    Order allow,deny
    Allow from all


    ----------
    Указываем расширения файлов для SSI
    После кода :

    # To parse .shtml files for server-side includes (SSI):
    # (You will also need to add "Includes" to the "Options" directive.)

    Вставить:

    AddType text/html .shtml .html. .htm
    AddOutputFilter INCLUDES .shtml .html .htm

    ----------
    Присоединение к основному конфигурационному файлу, файл httpd-vhosts.conf
    Тогда при запуске Apache прочитает оба файла.
    Убрать знак комментария "#":
    Include conf/extra/httpd-vhosts.conf

    ----------
    Даем понять Apache, что:
    Есть виртуальный хост, т.е. сайт.
    Его файлы лежат здесь "DocumentRoot"
    Показывать именно этот сайт если запрашивают домен "ServerName" или "ServerAlias"
    Логи писать сюда "ErrorLog" и сюда "access.log"

    Для этого в файле:
    C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf
    удаляем старые записи .......
    и добавляем новые:


    DocumentRoot c:/work/mysite/www
    ServerName mysite
    ServerAlias www.mysite
    ErrorLog c:/work/mysite/error.log
    CustomLog c:/work/mysite/access.log common





    -----------------------------------------------------------------
    Устанавливаем PHP
    Настройки PHP в файле:
    C:\Program Files\PHP\php.ini

    позволит выполнять код PHP в контейнере


    по умолчанию кодом PHP считается все в контейнере


    short_open_tag = On

    максимальное время выполнения программы в секундах
    (на реальных хостингах обычно 30)
    max_execution_time = 3600

    максимальное время получения данных (например загрузки файла) в секундах
    (на реальных хостингах обычно 60)
    max_input_time = 3600

    максимальный объем памяти который может занять Ваш PHP скрипт
    (на реальных хостингах обычно 32М)
    memory_limit = 256M

    выводить на экран ошибки PHP
    (на реальных хостингах всегда OFF в целях безопасности)
    display_errors = On

    выводить на экран ошибки в момент запуска PHP
    display_startup_errors = On

    максимальный объем, который можно передать PHP скрипту методом POST
    (на реальных хостингах обычно 4М)
    post_max_size = 1000M

    максимальный объем файла, который можно передать PHP скрипту
    (на реальных хостингах обычно 2М)
    upload_max_filesize = 1000M

    Требуется установка времени сервера иначе PHP постоянно будет выдавать предупреждения
    изменяем
    ;date.timezone =
    например, на
    date.timezone ='Europe/Moscow'

    ------------------------------------------------
    А, и да, для php 5.3.6 в папку ext нужно закинуть php_mcrypt.dll (найти не сложно).
    ---------------------------------------------------




    --------------------------------------------------------
    Настройка host
    C:\WINDOWS\system32\drivers\etc\host
    добавляем:
    127.0.0.1 localhost
    127.0.0.1 mysite
    -------------------------------------------------------



    -----------------------------------------------------
    Настройка xdebug (он у нас тоже x64):
    в конец php.ini добавляем следующее
    [Xdebug]
    zend_extension = "c:/Program Files/PHP/ext/php_xdebug-2.1.0-5.3-vc9-x86_64.dll"
    xdebug.remote_enable=on
    xdebug.remote_handler=dbgp
    xdebug.remote_mode=req
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000
    ------------------------------------------------------

    Ну теперь уж все)
    Если все сделано верно - этого должно хватить и все тепер у нас работает, но кому нужно смотрим еще здесь - http://aleksvip.ru/forum/77-586-1

  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Skype
  • Делал все по инструкции, никак не мог запустить Apache. Проблема оказалась в Skype - этот гад занимает 80 и 443 порты:) Отключил в настройках (раздел Дополнительно--Соединения), наконец-то запустил:)
  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Да, есть такое дело со скайпом.
    Ещё на 80-й порт любит садиться IIS.
  • Отправлено:

Как вам материальчик? *



















Тема:

Мысль:

Как звать-то:

Почта:

PS: Комментарии публикуются только после проверки модератором.

PPS: E-mail'ы не публикуются.

* обязательные поля