Почему вдруг слетели настройки конфигурационных файлов apache. Установка и настройка сервера Apache. Практика развертывания zip-архива

Конфигурационные файлы Apache

В большинстве пакетов основной конфигурационный файл Apache носит имя httpd.conf . В зависимости от версии системы этот файл может находиться в разных каталогах, но формат его остается неизменным. В системах Caldera и SuSE файл httpd.conf содержится в каталоге /etc/httpd ; в Debian и Slackware он размещается в /etc/apache (Slackware предоставляет файл-образец /etc/apache/httpd.conf.default ; для обеспечения работы сервера надо лишь переименовать данный файл и внести в него необходимые изменения); в Red Hat и TurboLinux файл httpd.conf размещается в каталоге /etc/httpd/conf/ .

Как обычно, строки файла httpd.conf , начинающиеся с символа # , содержат комментарии. Опции, определяющие конфигурацию сервера, задаются в следующем виде:

Директива Значение

Директива - это имя, с которым может быть связано некоторое значение. Значением может быть число, имя файла или произвольная строка символов. Некоторые директивы позволяют задавать несколько подопции. В этом случае имя директивы помещается в угловые скобки. Пример подобной директивы приведен ниже.

Options FollowSymLinks

AllowOverride None

В последней строке содержится имя той же директивы, которая указана в начале, но для нее не задается никакое значение. Имени директивы, завершающей блок, предшествует косая черта.

В некоторых случаях для настройки Apache используются дополнительные конфигурационные файлы, перечисленные ниже. Обычно они размещаются в том же каталоге, что и httpd.conf .

Access.conf . Ссылка на этот файл формируется с помощью директивы AccessConfig и содержится в файле httpd.conf . В файле access.conf чаще всего задаются директивы , определяющие особенности доступа к указанным в них каталогам. В настоящее время этот файл обычно остается пустым, а иногда в качестве значения AccessConfig задается /dev/null , что запрещает использование access.conf .

Mime.types . Для того чтобы сообщить Web-броузеру о том, как должны обрабатываться данные, Web-сервер использует стандарт MIME (Multipurpose Internet Mail Extensions - многоцелевые почтовые расширений Internet). Например, MIME-тип text/plain означает, что данные представляют собой обычный текст, а image/jpeg определяет графические данные в формате JPEG (Joint Photographic Experts Group - объединенная группа экспертов по обработке фотоснимков). Файл mime.types содержит информацию о соответствии между MIME-типами и расширениями файлов. Например, имена файлов, оканчивающиеся.txt и.asc , связываются с MIME-типом text/plain . Если такое соответствие задано неправильно, Web-броузер будет испытывать затруднения при обработке некоторых типов файлов. Файл, поставляемый в составе пакета, обеспечивает обработку практически любых типов данных, которые могут быть помещены на Web-страницу. Если же вам надо использовать редко встречающиеся типы, вам придется добавить в этот файл новые записи.

Magic . Этот файл также позволяет определять соответствие между MIME-типами и данными. При анализе информации можно обнаружить специфические признаки того или иного типа. Так, например, многие файлы содержат специальные ключи - "магические" байтовые последовательности. Эти последовательности, преобразованные в текстовый вид, указываются в файле magic . Если вы подробно не изучили формат этого файла, вносить изменения в него не рекомендуется. Структура файла magic в данной главе рассматриваться не будет.

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

8.2.2. Основные конфигурационные файлы Если вы прочитали разд. 8.2.1 (или если смотрели файл /etc/inittab), то представляете, что в обычной ситуации процесс init помимо запуска процессов getty выполняет 2 основных действия: запускает скрипт rc.sysinit из каталога /etc/rc.d; запускает скрипт rc

Из книги Linux-сервер своими руками автора

12.5. SSL и Apache 12.5.1. Установка SSL SSL (Secure Sockets Layer) является методом шифрования, разработанным компанией Netscape для обеспечения безопасности в Интернет. Этот метод поддерживает несколько способов шифрования и обеспечивает аутентификацию как на уровне клиента, так и на уровне

