Обновлено: 30 марта 2017, 10:31
 Marabar

Apache, установка и настройка на локальном компьютере

На момент написания статьи, последняя стабильная версия Apache для Windows — 2.2.22, скачать можно у разработчика или через один из зеркал. Официальной версии для 64 — разрядной windows нет, в интернете есть умельцы, которые переписывают. Я в свое время пробовал устанавливать, не знаю почему, но у меня Apache не запустился. Так что будем устанавливать то что есть,тем более у меня на 64-разрядной работает без замечаний. Напоминаю, я устанавливал на Windows 7, поэтому описание установки и настройка будет производится с windows 7.

Для начала определимся где у нас будет находится сервер, я создал папку webserver на локальном диске С:\ (знаю, что рекомендуют устанавливать по умолчанию, но мне удобней когда мой сервер будет находится максимально в одном месте.), вы можете назвать по другому и расположить где вам удобней, но не забывайте делать корректировку. В директории C:\webserver\, создаем еще пять папок:
  • cgi-bin — для хранения скриптов,
  • home — директория главного сайта,
  • logs — для регистрации ошибок,
  • server — директория localhost,
  • www — папка с проектами.



В директории C:\webserver\server\, создаем папку http\. В нее и будем устанавливать Apache.

Распакуйте скачанный архив (если скачивали у меня) и запустите установщик. Доходим до лицензии, читаем, соглашаемся и идем дальше. В открывшемся окошке Server Information, заполняем поля:
  • Network Domain — webserver.ru
  • Server Name — ww w.webserver.ru
  • Administrator's Email Address — admin@webserver.ru
Отмечаем: for All Users, on Port 80, as a Service и жмем «Next».

В следующем окне выбираем типовую установку и следуем дальше.



Дальше прописываем путь до нашей папки, C:\webserver\server\http\Apache2.2\ --> Next.

Жмем Finish, установка завершена.



Если вы все сделали правильно, то в панели задач появится перышко с зеленым треугольником.


Это значит, что Apache включен и готов к работе. Шутка! Чтобы наш сервер Apache заработал на нашем локальном компьютере и мог работать с нашими сайтами, нужно его еще настроить и это основная задача при установке сервера Apache. Многие на этом этапе, не сумев разобраться, бросают и переходят на уже готовые продукты. Я в свое время потратил около месяца на настройку, именно Апача, перегуглил весь интернет, перевел конфигурационные файлы, устанавливал, сносил и опять устанавливал. Хорош off-топа, поехали дальше. Если кликнуть на перышко левой кнопкой мышки, то откроется возможность управлять сервером Apache: start, stop, restart. Думаю, — понятно. Правой кнопкой мыши --> Open Apache Monitor, откроется окошко управлением Apache. Open Services, откроет окно управления службами windows. Можно убедиться, что работает.



И последняя проверка правильной установки Apache, вызовите в браузере localhost/ Браузер отобразит вам: It Works! — Это работает!

Настройка Apache.


Откройте в текстовом редакторе, лучше использовать Notepad++, конфигурационный файл httpd.conf. Он находится по адресу C:\webserver\server\http\Apache2.2\conf\, только перед началом редактирования сохраните оригинальный файл(на всякий случай). Для удобства привожу перевод. На оригинальность перевода не претендую, переводил больше для себя, но в общих чертах о настройках понять можно. Перед строчкой знак решетки "#" означает, что строка закомментирована. Если вам не нужно столько текста, просто удалите все закомментированные строчки описания директив.
#
#Это главный конфигурационный файл сервера Apache HTTP В нем содержатся
#Директивы конфигурации, которые дают серверу указания.
# Смотрите <URL:http://httpd.apache.org/docs/2.2> для подробной информации.
#В частности, см.
#<URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
# Для обсуждения каждой директивы конфигурации
#
#Не достаточно просто прочитать инструкцию здесь без понимания
#Что они делают. Они здесь только в качестве подсказок и напоминаний. Если вы не понимаете
#Обратитесь к онлайн-документации. Вы были предупреждены
#
#Конфигурации и названия лог-файлов: Если вы указываете для
#Управления сервером имена файлов начинающиеся с "/" (или "диск:/" для Win32)
#Сервер будет использовать явный путь Если имена файлов * не * начинаются
#С "/", значение ServerRoot добавляется- так "logs/foo.log"
#С множеством ServerRoot в "C :/webserver/server/http/Apache2.2" будет интерпретироваться
#Сервером "C :/webserver/server/http/Apache2.2/logs/foo.log".
#
# ПРИМЕЧАНИЕ: Если имена не указаны, то вы должны использовать косую черту
# Вместо обратной косой черты (например, "C :/ Apache" вместо "C: \ Apache").
# Если буква диска не указана, диск, на котором расположен httpd.exe
#Будет использоваться по умолчанию. Рекомендуется, чтобы вы всегда подставляли
#Явную букву в абсолютном пути, чтобы избежать путаницы.
#
# ServerRoot: главная директория, где находится конфигурация сервера
# Ошибки и лог-файлы.
#
#Не добавляйте слэш в конце пути к каталогу. Если вы укажете
#ServerRoot на не локальном диске, не забудьте указать директиву LockFile
#Нa локальном диске. Если вы хотите, чтобы одни и те же ServerRoot обрабатывали несколько
#HTTPD, вам необходимо изменить по крайней мере LockFile и PidFile.
#
ServerRoot "C:/webserver/server/http/Apache2.2"

#
# Listen: Позволяет привязать Apache к конкретным IP адресам и
# портам, а не по умолчанию. См. также <VirtualHost>
# директиву.
#
# Измените привязку конкретного IP-адреса, как показано ниже
# укажите Apache на все IP-адреса.
#
# Listen 12.34.56.78:80
Listen 127.0.0.1:80
Listen 127.0.0.4:80
Listen 127.0.0.6:80
Как правило, на локальном компьютере используется IP-адрес 127.0.0.1, порт 80 мы указали при установке Apache.

Дальше подключаем модули.
#
# Динамика общих объектов (DSO) Support
#
# Для того, чтобы использовать функциональность модуля, который был построен как DSO вы
# должны указать соответствующие `LoadModule" в этом месте, так что бы
# директивы, содержащиеся в нем были доступны перед использованием.
# Статически скомпилированные модули (перечисленные на `httpd-1") не требуется
# указывать здесь.
#
# Пример:
# LoadModule foo_module modules/mod_foo.so
#
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 auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.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_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule charset_lite_module modules/mod_charset_lite.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule dumpio_module modules/mod_dumpio.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule filter_module modules/mod_filter.so
#LoadModule headers_module modules/mod_headers.so
#LoadModule ident_module modules/mod_ident.so
LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule logio_module modules/mod_logio.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_forensic_module modules/mod_log_forensic.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule status_module modules/mod_status.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so

<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
#
# Если вы хотите httpd запустить от имени другого пользователя или группы, необходимо запустить
# httpd как главный изначально, и он будет переключаться.
#
# Пользователи/группы: имя (или # номер) пользователя/группы для запуска httpd.
# Как правило, рекомендуется создать специальных пользователей и группы для
# работы httpd, как и в большинстве системных служб.
#
User daemon
Group daemon

</IfModule>
</IfModule>
Далее настраиваем конфигурацию главного сервера. И без остановок, до упора!
#Конфигурация сновного сервера
#
# Директивы этого раздела устанавливают значения, и используются в "основном"
# сервере, который отвечает на любые запросы, не обрабатываемые
# VirtualHost определением. Эти значения также предоставляются по умолчанию для
# любого VirtualHost контейнера, которые вы можете определить в конце файла.
#
# Все эти директивы могут появляться внутри VirtualHost контейнеров,
# в этом случае эти настройки по умолчанию будут переопределены для
# виртуального хоста определением.
#
 
#
# ServerAdmin: Ваш адрес, при проблемах с сервером, могут быть отправлены
# по электронной почте. Этот адрес выводится на некоторые генерируемые сервером страницах, например
# об ошибках. например admin@your-domain.com
#
ServerAdmin admin@webserver.ru

#
# ServerName задает имя и порт, который используется сервером, чтобы идентифицировать себя.
# Это часто может быть определено автоматически, но мы рекомендуем вам задать
# явным, чтобы избежать проблем при запуске.
#
# Если ваш хост не имеет зарегистрированного имени DNS, введите его IP-адрес.
#
ServerName www.webserver.ru:80

#
# DocumentRoot: Каталог, в котором вы будете хранить
# документы. По умолчанию, все запросы взяты из этого каталога, но
# символические ссылки и синонимы могут использоваться для указания на другие места.
#
DocumentRoot "C:/webserver/www"

#
# Каждый каталог, к которому Apache имеет доступ может быть настроен, в отношении
# которых услуги и функции можно отключить или включить, это относится для всего
# каталога (и его подкаталоги).
#
# Настройки "по умолчанию" имеют
# очень ограниченный набор. 
#
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

#
# Обратите внимание, что здесь вы должны специально задать
# особенности ваших включений - так что если что-то не работает
# вы можете посмотреть здесь, чтобы убедиться, о подключенных
# тех или иных параметрах.
#
#
# Это должно совпадать с тем, что вы установите в DocumentRoot.
#
<Directory "C:/webserver/www">
    #
    # Возможные значения директивы Варианты "None (Нет)", "All (Все)",
    # или любое сочетание:
    # Indexes Includes FollowSymLinks ExecCGI SymLinksIfOwnerMatch MultiViews
    #
    # Обратите внимание, что "MultiViews" должно быть названо * явно * --- "Options All"
    # Не предоставить его вам.
    #
    # Параметры директивы см.
    # Http://httpd.apache.org/docs/2.2/mod/core.html#options
    # Для получения дополнительной информации.
    #
    Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

    #
    # AllowOverride контролирует, что директивы могут быть помещены в. Htaccess файлы.
    # Это может быть "All", "None", или любое сочетание ключевых слов:
    # Options FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Контроль, кто может получить материал с этого сервера.
    #
    Order allow,deny
    Allow from all
    AddHandler server-parsed .shtml .shtm .html .htm

</Directory>

#
# Контроль, кто может получить материал с этого сервера.
#
<IfModule dir_module>
    DirectoryIndex index.shtml index.shtm index.html index.htm index.php index.php5 index.phtml
</IfModule>

#
# Следующие строки предотвращают. Htaccess и. Htpasswd файлы от
# Просмотра веб-клиентов. 
#
<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

#
# ErrorLog: расположение файла журнала ошибок.
# Если вы не зададите директиву ErrorLog внутри VirtualHost
# сообщения об ошибках, с виртуального хоста будут
# регистрироваться здесь. Если вы определите logfile в VirtualHost,
# ошибки, будут регистрироваться там.
#
ErrorLog "C:/webserver/logs/error.log"

#
# LogLevel: Контроль количества сообщений записываются в error_log.
# Возможные значения: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn

<IfModule log_config_module>
    #
    # Следующие директивы определяют псевдонимы некоторых формат для использования с
    # директивой CustomLog (см. ниже).
    #
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      # Вы должны разрешить использовать mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    #
    # Расположение и формат лог-файл доступа (общий формат лог-файлов).
    # Если вы не определяет никаких logfiles в VirtualHost
    # они будут зарегистрированы здесь. И наоборот, если вы определили
    # в VirtualHost logfiles, транзакции будут
    # входить в него, в этом файле писаться ничего не будет.
    #
    CustomLog "C:/webserver/logs/access.log" common

    #
    # Если вы предпочитаете лог доступа, агентов, и реферер информации
    # (Комбинированный формат лог-файлов) можно использовать следующую директиву.
    #
    #CustomLog "logs/access.log" combined
</IfModule>

<IfModule alias_module>
    #
    # Переадресация: позволяет сообщать клиентам о документах, которые используются для
    # ориентации в пространстве имен сервера, но не больше. Клиент
    # создает новый запрос на документ на своем новом месте.
    # Пример:
    # Перенаправление постоянное /Foo http://webserver.ru/bar
 
    #
    # Alias: карты веб-путей в файловой системе пути используется для
    # доступа к контенту, который не находится в DocumentRoot.
    # Пример:
    # Alias /webpath /full/filesystem/path
    #
    # Если вы включаете / on /webpath то сервер будет
    # требовать, присутствие в URL. Вым, возможно, также
    # необходимо предоставить Directory раздел для обеспечения доступа к
    # файловой системы.
 
    #
    # ScriptAlias: Указывает каталоги содержат серверные скрипты.
    # ScriptAliases по существу так же, как псевдонимы, за исключением того, что
    # документы в целевом каталоге считаются приложениями и
    # запустить на сервере по запросу, а не как документы, направленные
    # клиенту. Те же правила о "/" относится к ScriptAlias
    # Директивы для Alias.
    #
    ScriptAlias /cgi-bin/ "C:/webserver/cgi-bin/"

</IfModule>

<IfModule cgid_module>
    #
    # ScriptSock: On threaded servers, designate the path to the UNIX
    # socket used to communicate with the CGI daemon of mod_cgid.
    #
    #Scriptsock logs/cgisock
</IfModule>

#
#"C:/webserver/server/http/apache/cgi-bin" должен быть изменен на любой ваш ScriptAliased
# CGI каталог существует, если настроен.
#
<Directory "C:/webserver/cgi-bin">
    AllowOverride All
    Options All
    Order allow,deny
    Allow from all
</Directory>

#
# DefaultType: по умолчанию MIME тип сервера, который будет использоваться для документов
# Если он не может иначе определить одну, например, от расширения имени файла.
# Если ваш сервер содержит в основном текстовые или HTML документы, "text/plain" является
# хорошим значением. Если большинство двоичного содержания, например, приложения
# или изображения, вы можете использовать "application/octet-stream" вместо того чтобы
# сохранить, браузеры пытаются отображать двоичные файлы, как будто
# текст.
#
DefaultType text/plain

<IfModule mime_module>
    #
    # TypesConfig указывает на файл, содержащий список отображений из
    # расширения файла MIME-type.
    #
    TypesConfig conf/mime.types

    #
    # AddType позволяет добавить или изменить конфигурацию MIME-type,
    # указанный в TypesConfig для определенных типов файлов.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding позволяет браузерам распаковывать сжатую
    # информацию на лету. Примечание: не все браузеры поддерживают это.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # Если AddEncoding директивы выше закомментированные, то вам
    # вероятно, следует определить расширения, чтобы указать типы носителей:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php .phpml

    #
    # AddHandler позволяет отобразить определенные расширения файлов "handlers":
    # действия не связаны с filetype. Они могут быть либо встроены в сервер
    # или дополнить действие директивой (см. ниже)
    #
    # Для использования CGI скриптов за пределами ScriptAliased directories:
    # (Вы также должны добавить "ExecCGI" в "Настройках" директивы).
    #
    AddHandler cgi-script .cgi .pl

    # For type maps (negotiated resources):
    #AddHandler type-map var

    #
    # Фильтры позволяют обработать содержание до отправки клиенту.
    #
    # Подключение .shtml файлов для включения на стороне сервера (SSI).:
    #(Вы также должны добавить "Includes" в "Options" директиву).
    #
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml .php
</IfModule>

#
# Mod_mime_magic модуль позволяет серверу использовать различные подсказки от
# содержимого файла, чтобы определить его тип. MimeMagicFile
# директива говорит модулю, где находятся определения.
#
#MIMEMagicFile conf/magic

#
# Настраиваемые ответы на ошибки в трех вариантах:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
ErrorDocument 500 http://www.webserver.ru/500error.shtml
ErrorDocument 404 http://www.webserver.ru/404error.shtml
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://webserver.ru/subscription_info.html
#

#
# MaxRanges: Максимальное количество диапазонов в запросе перед
# возвращением всего ресурса, или один из специальных
# значений 'default', 'none' и 'unlimited'.
# По умолчанию настроено, чтобы принять 200 диапазонов.
#MaxRanges unlimited

#
# EnableMMAP и EnableSendfile: В системах, которые поддерживают его,
# картография памяти или системные вызовы SendFile используются, чтобы предоставить
# файлы. Как правило, это улучшает производительность сервера, but mustm
# be turned off when serving from networked-mounted
# filesystems or if support for these functions is otherwise
# broken on your system.
#
EnableMMAP off
EnableSendfile On
#Добавить для 64-разрядных операционных систем
Win32DisableAcceptEx On

# Справочная конфигурации
#
# Конфигурационные файлы в conf/extra/ directory могут быть
# включены дополнительные функции или изменение конфигурации по умолчанию
# сервера, или вы можете просто скопировать их содержание здесь и изменять
# при необходимости.

# Server-pool management (MPM specific)
#Include conf/extra/httpd-mpm.conf

# Многоязычные сообщения об ошибках
#Include conf/extra/httpd-multilang-errordoc.conf

# Fancy directory listings
Include conf/extra/httpd-autoindex.conf

# Языковые настройки
Include conf/extra/httpd-languages.conf

# User home directories
Include conf/extra/httpd-userdir.conf

# Real-time info on requests and configuration
Include conf/extra/httpd-info.conf

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

# Local access to the Apache HTTP Server Manual
Include conf/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV)
#Include conf/extra/httpd-dav.conf

# Various default settings
Include conf/extra/httpd-default.conf

# Защита (SSL / TLS) соединения
# Включите conf/extra/httpd-ssl.conf
#
# Замечание: Следующее должно присутствовать для поддержки
# запуска без SSL на платформах, /dev/random эквивалент
# Но статически скомпилированных mod_ssl.
#
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
Я раскомментировал файлы ошибок, это 404error.shtml — перенаправление при запросе несуществующего файла и 500error.shtml — перенаправление при ошибке сервера. Чтобы Apache не ругался, создайте эти файлы в любом текстовом редакторе и поместите их в папку webserver/www/, или закомментируйте.

Теперь, давайте зарегистрируем наши сайты, чтобы мы могли с ними работать. Как вы помните в папке: webserver/home/ будет находится главный сайт, а в папке: webserver/www/ будут находится наши проекты. Главных сайтов может быть несколько и каждый сайт должен иметь только свой Listen, например:
Listen 127.0.0.2:80
Listen 127.0.0.3:80
Listen 127.0.0.4:80
#и т.д.
Мы в httpd.conf указали Listen 127.0.0.4
Откройте в текстовом редакторе файл httpd-vhosts.conf, он находится по адресу: webserver/server/http/Apache2.2/conf/extra/. Удалите из него все что там находится, только прежде не забудьте сделать копию, и поместите в него такую конструкцию:
#
# Virtual Hosts
#
NameVirtualHost 127.0.0.1:80
 
<VirtualHost 127.0.0.4:80>
ServerAdmin webmaster@mysite.ru
DocumentRoot "C:/webserver/home/mysite.ru/www"
ServerName mysite.ru
ServerAlias www.mysite.ru
ErrorLog "C:/webserver/home/mysite.ru/logs/error.log"
CustomLog "C:/webserver/home/mysite.ru/logs/access.log" common
<IfModule alias_module>
ScriptAlias /cgi-bin/ "C:/webserver/home/mysite.ru/cgi-bin/"
</IfModule>
<IfModule mime_module>
AddOutputFilter INCLUDES .shtml .php
</IfModule>
<Directory "C:/webserver/home/mysite.ru/www">
Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
AllowOverride All
Order allow,deny
Allow from all
AddHandler server-parsed .shtml .shtm .html .htm
</Directory>
</VirtualHost>
Откройте файл httpd-userdir.conf, он находится по адресу: webserver/server/http/Apache2.2/conf/extra/, сохраните оригинал и удалите из него все содержимое. Поместите в него такую конструкцию:
UserDir "webserver/home"
 
<Directory "C:/webserver/home">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
В директории webserver/home/ создайте папку mysite.ru/, в которой нужно создать еще три папки: cgi-bin/ — папка для скриптов, logs/ — папка для регистрации ошибок и подключений Apache файлы создаст автоматически и www/ — директория сайта mysite.ru.



Templates- это моя временная папка, вы ее можете не создавать. В поиске вызовите файл hosts, для этого введите запрос: %windir%, или C:\windows\system32\drivers\etc\hosts



Откройте файл в Notepad++добавьте такие строчки:
127.0.0.4          www.mysite.ru           mysite.ru
127.0.0.6          www.test.ru             test.ru
127.0.0.1          www.site1.ru            site1.ru
Папка test.ru нужна нам будет для вызова phpMyAdmin, ну а site1.ru это первый ваш проект. Название может быть каким угодно. Добавляем в файл httpd-vhosts.conf следующее:
<VirtualHost 127.0.0.6:80>
ServerAdmin webmaster@test.ru
DocumentRoot "C:/webserver/www/test.ru/www"
ServerName test.ru
ServerAlias www.test.ru
ErrorLog "C:/webserver/logs/error.log"
CustomLog "C:/webserver/logs/access.log" common
</VirtualHost>
 
<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@site1.ru
DocumentRoot "C:/webserver/www/site1.ru/www"
ServerName site1.ru
ServerAlias www.site1.ru
ErrorLog "C:/webserver/www/site1.ru/logs/error.log"
CustomLog "C:/webserver/www/site1.ru/logs/access.log" common
<IfModule alias_module>
ScriptAlias /cgi-bin/ "C:/webserver/www/site1.ru/www/cgi-bin/"
</IfModule>
<IfModule mime_module>
AddOutputFilter INCLUDES .shtml .php
</IfModule>
<Directory "C:/webserver/www/site1.ru/www">
Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
AllowOverride All
Order allow,deny
Allow from all
AddHandler server-parsed .shtml .shtm .html .htm
</Directory>
</VirtualHost>
Создаем папки test.ru/ и site1.ru/ в директории: webserver/www/, в test.ru/ создаем еще две папки: logs/ и www/, соответственно в папке site1.ru/logs/, www/, cgi-bin/. Для проверки работоспособности сервера Apache, создайте и добавьте файл index.html в корень каждого созданного сайта, напишите что-нибудь в содержимое файла… "Привет, Мир!".Соответственно в site1.ru: webserver/www/site1.ru/www/, также и в test.ru. Например, чтобы проверить сайт mysite.ru, добавьте созданный файл в webserver/home/mysite.ru/www/, перезапустите Apache, если вы все сделали правильно, треугольник на перышке Apache должен быть зеленым. Наберите в адресной строке браузера: mysite.ru и вы увидите содержимое файла. Так же проверьте другие сайты. На этом, пока все. Но имейте ввиду, что настройка файла закончена не полностью. Нам еще после установки php, нужно будет прописать модуль php и phpIniDir. И еще, при создании нового проекта (сайта), регистрировать в файлах httpd-vhosts.conf и hosts обязательно!

UPD: Скачать примеры конфигов Apache можно здесь.

Статьи по теме:


   Marabar Apache+PHP+MySQL+ phpMyAdmin... 0    8 0

Комментарии ()

  1. Andrew 24 ноября 2014, 19:37 # +1
    «Если вы все сделали правильно, то в панели задач появится перышко с зеленым треугольником».

    не появляется никогда. win xp x64
    open services — не открывается;
    по левой кнопке мыши — никакой реакции;
    в апач сервис монитор — пусто и кнопки старт/стоп/рестарт неактивны!
    что не так?

    да, и при установке пишет:
    [Mon Nov 24 16:43:21 2014] [error] (OS 2)═х єфрхЄё  эрщЄш єърчрээ√щ Їрщы.: No
    installed service named «Apache2.2».
    Note the errors or messages above, and press the key to exit. 18…
    1. Marabar 24 ноября 2014, 19:59 # 0
      [Mon Nov 24 16:43:21 2014] [error] (OS 2)═х єфрхЄё эрщЄш єърчрээ√щ Їрщы.: No
      installed service named «Apache2.2».
      Note the errors or messages above, and press the key to exit. 18…
      У вас Apache не установился.
      Я, уже, не помню как в xp, топик писал под windows7.
    2. Dog 19 января 2015, 03:15 # 0
      На самом последнем шаге меня браузер реально перекидывает на уже существующую интернет-страницу. Когда я поменял название во всех настройках и забил новый сайт, он сказал, что не может его найти. Что я делаю не так?
      P. S. Если ошибка глупая, не судите строго, я новичок.
      1. Marabar 19 января 2015, 04:12 # 0
        В файле hosts указали название сайта?
        1. Dog 19 января 2015, 04:52 # 0
          Да, указал. Я вместо .ru поставил .com. Это же соответственно повсюду поменял, если конечно это можно считать за ошибку.
          1. Marabar 19 января 2015, 08:02 # 0
            Так можно бесконечно гадать. В топике решение 100% рабочее, проверьте всё ещё раз.
            И после регистрации сайта в файле httpd-vhosts.conf, чтобы изминения вступили в силу, необходимо Apache рестартовать — если конфликтов нет, пёрышко должно быть зелёным.
      2. ELF 20 января 2015, 22:18 # 0
        В топике решение 100% рабочее, проверьте всё ещё раз.
        Не соглашусь.

        Мучаюсь уже больше суток (это больше 24 часов на установку апача), проблема все та же — всплывающее окно при «старте» апача = «The requested operation has failed!»

        Данная проблема после изменения «httpd.conf», с родным файлом, который создался после установки — все работает.

        Windows 7 x64 (Enterprice).

        Может стоит выложить файлы конфига?
        1. Marabar 21 января 2015, 13:23 # 0
          Значит какие то директивы указываете не те, или пути к файлам.
          Всё что указываете, должно быть создано и находиться по указанному пути.
          1. ELF 23 января 2015, 21:07 # 0
            1й и 2й раз — может быть, но 3-й и 4-й пробовал устанавливать в директорию «C:/webserver».
            1. Marabar 25 января 2015, 04:09 # 0
              Поправил httpd.conf.
              Ваша проблема появляется при банальном копировании, визуально ошибку не нашёл. Вероятнее всего какой-то мусор подцеплялся из исходного кода.
              Если изначально проходили бы каждую директиву ручками — проблема не появилась БЫ))

              Ладно, позже выложу все конфиги для скачивания. Статья старая уже, несколько раз переносилась — может что-то и подцепилось.
        2. Александр 20 июля 2015, 12:35 # 0
          Здравствуйте!
          Я установил и настроил Apache2.2.25. Создал главный сайт сервера: D:\mainsite.ru и три виртуальных хоста: D:\mysites\name1.ru, D:\mysites\name2.ru и D:\mysites\name3.ru. При вводе в адресную строку любого браузера любого из перечисленных сайтов на экране появляется mainsite.ru. Если не трудно, скажите, где моя ошибка?
          1. Константин 24 июля 2015, 13:20 # 0
            При настройки конфигов сервер не запускается из за неправильного пути в 3конф. 115 строка (ErrorLog «C:/webserver/logs/error.log»), при замене на свой существующий путь сервер запустился, (ErrorLog «C:\Webserver\server\http\Apache2.2\logs»)
            1. gundarevvp 23 августа 2016, 02:03 # 0
              Огромное спасибо автору инструкции за огромный труд и качественное изложение. Сам бы я никогда не разобрался. Установил Apache 2.2 под Windows 10. Правда не сразу он запустился. Помогла подсказка в книге по Python, что может не быть доступа к порту 80 и рекомендация использовать порт 8888. Я заменил везде 80 на 8888 и тогда Apache заработал. Но на панели задачь перышка нет. Запускать нужно из меню ПУСК и обязательно от имени Администратора (иначе не запускается). Что бы запустить от имени администратора, нужно нажать правую кнопку мыши, в появившемся меню выбрать ДОПОЛНИТЕЛЬНО, и затем выбрать ОТ ИМЕНИ АДМИНИСТРАТОРА. Тогда Apache запускается. Останавливать приходится через Диспетчер задач.
              1. gundarevvp 23 августа 2016, 13:24 # 0
                Чуть не забыл добавить. Обращаться к локальному хосту нужно не просто localhost, а " localhost:8888 " (при этом обратите внимание, http без s, естественно без кавычек)
                1. gundarevvp 23 августа 2016, 13:36 # 0
                  Начинать как всегда с http но без s ( в комментарии полный адрес автоматически срезается и заменяется на localhost:8888, поэтому вынужден так объяснять).
                2. Marabar 23 августа 2016, 15:45 # 0
                  Пожалуйста.
                  80 порт, как правило, скайп резервирует под себя. В настройках скайпа нужно запретить ему использовать этот порт и тогда всё будет ок.
                  А виндой я сейчас вообще не пользуюсь, поэтому ничего сказать не могу по этому поводу — особенно за 10-ку
                  1. gundarevvp 24 августа 2016, 16:38 # 0
                    Это моя вторая попытка установить Apache. Первая была 2 года назад, и провалилась. Я тогда изучал Dreamweaver CS5 и создал свой сайт, но статический без сценариев. Разместил его в интернете и при каждом редактировании приходилось по нескольку раз сбрасывать содержимое сайта на webserwer в инете. Так как сайт статический у меня интерес к нему пропал и после окончания срока оплаты он стал не доступен. Сейчас после установки Apache, я могу видеть свой сайт на своем компьютере. Сейчас осваиваю Python и кроме других задач хотел бы использовать его для придание динамики своему сайту. Вот только проблема, не могу подключить модуль mod_python Apache. Нашел mod_python последней версии на сайте разработчика, но его нужно компилировать. На сайте есть документация как это сделать, но нужно использовать скрипты, в которых я не разбираюсь. Видимо придется устанавливать PHP и JavaScript и разбираться с ними, что бы установить модуль mod_python Apache. Буду дальше изучать Вашу инструкцию для установки PHP.
                    Еще раз благодарю Вас за прукрасную инструкцию. Как только положу деньги на Яндекс, сразу переведу Вам в качестве благодарности 500 руб. Кстати, а сложно написать инсталлятор для mod_python под Apache? Я бы оплатил эту работу в случае приемлемой цены, скажем в пределах $100. Хотя видимо это сложно, раз разработчик сделал такие инстоляторы только для некоторых старых версий mod_python, а для последних нет. Извините за громоздкий комментарий.
                    1. gundarevvp 24 августа 2016, 16:48 # 0
                      На всякий случай даю ссылку на разработчика mod_python Apache, где модуль и документация по его установке: modpython.org/.
                      Устроит и подробная инструкция для чайника, не знакомого со скриптами, но с установленным Apache, по установке модуля.
                      1. Marabar 24 августа 2016, 18:50 # 0
                        По иронии судьбы я и от Apache отказался в пользу NGINX.
                        1. gundarevvp 24 августа 2016, 21:16 # 0
                          Когда я работал, я старался использовать все самое новое, но сейчас мне достаточно и простенького webserver'а. Я не делаю упор на веб дизайн. Мой основной интерес сейчас освоить Python. Мне 70лет и я на пенсии и это просто мое хобби. Уже 10 лет на пенсии. По началу играл в компьютерные игры, WOW и другие, сейчас играть поднадоело. Заодно надеюсь приобщить сына к программированию. Он занимается обслуживанием компьютеров, но программированием не владеет. Python самый подходящий язык, что бы начать изучать программирование. В нем заложены все стили программирования, включая ООП и его можно использовать в любых областях деятельности на стадии разработки проектов, как язык высокого уровня. А потом, когда идея проекта уже отлажена, переписывать на более быстродействующих языках низкого уровня вроде С++ или для максимальной скорости какие то части на Ассемблере. Хотя я сам начинал с программирования на ассемблере для микропроцессоров. Но это нужно быть уж очень упертым, что бы так глубоко копать. ))
                          1. gundarevvp 24 августа 2016, 21:23 # 0
                            Послал Вам 500 рублей на Яндекс. Надеюсь дойдут. Я очень впечатлен качеством Вашей инструкции. Таких людей нужно поощрять.
                            1. Marabar 24 августа 2016, 22:49 # 0
                              Да пришли, спасибо!
                    2. Urbi 16 ноября 2016, 16:39 # 0
                      Апач установлся, службы видны, It works! тоже на месте. Но по адресу C:\webserver\server\http\Apache2.2\conf\ ничего нет. И во время установки пути не спрашивались и соответственно не прописывались. Командная строка мелькала на заключительном этапе установки с сообщение Erorr repor… Дальше не успела прочитать. Куда он мог установиться?
                      1. Marabar 16 ноября 2016, 20:37 # 0
                        В C\Program Files(86) наверное.
                        Давно уже виндовсом не пользуюсь, забывается.
                        1. Urbi 16 ноября 2016, 22:46 # 0
                          Содержательный ответ. Стоило ли трудиться-пальчики бить об клавиатурку?
                      2. valery 30 ноября 2016, 05:14 # 0
                        А где файл host? Весь диск излазила вдоль и поперёк но не нашла.
                        1. Urbina 30 ноября 2016, 10:18 # -1
                          И не найдёте. А автор вам ответит, что давно не работал на винде, или ещё что-нить абсолютно незначащее. И то, что вы потеряли столько времени на его материале, его только радует-глядишь, раскошелитесь. А не раскошелитесь-трафика входящего прибудет, что мелочь, но приятно.
                          1. Marabar 30 ноября 2016, 10:39 # 0
                            Откуда столько негатива? И не нужно додумывать за меня, что отвечу я — хорошо?
                            1. Urbina 30 ноября 2016, 10:46 # 0
                              Негатива? Вы о чём? Я вас люблю.
                            2. valery 30 ноября 2016, 13:05 # 0
                              Материал хорошо разжёван, по полочкам разложен. Почему бы не заплатить за труд автора? Тем более речь идёт о сумме, эквивалентной бутылке коньяка )))
                              1. Urbina 30 ноября 2016, 13:10 # 0
                                Потому что был задан вопрос и не получен ответ. Вопрос-простейший, ответ лежал на поверхности. Автор потрудился сообщить, что его он не знает. И вообще не напрягся, чтоб его поискать. И если б он один так себя вёл, я бы точно сейчас время не тратила. А бутылку коньяка вообще не жалко. Было б за что.
                                1. valery 30 ноября 2016, 15:05 # 0
                                  У меня ситуация безвыходная почти что. 6,5 лет разработчик вёл мои сайты и я проблем не знала. Сейчас попал в больницу, а я до такой степени за эти годы расслабилась, что даже пароли от админки не могу найти куда дела (неделю назад если честно такое словосочетание услышала). Б-рррр Приходится экстренно самой осваивать все эти премудрости, начиная с понятий домен, хостинг и идиотского вопроса Яндексу почему скачанная джумла не работает. По профессии я врач, от одного вида кодов в ступор впадаю. Для меня информация, тщательно на этом сайте разжеванная и ещё и переведённая на русский язык просто спасение и я очень благодарна автору.
                                  1. Urbina 30 ноября 2016, 15:08 # 0
                                    Вы-врач?! Зачем вы сайтами-то занимаетесь? Это вообще не ваша тема. В смысле не смежная. Кругом полно желающих админить сайты!
                                    1. valery 30 ноября 2016, 15:23 # 0
                                      Во-первых разработчик в ближайшие неделю-две из больницы, надеюсь, выйдет, смысла менять его я пока не вижу, особенно наблюдая, как «админят» сайты моих коллег с нулевым выхлопом. Во-вторых элементарные операции типа добавить статью — вставить фото давно сама хотела научиться делать, т.к. это как минимум хорошо экономит время и важно при работе в связке с партнёрами. Планировали моё обучение этому натюрморту на новогодних праздниках, но, увы, приходится самой в экстренном порядке это осваивать. Если ситуация затянется, естественно на замену буду кого-нибудь искать.
                                      1. Urbina 30 ноября 2016, 15:27 # 0
                                        Понятно. Обращайтесь, если что. Я вам покажу свои работы.
                                2. Marabar 30 ноября 2016, 10:35 # 0
                                  C:\windows\system32\drivers\etc\hosts
                                  1. valery 30 ноября 2016, 13:05 # 0
                                    а, вот он где… спасибо огромное )))
                                    1. Urbina 30 ноября 2016, 15:16 # 0
                                      Ладно! Приношу свои извинения. После того как врач смог настроить сервер по вашей статье-снимаю шляпу.
                                      1. valery 30 ноября 2016, 15:24 # 0
                                        Ещё рано поздравлять, как говорит мой коллега-проктолог «не выходит, Данила, каменный цветок» :D
                                        1. Urbina 30 ноября 2016, 15:28 # 0
                                          Я прям запомню шутку проктолога. Очень весёлая!
                                  2. Филитович Владимир 26 февраля 2017, 22:25 # 0
                                    Спасибо! Сделал как написано — все заработало. Вы спасли меня от пройденного Вами пути по гуглам и переводам



                                    Вы должны авторизоваться , чтобы оставлять комментарии.

                                    Marabar 21 сентября 2018, 00:32
                                    Login в MODX revolution 25
                                    Marabar 17 мая 2018, 12:22
                                    Выводим облако тегов в MODX revo 17
                                    medortex 14 июля 2017, 16:26
                                    Меню Аккордеон в MODX revo 54
                                    Madao 16 мая 2017, 18:28
                                    msMiniCartDynamic 3
                                    Семён 05 мая 2017, 23:30
                                    Создание ресурсов из фронтенда 41
                                    Филитович Владимир 26 февраля 2017, 22:25
                                    Apache 2.2.22, установка и настройка 41
                                    valery 30 ноября 2016, 15:51
                                    phpMyAdmin 3.5.1, установка и настройка 3