Установка и настройка apache сервера

Настраиваем Апач

При выборе первого метода установки сервера можете задать метод его запуска. При регулярном использовании и наличии свободных ресурсов на ПК используйте автозапуск Apache. В ином случае выбирайте его ручной запуск через контекстное меню службы.

После ручного или автоматического запуска сервера открываем удобный браузер и переходим по адресу: //localhost. Появится пустая страница с таким же адресом.

Дабы приступить к работе делаем следующее.

  • Идем в каталог «htdocs», расположенный в папке с файлами программного продукта.
  • Удаляем с нее html-файл и создаем каталог с именем сайта (mysite).
  • Можете зайти на будущий сайт, введя //localhost/mysite.
  • Переходим в папку «conf» и открываем файл «httpd.conf» в текстовом редакторе (желательно, с поддержкой синтаксиса).
  • Переходим на строку номер 227 и заменяем «none» на «all». В итоге должно получиться значение «AllowOverride All».

Выполнение такого действия разрешит использовать документ «htaccess». Он представляет собой расширенный конфигурационный файл Apache.

Ищем строку с текстом «#LoadModule rewrite_module modules/mod_rewrite.so» и удаляем символ «#».

Такое действие активирует модуль, отвечающий за создание и функционирование ЧПУ-ссылок.

Сохраняем внесенные изменения и обязательно выполняем рестарт Апач.

Далее выполняется установка PHP.

Виртуальные хосты в Apache

  1. Если на компьютере производится отладка нескольких проектов, то могут понадобиться виртуальные хосты (сайты). На примере будем рассматривать два виртуальных хоста: s1.localhost и s2.localhost. Для удобства будем создавать папки с такими же названиями, что совсем не обязательно в реальной системе.
  2. Следует учесть, что при использовании виртуальных хостов, параметр DocumentRoot конфигурационного файла Apache более не имеет смысла. Основным хостом сервера (который будет доступен по адресу http://localhost/) теперь является первый виртуальный хост в конфигурационном файле виртуальных хостов!
  3. Для начала необходимо добавить в файл c:\Windows\System32\drivers\etc\hosts строки:
    127.0.0.1 s1.localhost
    127.0.0.1 s2.localhost

    Делать это нужно от имени Администратора. Желательно после этого перезагрузиться, но на практике этого не требовалось. Если изменить файл не удается (права доступа), вы можете скопировать его на рабочий стол, изменить, а затем скопировать обратно.

  4. Создаем папки для виртуальных хостов D:\USR\www\s1.localhost и D:\USR\www\s2.localhost, в которых будут располагаться файлы. В каждой из папок создаем файл index.html с содержимым S1 и S2 соответственно (для контроля того, что все работает как нужно)
  5. Затем создаем папки для логов: D:\USR\log\s1.localhost и D:\USR\log\s2.localhost — тут будут храниться логи каждого из сайтов. Вообще-то, логи можно хранить в одной папке, но я привык делать так — мне так более удобно.
  6. Далее необходимо включить поддержку виртуальных хостов. В файле D:\USR\apache\conf\httpd.conf раскомментировать строку Include conf/extra/httpd-vhosts.conf
  7. Далее редактируем файл d:\USR\apache\conf\extra\httpd-vhosts.conf — он должен выглядеть так (каждому виртуальному хосту свой блок VirtualHost):
        ServerAdmin webmaster@s1.localhost
        DocumentRoot "D:/USR/www/s1.localhost"
        ServerName s1.localhost
        ServerAlias www.s1.localhost
        ErrorLog "D:/USR/log/s1.localhost/error.log"
        CustomLog "D:/USR/log/s1.localhost/access.log" common
    
        ServerAdmin webmaster@s2.localhost
        DocumentRoot "D:/USR/www/s2.localhost"
        ServerName s2.localhost
        ServerAlias www.s2.localhost
        ErrorLog "D:/USR/log/s2.localhost/error.log"
        CustomLog "D:/USR/log/s2.localhost/access.log" common
    
  8. Первый виртуальный хост s1.localhost теперь будет основным хостом системы, т.к. его блок следует первым в конфигурационном файле, т.е. будет доступен при входе на http://localhost/
  9. Перезапускаем Apache используя ApacheMonitor и заходим по очереди на http://s1.localhost/ и http://s2.localhost/.
  10. Итак. Для добавления нового виртуального хоста будет достаточно: создать папку для файлов хоста в D:\USR\www, создать папку для логов хоста в D:\USR\log, прописать имя хоста в файле hosts, добавить блок VirtualHost в файл конфигурации виртуальных хостов.

Подготовительная стадия – скачивание Apache, PHP, MySQL, phpMyAdmin

Вверху страницы представлено две версии Apache Win64 или Win32. Если у вас 64-битная Windows, то выберите любую (это непринципиально и на работу никак не скажется. Только следуйте правилу, чтобы все версии компонентов сервера были одной битности). Я выбрал 64-битную версию.

Переходим на . Версий много, с непривычки можно запутаться. Самые свежие версии находятся сверху. В разделе PHP 5.6 четыре варианта. Выберите Thread Safe, а также 64 или 32 бита. Например, я выбрал VC11 x64 Thread Safe.

Скачиваем MySQL (на сайте бесплатная версия называется MySQL Community Server). На перелистываем вниз. Там доступны две версии

  • Windows (x86, 32-bit), ZIP Archive
  • Windows (x86, 64-bit), ZIP Archive

Всем понятно, чем они различаются.

Если нажать на кнопку Download, то мы переходим на страницу, где две большие кнопки предлагают нам создать аккаунт или войти в уже существующий. Это необязательно, достаточно просто нажать маленькую надпись внизу «No thanks, just start my download» («Нет, спасибо, просто начните мою загрузку»).

Практически обязательным элементом сервера стал phpMyAdmin, его скачиваем с .

Если предыдущие скаченные файлы различались битностью, то для phpMyAdmin такого понятия нет, т. к. он состоит из PHP скриптов.

Для работы PHP (а также Apache) необходимо установить Visual C++ Redistributable for Visual Studio 2012 с официального сайта Microsoft. Для этого нужно перейти по .

При попытке запуска, Apache пожалуется на отсутствие файла и запускаться откажется. Этот файл является частью Visual C++ Redistributable for Visual Studio 2015, поэтому заблаговременно скачиваем его по (выбираем 32- или 64-битную версию).

Загружаемый файл будет иметь имя vc_redist.x64.exe.

Итог, мы имеем следующие файлы:

  • httpd-2.4.12-win64-VC11.zip
  • php-5.6.6-Win32-VC11-x64.zip
  • mysql-5.6.23-winx64.zip
  • phpMyAdmin-4.3.11-all-languages.zip
  • vcredist_x64.exe
  • vc_redist.x64.exe

Запустите и установите файлы vcredist_x64.exe и vc_redist.x64.exe – к ним мы возвращаться больше не будем.

Настройка

Для применения изменений в настройках необходимо перезапустить демон Apache:

sudo service apache2 restart
       /etc/apache2/
       |-- apache2.conf
       |       `--  ports.conf
       |-- mods-enabled
       |       |-- *.load
       |       `-- *.conf
       |-- conf-enabled
       |       `-- *.conf
       `-- sites-enabled
               `-- *.conf

Настройки модулей расположены в директории /etc/apache2/mods-available. Для подключения или отключения модулей (настроек модулей) следует использовать соответствующие команды или . Пример подключения модуля:

sudo a2enmod mod-name>

Свои настройки следует сохранять в файлы, расположенные в директории /etc/apache2/conf-available. Для подключения или отключения своих настроек следует использовать соответствующие команды или . Пример подключения файла со своими настройками:

sudo a2enconf config-name>

Настройки виртуальных хостов следует сохранять в файлы, расположенные в директории /etc/apache2/sites-available. Для подключения виртуальных хостов следует использовать соответствующие команды или . Пример подключения виртуального хоста:

sudo a2ensite site-name>

Кодировка по умолчанию

Для указания кодировки по умолчанию следует использовать директиву в файле /etc/apache2/conf-available/charset.conf (или раскомментировать соответствующую строку):

AddDefaultCharset UTF-8

Виртуальные хосты

Файлы настроек виртуальных хостов хранятся в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Вы можете использовать этот виртуальный хост в качестве примера.

Пример настройки виртуального хоста:

    #Имя хоста
    ServerName host1.server1
    #Корневая папка хоста
    DocumentRoot /var/www/host1.server1
    
        #Разрешение на перезапись всех директив при помощи .htaccess
        AllowOverride All
    

Назовите файл настройки именем вашего хоста host1.server1.conf и сохраните.

После создания файла настроек допишите в /etc/hosts имя вашего хоста:

127.0.0.1    host1.server1

Для включения созданного виртуального хоста используется утилита :

sudo a2ensite host1.server1

Отключается хост аналогично утилитой :

sudo a2dissite host1.server1

mod_userdir

Модуль позволяет использовать директории, находящиеся в домашних директориях пользователей для хранения веб страниц. По умолчанию Apache ищет запрашиваемые страницы в директории ~/public_html

mkdir ~public_html

Чтобы включить , выполните:

sudo a2enmod userdir

и добавьте необходимого пользователя в группу www-data:

sudo adduser $USER www-data

после чего перезагрузите Apache:

sudo service apache2 restart

Страницы будут доступны по адресу http://localhost/~username, где username — имя пользователя.

CGI

Если Вы хотите запускать на сервере cgi-скрипты, подключите модуль командой

sudo a2enmod cgi

По умолчанию cgi-скрипты размещаются в директории /usr/lib/cgi-bin, но вы можете разместить их где угодно,
указав это в настройках своего виртуального хоста, либо глобально для всех хостов в файле
/etc/apache2/conf-enabled/serve-cgi-bin.conf.

Eсли ваш сервер работает во внешней сети, то в целях безопасности настоятельно рекомендуется размещать cgi-скрипты вне корневой директории виртуального хоста

1. Как установить Apache на Windows 10

апаш

Эта загрузка Apache Lounge позволяет нам всегда собирать Apache с обновленными зависимостями и самыми последними компиляторами, которые были полностью протестированы. На двоичные файлы ссылаются ASF, Microsoft, PHP и т. Д. и все больше и больше программного обеспечения упаковано в эти двоичные файлы и модули.

Эти двоичные файлы созданы с использованием источников ASF по адресу httpd.apache.org и содержат последние исправления и последние зависимости, такие как zlib, openssl и т. Д. Двоичные файлы не работают в Windows XP и 2003 и могут работать на: 7 SP1, Vista SP2, 8 / 8.1, 10, Server 2008 SP2 / R2 SP1, Server 2012 / R2, Server 2016.

Там мы можем выбрать 32- или 64-битную версию в зависимости от имеющейся у нас архитектуры. Как только мы загрузим файл .zip, мы приступим к его извлечению:

То, что мы распаковали, будет скопировано в корень C, в этом случае мы скопируем папку Apache24:

Шаг 2 Следующим шагом является загрузка и установка Microsoft Visual C ++ 2012 Runtime, которая необходима для запуска Apache в среде Windows.

Microsoft Visual C ++ 2012 Runtime

Следующим шагом является редактирование файла httpd.conf, который мы находим по пути C: \ Apache24 \ conf, и там мы можем щелкнуть по нему правой кнопкой мыши и выбрать опцию Open with, а затем выбрать нужный текстовый редактор:

В развернутом файле мы внесем следующие изменения:

В строке Listen установите * .80 для прослушивания всех запросов через этот порт.

В строке ServerName укажите localhost: 80, чтобы определить имя домена сервера.

В строке AllowOverride измените none на All, чтобы разрешить замены .htaccess

Мы сохраняем изменения в файл.

Установка и настройка сервера Apache 2.4

На сайте apache.org нет версии Apache 2.4 для Windows. Поэтому дистрибутив возьмем на apachelounge.com. В момент написания статьи последний релиз – Apache 2.4.10.

В разделе Additional + VC9 можно выбрать два варианта дистрибутива – с поддержкой и без поддержки ssl. Мы останавливаемся на втором варианте и скачиваем архив httpd-2.4.10-win32-VC9.zip .

В дистрибутиве Apache нет файла инсталляции. Поэтому установка будет выполняться вручную.

Создаем папку и распаковываем архив httpd-2.4.10-win32-VC9.zip .

В файле конфигурации httpd. conf по умолчанию установлены маршруты C: Apache24 . Поэтому, правок в файле конфигурации будет гораздо меньше, если распаковать архив в эту папку.

Мы распакуем дистрибутив в папку C: TestServer .

Вносим правки в файл конфигурации C: TestServer Apache24 conf httpd. conf . При написании путей вместо символа «» (обратная косая черта) следует использовать символ «/» (прямая косая черта). Так прописываются пути в операционных системах Linux и Unix. А ведь первоначально Apache разрабатывался именно для этих операционных систем.

Выполняем групповую замену текста C:/ Apache24 на C:/ TestServer / Apache24 .

Устанавливаем значение параметра ServerName .

Устанавливаем значение параметра DocumentRoot (расположение документов сайта). DocumentRoot C:/ TestServer / Apache24/ htdocs

Возможно, вы захотите хранить документы сайта отдельно от сервера. Например, в папке C: MySites . Тогда этот параметр можно изменить. DocumentRoot C:/ MySites

Исполняемые файлы Apache находятся в папке C:TestServer Apache24bin . Добавляем это значение в переменную среды PATH Windows . PATH = C:TestServer Apache24bin;

Устанавливаем Apache как службу. httpd.exe -k install

Запускаем сервер Apache. httpd.exe -k start

Проверяем работоспособность сервера. В командной строке браузера набираем адрес: http://localhost. Если установка Apache прошла успешно – на экране отобразится текст It works ! . В противном случае мы увидим пустой экран.

В случае если сервер не запустился, следует проверить, не занят ли порт 80, который использует Apache по умолчанию.

Делается это с помощью команды netstat –anb

Чаще всего этот порт используют Skype или Firefox. В этом случае следует либо освободить порт, либо перевести Apache на порт 8080 .

Для этого в файле httpd . conf изменяем значений параметров ServerName и Listen . ServerName localhost:8080 Listen 8080

После этого перезапускаем службу командой httpd.exe -k re start

и опять пытаемся зайти по адресу http://localhost

Для удобства работы с сервером Apache можно установить в меню автозагрузки Windows ярлык, указывающий на C:TestServer Apache24bin ApacheMonitor.exe

Установите и настройте PHP

Несмотря на высокую конкуренцию, PHP остаётся самым распространённым серверным языком программирования с продвинутыми объектно-ориентированными возможностями

4.1. Загрузите архив с последней версией PHP для 64–разрядной Windows: php-7.3.2-Win32-VC15-x64.zip. На всякий случай, проверьте на официальном сайте PHP нет ли версии новее: https://windows.php.net/download/.

Обратите внимание, что вам нужна версия Thread Safe, то есть работающая в нескольких потоках, и она должна точно соответствовать версии Visual Studio, с помощью которой был скомпилирован Apache, например — VC15. Разрядность тоже должна быть как у Apache, 64-битные версии обозначаются x64, а 32-битные — x86

4.2. Распакуйте архив и перенесите все его содержимое в папку D:\web\php.

4.3. Откройте файл D:\web\apache\conf\httpd.conf. Найдите секцию файла со множеством строк LoadModule и в самый ее конец добавьте две строки, первая — , и вторая — .

Отдельная секция настроечного файла Apache посвящена модулям, которые расширяют возможности сервера. Строки можно было бы указать где угодно, но принято указывать их в этой секции. Здесь мы дополняем функциональность сервера библиотекой PHP и указываем расширения файлов c этим языком — .php. Существуют еще сотни популярных и полезных модулей, серьезно улучшающих работу Apache.

4.4. В том же файле httpd.conf сразу после секции LoadModule добавьте строку .

Директивой PHPIniDir задается адрес файла php.ini. Этот файл содержит множество важных настроек самого PHP: допустимые размеры файлов для обработки, ограничения времени работы скриптов, параметры пользовательских сессий и многое другое.

4.5. В том же файле httpd.conf найдите и измените значение на . Сохраните файл httpd.conf с перезаписью.

4.6. Перезапустите Apache, откройте браузер и перейдите по адресу http://localhost/ или http://127.0.0.1/ — вы должны увидеть сведения о конфигурации PHP и Apache.

Это значит, что вы все сделали правильно.

4.7. Откройте файл D:\web\php\php.ini-development и сохраните его под именем D:\web\php\php.ini.

Изначально php.ini отсутствует из соображений безопасности, владелец сервера должен самостоятельно его создать и проверить.

4.8. В файле D:\web\php\php.ini найдите, раскомментируйте и отредактируйте следующие параметры: параметр , параметр , параметр , параметр , параметр (укажите свой часовой пояс в соответствии с документацией php.net/manual/ru/timezones.php). Сохраните php.ini и перезапустите Apache.

В то время как PHP работает как расширение Apache, у самого PHP также есть множество важных и полезных расширений в виде библиотек, многие из которых идут в комплекте с PHP; прежде чем подключать эти расширения необходимо указать их адрес в параметре extension_dir. По ходу работы большинства популярных скриптов создаются временные файлы, необходимо указать папку для этих файлов в параметре sys_temp_dir. Одно из самых востребованных расширений — mysqli, стандартная библиотека для PHP, которая позволяет подключаться к базам данных под управлением MySQL. При работе с базами нередко нужно разбивать или собирать строки из нескольких мегабайт, для чего будет полезна библиотека mbstring. Также не стоит забывать про свой часовой пояс — он указывается вручную. С этим минимальным набором вы можете выполнять скрипты на PHP, хотя локальной базы данных у вас ещё нет.

4.0. Обновить PHP легко. Переименуйте папку D:\web\php в php_old, распакуйте новую версию PHP в D:\web\php, перенесите php.ini из папки php_old в папку php. Если все работает — удалите php_old.

Подготовьтесь к установке сервера

Visual Studio Code как нельзя лучше подходит как для работы с файлами конфигурации веб-сервера, так и для написания кода

1.1. Создайте папку web на диске D. Внутри нее создайте 5 подпапок: apache, php, tmp, www и log.

Сервер лучше устанавливать не на тот логический диск, где установлена Windows: чтобы избежать проблем с правами доступа к файлам и случайно не удалить сервер при переустановке системы. Для примера возьмём диск D.

1.2. Установите текстовый редактор кода. Хорошие варианты: Visual Studio Code, Brackets, Atom, Sublime Text и Notepad++.

Редактор не требуется, но с ним удобнее работать: как минимум, редактор нумерует строки и автоматически подсвечивает фрагменты кода разными цветами. Для таких редакторов как VS Code и Atom (и отдельный для Sublime) существуют пакетные менеджеры. Установив дополнительные пакеты, вы заставите редактор «подсвечивать» код ещё большего числа языков, а также научите автоматически указывать ошибки, дополнять выражения и делать многое другое. Но в конце–концов можно использовать и встроенный «Блокнот» Windows.

1.3. В каталоге D:\web\www создайте файл index.html с текстом Hello world и файл index.php с текстом .

HTML–файл необходим для проверки работы веб-сервера Apache HTTPD, который в среде разработчиков чаще называют просто Apache или «апач», хотя это и не совсем верно, ведь так называется группа проектов и стоящая за ними организация Apache Software Foundation, а не одна программа, но это простительная ошибка. Если Apache работает, то в браузере в ответ на обращение к серверу появятся слова Hello world. А вот PHP–файл необходим для проверки работы PHP, о котором ниже. Если PHP работает, то в браузере в ответ на обращение к серверу появятся сведения о конфигурации PHP.

Установка Apache 2.4 для Windows

Есть много статей в интернете, где описано, как выполняется установка Apache 2.4 для Windows. Я, может быть, и повторю что-то, но изложу пошагово свою версию.

В архиве, скачанном с сайта разработчика (использован вариант httpd-2.4.29-o110g-x64-vc14.zip), есть папка Apache24. Её, вместе с её содержимым, помещаем на диск С:

Кроме самого пакета (папки Apache24) в архиве лежит файл readme_first.html, который полезно прочитать.

Если на вашем компе установлены программы, слушащие 80 порт, то лучше их отвадить от использования этого порта, или назначить им другой. Сервер Apache по умолчанию настроен именно на этот порт, см параметр Listen в файле C:Apache24confhttpd.conf

Пробуем запустить сервер (позже рассмотрим вариант запуска сервера в виде системной службы(сервиса)). Для этого запускаем командную строку в режиме (от имени) администратора. Переходим в папку C:Apache24bin и запускаем программу httpd.exe

При первом запуске может появиться Оповещение системы безопасности Windows о том, что брандмауэр Windows заблокировал некоторые функции этого приложения (см. рисунок)

Ставим галочку, разрешающую Apache HTTP Server связь для Частных сетей. Работу в общественных сетях можно запретить.

Открыв любой браузер, введём в адресной строке адрес http://localhost/ — должна появиться страница сборщика данного пакета Apache-сервера.

(она с пакетом инсталлирована в папку C:Apache24htdocs — это значение имеет переменная DocumentRoot в файле httpd.conf, но мы его позже изменим).

Значит, сервер Apache стартует и работает нормально.

Если сервер не запускается, то надо посмотреть, какие ошибки он выдает. Ошибки можно увидеть при запуске: в командной строке и в файле C:Apache24logserror.log

Сделаем теперь так, чтобы сервер Apache запускался сервисом (описано в readme_first.html, прилагаемом к дистрибутиву). В командной строке, запущенной от имени администратора, перейдя в папку C:Apache24bin, запустим команду httpd -k install

Отслеживать состояние службы сервера Apache и выполнять его перезапуск (будем делать часто по ходу настройки) удобно через программу C:Apache24binApacheMonitor.exe. Сделайте для неё ярлык и поместите его в удобное для запуска место (в панель задач или на рабочий стол).

Осталось сконфигурировать сервер Apache под наши нужды: ориентировать на папки, в которых будут лежать наши сайты; подготовить к работе с MySQL и PHP.

Допустим, мы желаем иметь на локальном компе пока 2 сайта с именами localhost и wp-test http://localhost/ http://wp-test/

Для этого в системном файле C:WindowsSystem32driversetchosts должны быть такие строки

127.0.0.1 localhost 127.0.0.2 wp-test

Первая строка обычно уже существует по умолчанию. Вторую набиваем самостоятельно.

Эти строки сообщают, что хосты с именами localhost и wp-test надо искать по IP-адресам 127.0.0.1 и 127.0.0.2 — оба адреса соответствуют локальному компьютеру.

Перезапуск ОС необязателен.

Создадим на локальном компе папки для хранения сайтовых файлов, например в папке: D:siteslocalhost D:siteswp-test

В каждой из этих папок создадим 2 файла с именами access.log error.log и подпапку www D:siteslocalhostwww D:siteswp-testwww — в этих папках создадим файлы index.html с таким содержимым: это localhost это wp-test

Теперь настроим сервер Apache на использование виртуальных хостов, соответствующих нашим сайтам.

Отредактируем конфигурационный файл сервера (C:Apache24confhttpd.conf). Для этого его надо открыть в текстовом редакторе. Я для этого использую NotePad++ (очень многофункциональный бесплатный редактор).

Виртуальные хосты обычно прописываю в конец этого файла.

Добавим туда такие строки:

Проверяем, открываются ли в браузерах страницы по адресам http://localhost/ http://wp-test/

При нормальном открытии страницы должны отображать такие строки: это localhost и это wp-test

Аналогично можно создавать и другие виртуальные веб-сервера на локальном компьютере.

Дополнительные настройки для Apache, которые могут пригодиться.

Для использования в будущем, рекомендую раскомментировать строку LoadModule rewrite_module modules/mod_rewrite.so — для того, чтобы, например, в wordpress можно было использовать постоянные ссылки.

Далее, подружим наш Apache-сервер с системой PHP (см. установку PHP ниже).

Оптимизация размещения файловых областей

Сразу после установки структура папок программного пакета Apache выглядит следующим образом:

bin
— исполняемые файлы Web-сервера.
cgi-bin
— CGI-сценарии Web-сайта.
conf
— конфигурационные файлы Web-сервера.
error
— страницы ошибок протокола HTTP.
htdocs
— файловая область Web-сайта (проще говоря, здесь размещается Web-сайт).
icons
— пиктограммы Web-сервера
include
— подключаемые файлы заголовков (h-файлы), небоходимы при сборке Web-сервера компилятором VC.
lib
— библиотечные файлы Web-сервера.
logs
— журналы работы Web-сервера.
manuals
— документация в формате HTML.
modules
— дополнительные программные модули Web-сервера (so-файлы).

Из перечисленных выше папок четырём (cgi-bin, conf, htdocs и logs) не место в базовой папке Web-сервера. Из нужно скопировать в рабочую папку Web-сайта: «D:\www». Исходные папки можно было бы удалить, однако они могут понадобится для восстановления начальной ситуации, если в ходе настройки Web-сервера что-то пойдёт не так. С другой стороны, если их оставить на прежнем месте, то из-за неполной настройки Web-сервера может случиться так, что использоваться будут именно эти папки, а не те, которые мы хотим. Поэтому после копирования их лучше просто переименовать в cgi-bin.0, conf.0, htdocs.0 и logs.0 соответственно.

Apache и другие веб-сервера

Кроме Apache существует ещё довольно много веб-серверов. Каждое приложение веб-сервера создавалось для различных целей. Не смотря на то, что Apache является самый широко используемым, для него есть несколько альтернатив и конкурентов.

Apache или NGINX

Nginx произносится как Engine-X, это более новое веб-серверное программное обеспечение с первым релизом в 2004 году. Как на сегодня он добился большой популярности среди владельцев сайтов. Nginx был создан для решения так называемой проблемы c10k – проблемы 10 тысяч соединений, что означает, что веб-сервера, использующие потоки не могут обрабатывать запросы пользователей более, чем с 10 000 подключений одновременно.

  1. Так как Apache использует структуру основанную на потоках, владельцы сайтов с высоким трафиком могли столкнуться с проблемой производительности. Nginx один из веб-серверов, который был нацелен на решение проблемы c10k и возможно это одно из самых успешных решений.
  2. Nginx имеет событийно ориентированную архитектуру, которая не создаёт новый процесс для каждого запроса. Вместо этого он обрабатывает каждый входящий запрос в едином потоке. Этот главный процесс управляет несколькими рабочими процессами, которые выполняют непосредственную обработку запросов. Модель Nginx, основанная на событиях распространяет запросы пользователей среди рабочих процессов эффективным путём, что приводит к лучшей масштабируемости.
  3. Если вам нужно обслуживание сайта с высокой посещаемостью, то Nginx – отличный выбор, поскольку он может сделать это, затратив минимальные ресурсы. И не случайно он используется сайтами с большим количеством показов, такими как: Netflix, Hulu, Pinterest и Airbnb.
  4. Однако для мелких и средних игроков, Apache имеет несколько преимуществ в сравнении с Nginx, среди которых: более простая настройка, множество модулей и среда дружественная для начинающих.

Apache или Tomcat

Tomcat – это веб-сервер также разработанных Apache Software Foundation, поэтому его официальное название Apache Tomcat. Это тоже HTTP-сервер, однако он обрабатывает приложения Java вместо статических сайтов. Tomcat может запускать несколько Java спецификаций, таких как: Java Servlet, Java Server Pages (JSP), Java EL и WebSocket.

  1. Tomcat был разработан специально для приложений на Java, в то время как Apache позиционируется как HTTP-сервер. Вы можете использовать Apache совместно с другими языками программирования (PHP, Python, Perl и т.д.) с помощью специального модуля Apache (mod_php, mod_python, mod_perl и др.).
  2. Хотя вы и можете использовать сервер Tomcat для статических веб-страниц, но это будет менее эффективно, чем использование Apache. Например, Tomcat заранее загружает виртуальную машину Java и другие Java-библиотеки, которые могут быть ненужными для работы вашего сайта.
  3. Tomcat также хуже настраиваемых в сравнении с другими веб-серверами. Например, для запуска WordPress, лучшим выбором будет стандартный HTTP-сервер, такой как Apache или NGINX.

Установка веб-сервера Apache

Последнее обновление: 20.10.2017

После загрузки пакета с Apache распакуем загруженный архив. В нем найдем папку непосредственно с файлами веб-сервера — каталог Apache24.
Переместим данный каталог на диск C, чтобы полный путь к каталогу составлял C:/Apache24.

Теперь нам надо установить Apache в качестве службы Windows. Для этого запустим командную строку Windows от имени администратора и перейдем в каталог веб-сервера с помощью команды

cd C:\Apache24\bin

Далее установим Apache в качестве службы с помощью команды:

httpd.exe -k install

Если установка завершится удачно, то в командная строка отобразит сообщение «The Apache2.4 service is successfully installed». Также будет проведено тестирование сервера:

В моем случае, как отображено выше на картинке, Apache не смог подключиться к порту 80, который стоит по умолчанию в конфигурации, так как у меня
порт 80 прослушивается другим веб-сервером — IIS. Это одна из распространенных проблем при запуске Apache. Чтобы ее решить, нам надо либо отключить службу IIS,
либо указать для Apache новый порт. Я выберу второй путь.

После установки проведем конфигурацию сервера, чтобы связать его с ранее установленным интерпретатором PHP. Для этого в папке C:\Apache24\conf
найдем файл httpd.conf и откроем его в текстовом редакторе.

Файл httpd.conf настраивает поведение веб-сервера. Мы не будем подобно затрагивать его описания, а только лишь произведем небольшие изменения,
которые потребуются нам для работы с PHP.

Во-первых, найдем строку

Listen 80

Это строка указывает на прослушиваемый порт. По умолчанию 80-й порт. Если конфликтов с портами не возникает можно оставить так, как есть.
Я же изменю на 8080 порт.

Listen 8080

Далее найдем строчку

#ServerName www.example.com:80

и изменим на

ServerName localhost:8080

Теперь подключим PHP. Для этого найдем в файле httpd.conf конец блока загрузки модулей LoadModule

//......................
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule xml2enc_module modules/mod_xml2enc.so

И в конце этого блока добавим строчки

LoadModule php7_module "C:/php/php7apache2_4.dll"
PHPIniDir "C:/php"

Далее укажем место, где у нас будут храниться сайты. Для этого создадим, например, на диске С каталог localhost. Затем найдем в файле httpd.conf
строку

DocumentRoot "c:/Apache24/htdocs"

По умолчанию в качестве хранилища документов используется каталог «c:/Apache24/htdocs». Заменим эту строку на следующую:

DocumentRoot "c:/localhost"

Изменим пути файлам, в которые будут заноситься сведения об ошибках или посещении сайта. Для этого найдем строку

ErrorLog "logs/error.log"

И заменим ее на

ErrorLog "c:/localhost/error.log"

Далее найдем строку

CustomLog "logs/access.log" common

И заменим ее на

CustomLog "c:/localhost/access.log" common

И также найдем блок и добавим в него две строчки:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

И в конце найдем блок :


    DirectoryIndex index.html

И заменим его на следующий:


	DirectoryIndex index.html index.htm index.shtml index.php

Это минимально необходимая конфигурация, которая нужна для работы с PHP. Чтобы управлять сервером (запускать, останавливать, перезапускать), мы можем использовать утилиту, которая идет в комплекте —
ApacheMonitor.exe. Данную утилиту можно найти в каталоге C:\Apache24\bin

Запустим утилиту. В трее появится значок ApacheMonitor. Нажмем на него и в появившемся контекстном меню выберем пункт Start.

Если у нас все настроено правильно, то должен запустить веб-сервер.

<?php phpinfo();
?>

В данном случае мы создали простейший скрипт, который выводит общую информацию о PHP. Теперь обратимся к этому скрипту, набрав в строке браузера
адрес http://localhost:8080/index.php

Что тут произошло? При обращении к сайту на локальной машине в качестве адреса указывается http://localhost.
Так как мы указали в качестве порта 8080, то также в адресе указывается через двоеточие порт. Если бы мы использовали 80-й порт, который используется по умолчанию,
то его не надо было указывать.

Затем указывается имя ресурса, к которому идет обращение. В данном случае в качестве ресурса используется файл
index.php. И так как в файле httpd.conf в качестве хранилища документов веб-сервера указан каталог C:\localhost, то именно в этом каталоге и будет
веб-сервер будет производить поиск нужных файлов.

И поскольку выше при конфигурировании мы указали, что в качестве главной страницы может использоваться файл index.php, то мы можем также обратиться к
этому ресурсу просто http://localhost:8080/

На этом установка и настройка веб-сервера Apache завершена, и мы можем создавать свои сайты.

НазадВперед

Дополнительные средства защиты

Скрыть версию сервера

Это одно из первых соображений, поскольку вы не хотите показывать, какую версию веб-сервера вы используете. Её разоблачение означает, что вы помогаете хакеру ускорить процесс разведки.
Перейдите в папку:

Измените с помощью редактора. Добавьте следующую директиву и сохраните :

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

Защита от атаки Clickjacking

Атака данного типа позволяет злоумышленнику выполнить клик на сайте-жертве от имени легитимного посетителя.

Чтобы обезопасить свой веб-сервер, вам нужно использовать заголовок «X-FRAME-OPTIONS»
Вы можете сделать это, отредактировав файл .

Добавьте следующую строку внутри :

Сохраните файл и перезапустите Apache.

Теперь попробуйте открыть веб-браузер для доступа к веб-серверу. Проверьте заголовки ответа HTTP в firebug. Вы должны увидеть X-Frame-Options.

Защита от атаки XSS

XSS (англ. Cross-Site Scripting — «межсайтовый скриптинг») является одной из наиболее распространённых атак на уровне приложений.

Вы можете защититься от неё, отредактировав файл конфигурации Apache.

Добавьте следующую строку внутри :

Ссылка на основную публикацию