Из книги Asterisk™: будущее телефонии Второе издание автора Меггелен Джим Ван

Из книги Сетевые средства Linux автора Смит Родерик В.

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

Конфигурационные файлы DHCP Большинство дистрибутивных пакетов Linux содержит сервер DHCP, разработанный Internet Software Consortium (http://www.isc.org/products/DHCP/). Internet Software Consortium (ISC) в конце 2000 г. выпустил версию 3.0 DHCP, но в начале 2002 г. многие версии Linux все еще поставлялись со старой версией 2.0

Из книги Ubuntu 10. Краткое руководство пользователя автора Колисниченко Д. Н.

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Конфигурационные файлы Exim Главный конфигурационный файл Exim называется exim.conf. Обычно он располагается в каталоге /etc. В состав этого файла входят записи, представленные в следующем формате:опция = значениеКак обычно, строки, содержащие комментарии, начинаются с символа #.

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

Из книги Разработка ядра Linux автора Лав Роберт

16.1. Установка Apache В зависимости от дистрибутива, пакет, из которого устанавливается веб-сервер Apache, может называться apache или httpd, а пакет с документацией - apache-docs или httpd-manual соответственно. В первом случае вам понадобится установить еще пакет apache-common, содержащий

Из книги автора

16.2. Настройка Apache. Файлы конфигурации После установки Apache следует отредактировать следующие файлы:? /etc/httpd/conf/httpd.conf - основной файл конфигурации. Для Apache 2.x. этот файл может также называться httpd2.conf;? /etc/logrotate.d/apache или /etc/logrotate.d/httpd (в версии 2.0) - файл ротации

Из книги автора

16.10. SSL и Apache 16.10.1. Установка SSL SSL (Secure Sockets Layer) является методом шифрования, разработанным компанией Netscape для обеспечения безопасности передачи данных. Этот метод поддерживает несколько методов шифрования и обеспечивает аутентификацию как на уровне клиента, так и на

Из книги автора

19.2. Конфигурационные файлы загрузчика В листинге 19.1 приведен основной конфигурационный файл GRUB2 - /boot/grub/grub.cfg. Он не поддается редактированию вручную. Для его создания используется утилита /usr/sbm/grub-mkconfig, которая генерирует этот конфигурационный файл на основе шаблонов,

Из книги автора

26.2.3. Конфигурационные файлы сервера Файлы конфигурации сервера находятся в каталоге /etc/apache2. Основной файл конфигурации называется apache2.conf. По умолчанию его настройки устроят большинство пользователей. Если вы планируете использовать Web-сервер не только локально (для

Из книги автора

Исходные файлы и выполняемые файлы Наша замечательная программа, несмотря на свою лаконичность и простоту, для компьютера является совершенно бессмысленным набором символов, так как он "не понимает" директив типа #include или printf. Он понимает только специальный язык,

Из книги автора

5.3.1. Конфигурационные файлы Все настроечные файлы протокола SSH находятся в директории /etc/ssh. Здесь можно увидеть следующий перечень:? файл конфигурации SSH-сервера - sshd_config;? файл конфигурации SSH-клиента - ssh_config;? файлы ключей для различных

Из книги автора

Конфигурационные параметры отладки ядра Существует несколько конфигурационных параметров, которые помогают в отладке и тестировании кода ядра и которые включаются во время компиляции. Эти параметры доступны в пункте Kernel hacking меню редактора конфигурации ядра. Все эти

Linux-сервер своими руками Колисниченко Денис Николаевич

12.2.2. Конфигурирование Apache с помощью netconf

Практически все параметры Web-сервера Apache можно установить, используя конфигуратор netconf (или linuxconf). Для этого запустите netconf и перейдите на вкладку Server Tasks, а затем нажмите на кнопку «Apache Webserver» (см. рис. 12.2).

Рис. 12.2. Конфигурирование Apache с помощью netconf

С помощью netconf вы легко можете установить основные параметры Apache (см. рис. 12.3), определить виртуальные хосты, установить параметры подкаталогов, определить спецификацию каталогов и модулей, а также установить параметры модуля mod_ssl (см. рис. 12.4), конфигурирование которого рассмотрено ниже в этой главе.

Рис. 12.3. Основные параметры Apache

Рис. 12.4. Конфигурирование модуля mod_ssl

Из книги Разгони свой сайт автора Мациевский Николай

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

Конфигурируем Apache 2 Для Apache 2 описанные действия выглядят гораздо проще.# добавляем Content-Type для всех файлов с расширением.gzAddEncoding gzip .gz# включаем сжатие для HTML- и XML-файловAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xml# и для иконок (об этом чуть ниже)AddOutputFilterByType DEFLATE image/x-icon#

Из книги Linux-сервер своими руками автора

Конфигурируем Apache Тесты под Konqueror показали, что этот браузер не понимает архивированных файлов (CSS и JavaScript), поэтому чтобы уберечь десятую долю процента посетителей от сердечного приступа (когда они увидят сайт без соответствующих стилей), стоит добавить его в этот набор

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

Из книги Ubuntu 10. Краткое руководство пользователя автора Колисниченко Д. Н.

Конфигурация Apache 2 # выставляем заголовок Content-Encoding: gzipAddEncoding gzip .gz# с самого начала включаем gzip для текстовых файловAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xml# и для favicon.icoAddOutputFilterByType DEFLATE image/x-icon# также для CSS- и JavaScript-файловAddOutputFilterByType DEFLATE text/cssAddOutputFilterByType DEFLATE

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

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

Из книги автора

12 Сервер Apache Эта глава посвящена популярному WWW-серверу Apache. Сервер Apache разработан и поддерживается организацией Apache Project. Первоначально, сервер Apache был разновидностью сервера Web-сервера NCSA, разработанного в Национальном центре разработок суперкомпьютеров Иллинойского

Из книги автора

12.1. Установка Apache Для установки сервера Apache необходимо установить пакеты apache и apache-docs. В первом из них находится сам сервер, а во втором - документация. Желательно устанавливать самую новую версию. В последних версиях вам нужно установить еще и пакет apache-common, содержащий

Из книги автора

12.5. SSL и Apache 12.5.1. Установка SSL SSL (Secure Sockets Layer) является методом шифрования, разработанным компанией Netscape для обеспечения безопасности в Интернет. Этот метод поддерживает несколько способов шифрования и обеспечивает аутентификацию как на уровне клиента, так и на уровне

Из книги автора

12.5.2. Подключение SSL к Apache Теперь осталось подключить mod_ssl к Apache. При этом следует учитывать, что вам нужна версия mod_ssl, которая совместима с вашей версией Apache. Иначе модуль mod_ssl будет некорректно работать или вообще откажется что-либо делать. Последние цифры в названии

Из книги автора

16.1. Установка Apache В зависимости от дистрибутива, пакет, из которого устанавливается веб-сервер Apache, может называться apache или httpd, а пакет с документацией - apache-docs или httpd-manual соответственно. В первом случае вам понадобится установить еще пакет apache-common, содержащий

Из книги автора

16.10. SSL и Apache 16.10.1. Установка SSL SSL (Secure Sockets Layer) является методом шифрования, разработанным компанией Netscape для обеспечения безопасности передачи данных. Этот метод поддерживает несколько методов шифрования и обеспечивает аутентификацию как на уровне клиента, так и на

Из книги автора

16.10.2. Подключение SSL к Apache Версия mod_ssl, которую вам нужно установить, должна быть совместима с вашей версией Apache, иначе модуль mod_ssl будет некорректно работать или вообще откажется что-либо делать. Последние цифры в названии модуля указывают на совместимость с определенной

Из книги автора

16.13. Защита сервера Apache По окончании настройки сервера запретим изменение и удаление файла конфигурации:# chattr +i /etc/httpd/conf/httpd.confПосле этого вы (и никто другой) не сможете изменить этот файл даже с помощью конфигуратора.Желательно также установить права 511 для

Из книги автора

26.2.1. Установка Apache и PHP Запустите менеджер Synaptic. В поле Быстрый поиск введите apache. Щелкните правой кнопкой мыши на пакете apache2 и выберите команду Отметить для установки. Менеджер пакетов сообщит вам, что нужно установить дополнительные пакеты (рис. 26.1). Нажмите кнопку

Из книги автора

5.1.1. netconf Эта команда запускает конфигуратор сети (рис. 5.1). Программа netconf имеет удобный графический интерфейс и позволяет настраивать сетевые параметры, не задумываясь о конфигурационных файлах. Рис. 5.1. Окно программы

Хостинг сайтов

Можно реализовать четырьмя способами:

    По умолчанию в папке /var/www/html. Доступом является http://localhost/

    Настройки основного хостинга. Например, http://localhost/phpmyadmin

    В любой папке с помощью модуля виртуальных хостов. Например, http://mysite/

    В папке пользователя public_html (модуль userdir). Например, http://localhost/~username

Установка

Для установки Apache выполните в терминале:

sudo apt-get install apache2

Настройка

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

В Ubuntu конечный файл настройки (apache2.conf) расделён на несколько файлов, расположенных в разных поддиректориях. Подробней написано в комментариях файла apache2.conf .

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

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

sudo a2enmod < mod-name>

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

sudo a2enconf < config-name>

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

sudo a2ensite < site-name>

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

Для указания кодировки по умолчанию следует использовать директиву AddDefaultCharset в файле /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

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

sudo a2ensite host1.server1

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

sudo a2dissite host1.server1

Модули

mod_userdir

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

mkdir ~/ public_html

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

sudo a2enmod userdir

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

sudo adduser $USER www-data

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

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

CGI

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

sudo a2enmod cgi

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

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

Настройка HTTPS в Apache

Веб-сервер Apache полностью поддерживает работу по HTTPS. Чтобы активировать поддержку HTTPS на уже установленном Apache, необходимо выполнить следующее.

Создание ключа и ssl-сертификата

Использование самоподписанных сертификатов хоть и защищает от пассивного прослушивания, тем не менее не гарантирует клиентам, что сервер является именно тем сервером, который им нужен. Преимуществом самоподписанных сертификатов является их бесплатность. Сертификат, подписанный компанией-сертификатором (Certificate authority), стоит денег.

Для создания ключа и сертификата вводим команду:

Openssl req -new -x509 -days 30 -keyout server.key -out server.pem

На вопрос «Enter PEM pass phrase:» отвечаем паролем, подтверждаем и запоминаем.

На все последующие вопросы отвечаем произвольно, можно просто щелкать по Enter , соглашаясь с предложенными вариантами, только на вопрос «Common Name (eg, YOUR name) :» отвечаем именем сайта, для которого создаем сертификат, например www.example.com.

После ответа на все вопросы в директории должны появиться два новых файла - server.pem (ключ) и server.crt (сертификат).

Чтобы использовать сгенерированный ключ, нужно знать пароль, введённый нами, и Apache будет спрашивать его у нас при загрузке, а к чему нам лишние вопросы от демонов? :) Поэтому снимаем пароль с ключа:

cp server.key{ ,.orig} openssl rsa -in server.key.orig -out server.key rm server.key.orig

Скопируем их в /etc/ssl и назначим файлу ключа права чтения только администратору:

sudo cp server.pem / etc/ ssl/ certs/ sudo cp server.key / etc/ ssl/ private/ sudo chmod 0600 / etc/ ssl/ private/ server.key

Настройка Apache

Для начала необходимо активировать mod_ssl:

sudo a2enmod ssl

А затем включить настройки HTTPS сайта по умолчанию:

sudo a2ensite default-ssl

Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к вашим сертификатам. Сам файл называется /etc/apache2/sites-enabled/default-ssl (или /etc/apache2/sites-enabled/default-ssl.conf).

SSLEngine on

добавить строчку

SSLProtocol all -SSLv2

чтобы запретить использование устаревшего протокола SSLv2.

# Публичный сертификат сервера SSLCertificateFile /etc/ssl/certs/server.pem # Приватный ключ сервера SSLCertificateKeyFile /etc/ssl/private/server.key

Теперь просто перезагрузите Apache:

sudo service apache2 restart

И если все параметры указаны верно, ваши сайты станут доступны по HTTPS.

Протокол HTTPS работает по 443 порту, поэтому если сервер находится за шлюзом, то необходимо на нём пробросить данный порт.

Перенаправление HTTP запросов на HTTPS

Если вы хотите запретить использование HTTP , то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Сделаем это с помощью mod_alias . Если он не включён - включаем:

sudo a2enmod alias sudo service apache2 restart

Затем изменяем файл /etc/apache2/sites-enabled/000-default , отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл добавляем директиву

Redirect / https://example.com/

При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.

Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS-страницу.

Для конфигурации Apache есть 4 основных подхода:

  1. Компиляция / инсталляция: сборка из исходников позволяет выбрать необходимые модули, установить нужные флаги, пути и т. д.
  2. Параметры командной строки: позволяют конфигурировать Apache при запуске.
  3. Глобальные конфигурационные файлы: главный файл по умолчанию называется httpd.conf.
  4. Локальные конфигурационные файлы: использование.htaccess.

Конфигурационные директивы в файле httpd.conf можно разбить на 3 категории:

  1. Директивы, контролирующие общий процесс работы.
  2. Директивы виртуальных хостов.
  3. Настройки виртуальных хостов.

К директивам первой группы относятся , , , , , .

Они применяются в привязке к конкретной файловой структуре либо к URL. В первом случае это , во втором - . Apache может обслуживать одновременно несколько веб-сайтов с различными именами, реализуя виртуальный хостинг, что делается на основе директивы . Для того, чтобы изменения в главном конфиге вступили в силу, сервер должен быть перезапущен.

Локальная конфигурация реализована на основе.htaccess. Имя этого файла можно изменить в секции AccessFileName. Изменения в файле.htaccess вступают в силу немедленно, без перезапуска, его действие распространяется на каталог, в котором он лежит, со всеми вложенными подкаталогами. Избыточное использование.htaccess может повлиять на производительность сервера.

Содержимое основного конфига httpd.conf можно разделить на 5 секций:

  1. Глобальные директивы.
  2. - применимы к выиртуальным серверам.
  3. , - применимы к каталогам.
  4. , - применимы к файлам.
  5. , - применимы к URL.

Директива может иметь несколько параметров, тип параметров может различаться.

Каждая директива обрабатывается определенным модулем.

Например, директива

Следующая директива будет обработана модулем mod_env, будет установлена переменная окружения:



Содержимое локального файла.htaccess можно разделить также на 5 секций:

  1. AuthConfig - контроль авторизации.
  2. Limits - контроль доступа.
  3. Options - конкретные настройки каталогов.
  4. FileInfo - установка атрибутов для документов.
  5. Indexes - индексация каталогов.

В Ubuntu apache находится по адресу /etc/apache2 и, помимо конфигурационных файлов, содержит директории "sites-available" и "sites-enabled". В первой директории находится список сайтов, которые доступны на сервере, а во второй - те, которые обслуживаются сервером. Это дает возможность быстро добавлять и удалять сайты, которые будут обслуживаться сервером, без необходимости физически удалять их из DocumentRoot. В дополнение к этому другие файлы настроек могут быть добавлены с использованием инструкции Include, а символы группировок могут использоваться для включения множества файлов настроек. Любая инструкция может быть добавлена в любой из этих файлов настроек. Сервер также читает файлы, содержащие типы mime документов; имя файла задается инструкцией TypesConfig, обычно через /etc/apache2/mods-available/mime.conf, который также может включать дополнения и переопределения, а по умолчанию используется /etc/mime.types.

Профессиональная разработка всегда ориентируется на собственные инструменты - это гарантия надежного и эффективного исполнения обязательств. Собственный хостинг и сервера различного назначения в спектре востребованных конфигураций расширяют сферы решаемых задач, повышают безопасность и конфиденциальность разработок.

Собственный HTTP: Apache, PHP, MySQL

Веб-сервер Apache уверенно лидирует с прошлого века, поскольку обеспечивает быструю, надежную и безопасную работу. Физическая машина и сервер под управлением Linux или Windows - это фундамент, HTTP - это надстройка, хотя по сути это протокол передачи данных. В качестве сервера может быть использована Windows-машина, но предпочтение отдается семейству линуксоидов.

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

Считается, что сервера Apache обслуживают более 50 % всех активных веб-ресурсов, остальная доля приходится на подобные изделия от Microsoft, Sun и др. Собственно, физический сервер и его операционная система могут быть любыми. HTTP-сервер ставится на готовую платформу и работает параллельно с другими приложениями на ней. Apache считается родным для всего семейства линуксоидов, но в каждом конкретном случае у него есть особенности.

Бесплатность, простота, надежность отличают линукс-системы и их приложения. Не важно, что использовать: установка и настройка Apache на Ubuntu не намного отличается от CentOs, Debian или FreeBSD. Часто играет роль насыщенность той или иной операционной системы дополнительным программным обеспечением.

Семейство линуксов невелико по количеству «родственников» на линии того или иного ядра системы. Отличия носят больше социальный характер - в смысле привязанности разработчиков к формулировке и воплощению возможностей операционной системы.

В реальности для решения конкретной задачи поднять хостинг необходимо определиться с нужным функционалом, требуемой производительностью, концептуальными приоритетами и конкретным выбором представителя Linux, либо же остановиться на Windows Server.

Смещение приоритетов локальной разработки

Трудно оценить роль глобальной сети в развитии программирования, но легко заметить реальное смещение центра тяжести: локальные приложения стало принято исполнять как веб-ресурс. Просто написать программу для локального компьютера - это драйвера, антивирусы, небольшие проекты с простым функционалом. Язык программирования... VBA, хотя можно применить C/C++ или C#.

Любой информационный проект - это веб-ресурс в локальной сети компании, который частично может быть доступен из глобальной сети, например для координирования действий сотрудников за пределами офиса, находящихся в дороге или командировке.

MySQL, PHP, Apache: настройка на локальный вариант применения - совсем иная динамика приложения, необходимого функционала. Современные компании, вне зависимости от размера, количества сотрудников и сферы деятельности, всерьез рассматривают интернет-программирование, как локальное, так и глобальное.

При этом локальное может быть распределенным: офисы компании могут находиться где угодно, но это не Интернет, а распределенная локальная сеть компании.

MySQL, PHP, Apache настройка в локальной форме:

  • легко дублируется по компьютерам сети;
  • предоставляет возможность динамично менять активную составляющую или сопоставлять ее с образцом для оценки попыток взлома;
  • дает повод разработать систему безопасности, лишенную риска быть атакованной классическими сетевыми методами.

Если учесть, что MySQL и Apache в среде Windows - это службы, а PHP-код - это обычный текст, обрабатываемый инструментом (интерпретатор PHP), вызываемым в нужный момент времени HTTP-сервером, то уровень изменяемости, мобильности и переносимости кода будет значительно выше, чем у локальных инструментов разработки.

Подготовка к инсталляции Apache

Еще в эпоху «начала начал» операционная система Unix определила негласные принципы лояльности. С тех пор все, что делалось под юниксоподобные системы, автоматически транслировалось на другие платформы. Настройка Apache на Windows выполняется крайне просто, но для решения серьезных задач потребуется хорошая квалификация и детальное представление о конфигурации HTTP-сервера.

Прежде всего нужно скачать последнюю версию сервера (сегодня это версия 2.4.33 от 17.03.2018) с официального сайта в формате zip-архива. Следует иметь в виду изначально, что версии серверов многочисленны и предлагаются на множестве сторонних ресурсов, поэтому важно выбрать официальную реализацию, размещенную на веб-ресурсе, вызывающем доверие.

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

Редактирование файла конфигурации

Конфигурация сервера определяется набором конфигурационных файлов, расположенных в папке conf. Основной файл конфигурации Apache - httpd.conf.

В подавляющем большинстве случаев необходимо внести правки в основной файл, уточнить содержимое файлов, отвечающих за ssl и виртуальные хосты. Остальные настройки обычно делаются в процессе по мере возникновения проблем или решения задач. В основном дальнейшие настройки связаны с оптимизацией работы Apache или расширением его возможностей.

Для успешного запуска сервера достаточно внести правку только в одну строку (по порядку - 38-ю) - и настройка Apache завершена.

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

Процедура размещения сервера

К расположению сервера нужно отнестись внимательно. Сам по себе Apache интересен, но когда он оснащен PHP и MySQL, он интересен вдвойне. Лучше, когда все, что связано с веб-разработкой, находится в одном месте. Можно согласиться на дефолтные пути, но современное программирование не столь идеально в своей реализации, так что держать руку на пульсе придется однозначно и часто. Кроме того, при выборе удобного места будут доступны все файлы инициализации и конфигурирования, а также логи по работе установленных продуктов.

Скачанный официальный zip-архив Apache нужно развернуть в выбранном месте, разместив раздельно инструмент и работу. В данном примере папка C:\SCiA - это инструмент (Apache24, PHP, MySQL, ...), а папка SCiB - это работа, собственно, сайтов, которые создаются, сопровождаются или модернизируются.

В результате первого этапа работы в папку C:\SCiA\Apache24 попадают только подпапки bin, cgi-bin, conf, error, ... со всем их содержимым.

Редактирование файла hosts

Второй этап состоит в том, чтобы правильно настроить файл hosts - указание на то, какие IP-адреса на данном компьютере сопоставлены с какими именами. Если на компьютере будет вестись разработка или сопровождение только одного сайта, то можно ничего не менять.

Базовый IP - 127.0.0.1 обычно всегда указывает на localhost. Рабочий файл hosts находится по адресу c:\Windows\System32\drivers\etc и выглядит так, как показано ниже.

Чтобы поместить файл hosts в нужное место, нужно воспользоваться командной строкой в режиме администратора. Подготовить правильное содержание файла можно в любом месте файловой системы компьютера, но записать его по адресу c:\Windows\System32\drivers\etc можно только тем инструментом, который обладает правами администратора. Через командную строку это сделать проще всего.

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

Нет ничего проще. Достаточно запустить командную строку от имени администратора и перейти в папку C:\SCiA\Apache24. Поскольку это путь в системе Windows, то используются прямые слэши. В конкретном случае путь может быть иным. Но если с именем папки для размещения святой троицы - Apache, PHP и MySQL - еще можно как-то экспериментировать, то менять имена папок для каждого из них нецелесообразно.

В данном случае архив сервера развернут в папке С:/SCiA/Apache24, следовательно, нужно в папке bin написать команду:

  • httpd.exe -k install

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

Окно (1) командной строки - установка сервиса, окно (2) - список служб, в которых объявился сервер, окно (3) - исходный файл index.html, расположенный по адресу С:/SCiB/localhost/www, окно (4) - результат работы сервера.

В этом примере умышленно была допущена ошибка: вместо установки значения переменной SRVROOT были внесены многочисленные правки «по старинке»: вручную все было изменено. Это не самое лучшее решение. Прежде чем применять знания, следует ознакомиться с текущей версией продукта. Как правило, все быстро меняется, и знания следует применять «со знанием дела и пониманием текущей ситуации».

Практика развертывания zip-архива

Современные сайты далеко не всегда пишутся на системах управления сайтами. Есть много ручного труда. Проблема переноса сайта на другой хостинг обусловила хорошее решение - zip-архив. Свернули контент в одном месте, развернули - в другом.

Наличие инсталлятора - хорошая практика, но динамика современных информационных технологий не дает времени на написание красивых инсталляций. Использовать установку через развертывание zip-архива - современно, практично и удобно. В таком варианте настройка Apache ограничивается изменением файлов конфигурации.

При установке сервера важно указать:

  • где он находится;
  • где находится веб-ресурс (localhost);
  • использование ssl;
  • виртуальные хосты.

Последняя позиция актуальна, когда на сервере предполагается вести разработку или сопровождение сразу нескольких ресурсов. Для реального разработчика это обязательное решение: даже если он обеспечивает работу одного сайта, не будет лишним иметь запасной вариант.

Джентльменские наборы

Простота развертывания zip-архива очевидна, Apache (установка и настройка) - всего два-три клика. Однако результат, когда были популярны инсталляторы, был эквивалентным. Разработчик просто тратил больше времени на разработку очередной версии своего продукта. Установка сервера, серверного языка и базы данных - это, по сути, просто наборы файлов, запуск сервисов, файл hosts и пути по умолчанию в переменной операционной системы path.

Появление "денвера" и ему подобных джентльменских наборов разработчика стало революционным шагом по линии простоты и удобства, но заблуждаться не стоит. Революция и программирование - вещи абсолютно не совместимые. Первое - это дитя конфликта и его бурного решения, второе - это серьезное дело, требующее абсолютного спокойствия, пунктуальности, точности, системности, внимательности, безопасности, надежности.

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

В большинстве случаев разработка веб-ресурсов - это достаточно длительные процессы, в которых требования к сервисам (Apache, PHP, MySQL, ...) меняются быстро, но всегда есть время на понимание очередной задачи и ее оптимальное решение. Но это не повод идти на поводу джентльменских наборов. Время течет, а джентльмен - не меняется, это гораздо более веский аргумент, чем декларация «денвер» - это просто, быстро и доступно.

Несколько сайтов - один сервер

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

Сервер может быть использован как база данных, как пункт передачи информации, как фильтр, как парсер, как рабочий механизм в более глобальном информационном процессе. Вследствие сказанного настройка виртуальных хостов Apache - практически всегда обязательная процедура.

Один сервер может поддерживать сколько угодно веб-ресурсов, для этого нужно в файле httpd.conf снять комментарий со строки 501:

  • # Include conf/extra/httpd-vhosts.conf

и описать все необходимые хосты в файле

  • extra\httpd-vhosts.conf.

Может потребоваться уточнить, какие порты и IP слушает сервер, но это отдельная тема, на первое время можно ограничиться тем, что есть.

Следует отметить, что в примере для удобства описания реальных виртуальных веб-ресурсов (а их много) введена переменная (DOCROOT) с путем к общей папке всех веб-ресурсов, доступных через установленный сервер.

Настройка Apache SSL доступна аналогичным образом. В файле httpd.conf нужно просто оставить «как есть» строки с 524 по 531, которые отвечают за работу SSL.

Простота и сложность Apache

Времена, когда настройка сервера действительно представляла собой сложную задачу, давно прошли. Сегодня настройка Apache - очень простая процедура, которая не требует от разработчика особой квалификации.

Три простых действия:

  • развернуть архив;
  • изменить файл конфигурации;
  • инсталлировать сервер.

В результате Apache функционирует в полном объеме. Если не брать в расчет тонкости процесса работы сервера на максимальной нагрузке или выполнять локальную разработку на Windows-компьютере, дополнительных знаний не потребуется.

Сложности могут возникнуть на Linux-системах. Существенно различное представление о файловой системе, правах пользователей и групп, а также организация процесса взаимодействия с другими приложениями требуют от разработчика большей компетенции и представления о том, как работают Linux-компьютеры.

Настройка Apache на любой линуксовой системе открывает перед разработчиком гораздо больше возможностей и дает выход в локальную сеть и Интернет. По сложившейся традиции Windows-компьютер - это локальная рабочая станция, и сервер там внутренний. Linux-компьютер - и узел локальной сети или точка в интернет-пространстве.

Профессиональная среда разработчика

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

Эта логика предполагает наличие хотя бы одного сервера в сети на платформе CentOS, Ubuntu, FreeBSD, рабочих станций на Windows. Оптимально иметь два Linux-сервера (основной и вспомогательный), настройку Apache для локального компьютера в среде Windows. В случае вирусной атаки или непредвиденной ситуации вспомогательный сервер станет на замену основному, а основной - на ремонт и восстановление. Заменить локальную установку Apache на рабочей станции (под Windows) можно из архива.

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



Понравилась статья? Поделиться с друзьями: