Введение
Для того, чтобы остановить или перезапустить Apache, необходимо послать
сигнал запущенным процессам . Существует два способа
отправить подобные сигналы. Во-первых, вы можете послать сигналы непосредственно
процессам, используя команду unix
Обратите внимание,
что процессов в системе выполняется несколько,
однако вы не должны отсылать сигналы ни одному из них, кроме родительского —
его pid (идентификатор процесса) записывается в файл, путь к которому задается
директивой. Существуют три
сигнала, которые вы можете отправить родительскому процессу:
,
, и
— их значение будет объяснено ниже
Чтобы отправить сигнал родительскому процессу, вам следует набрать следующую команду:
Второй способ передать сигналы процессам — это
использование опции в командной строке с аргументами: ,
и , как будет описано ниже.
Это параметры командной строки для исполняемого файла ,
однако мы рекомендуем передавать их, используя скрипт ,
который передаст эти параметры программе .
После того, как будут отправлены сигналы процессу , вы можете
узнать о состоянии сервера, набрав:
ШАГ 4 инсталляция Apache как службы Windows
Приведенный выше способ запуска и остановки web сервера Apache прекрасно работает и им можно с успехом пользоваться, создав ярлык на исполняемый файл httpd.exe или написав .bat файлы с командами старта и остановки сервера. Однако более удобным вариантом будет использование Apache как системной службы Windows, что позволит запускать и останавливать Apache в автоматическом, полуавтоматическом режимах и вручную. Для этих действий можно будет использовать утилиту управления Apache службой Apache24\bin\ApacheMonitor.exe, которая входит в данный дистрибутив Apache. ApacheMonitor.exe это маленькая утилита, представлявшая собой оконную программку, висящую в системном трее и позволяющую выполнять запуск и остановку службы Apache и контролировать ее состояние. Такой подход дает некоторое удобство в работе с web сервером Apache как системной службой Windows. Поэтому, далее будут рассмотрены необходимые действия для установки Apache как системной службы Windows.
Для просмотра списка доступных команд Apache наберите в консоли:
>Z:\WebDevelopment\Apache24\bin\httpd help
или, находясь в каталоге с бинарниками Apache:
>httpd -h
и в консоли будет выведен краткий help по доступным командам Apache и их синтаксис:
>httpd -h Usage: httpd Options: -D name : define a name for use in directives -d directory : specify an alternate initial ServerRoot -f file : specify an alternate ServerConfigFile -C "directive" : process directive before reading config files -c "directive" : process directive after reading config files -n name : set service name and use its ServerConfigFile and ServerRoot -k start : tell Apache to start -k restart : tell running Apache to do a graceful restart -k stop|shutdown : tell running Apache to shutdown -k install : install an Apache service -k config : change startup Options of an Apache service -k uninstall : uninstall an Apache service -w : hold open the console window on error -e level : show startup errors of level (see LogLevel) -E file : log startup errors to file -v : show version number -V : show compile settings -h : list available command line options (this page) -l : list compiled in modules -L : list available configuration directives -t -D DUMP_VHOSTS : show parsed vhost settings -t -D DUMP_RUN_CFG : show parsed run settings -S : a synonym for -t -D DUMP_VHOSTS -D DUMP_RUN_CFG -t -D DUMP_MODULES : show all loaded modules -M : a synonym for -t -D DUMP_MODULES -t -D DUMP_INCLUDES: show all included configuration files -t : run syntax check for config files -T : start without DocumentRoot(s) check -X : debug mode (only one worker, do not detach)
Рекомендация: используйте с данными командами полный путь до файла httpd.exe как в примерах ниже.
Для инсталляции Apache как системной службы Windows нужно выполнить в консоли команду:
>Z:\WebDevelopment\Apache24\bin\httpd.exe -k install
Для деинсталяции Apache как системной службы Windows нужно выполнить в консоли команду:
>Z:\WebDevelopment\Apache24\bin\httpd.exe -k uninstall
После установки Apache в качестве системной службы Windows вы можете настроить работу этой службы стандартным для всех служб Windows способом в Консоли управления Microsoft — оснастке services.msc запустив ее в cmd.exe командой:
>services.msc
или воспользовавшись другими стандартными способами:
- Меню Пуск, в строке поиска наберите services.msc и нажмите клавишу Enter;
- Нажмите сочетание клавиш Win+R, наберите services.msc и нажмите клавишу Enter;
- Через оконный интерфейс по пути: Пуск->Панель управления->Администрирование->Службы
Установленная служба Apache будет иметь:
- название: Apache2.4;
- описание: Apache/2.4.23 (Win64) OpenSSL/1.0.2j;
- тип запуска: Автоматически.
Настройте необходимый вам вариант запуска службы стандартным способом.
Так же, для управления службой Apache2.4 вы можете воспользоваться описанной выше программой из дистрибутива сервера Apache24\bin\ApacheMonitor.exe. Для этого запустите указанный файл ApacheMonitor.exe и воспользуйтесь для запуска или остановки Apache кнопками в окне данной программы. В свернутом состоянии эта программа ‘висит’ в системном трее в виде иконки состояния службы Apache и может быть от туда вызвана.
Скриншот запущенной программы ApacheMonitor.exe
На этом Portable инсталляция Apache на Windows из zip архива закончена, далее можно приступать к индивидуальной настройке web сервера и организации виртуальных хостов.
Смотри также:
Еще, дополнительно, о настройке можно почитать на сайте Apache: .
ШАГ 3 ручной запуск Apache
Основным исполняемым файлом WEB сервера Apache является файл Apache24\bin\httpd.exe. Соответственно, Apache можно запустить на исполнение как процесс, кликнув по файлу httpd.exe или выполнить команду запуска этого файла в консоли, что будет равнозначно.
Для того, что бы запустить Apache из командной строки на Windows, перейдите в проводнике в директорию с файлом Apache24\bin\httpd.exe и, зажав клавишу Shift, нажмите правую кнопку мыши и в контекстовом меню выберите пункт «Открыть окно команд». Тогда командная строка Windows cmd.exe будет запущена уже в этом каталоге с бинарниками сервера и вам не нужно будет в команду включать полный путь до файла httpd.exe, а достаточно будет указать только сам файл с расширением. Если же вы запустил консоль в другом расположении, то включите, в приведенную ниже команду, полный путь к файлу httpd.exe.
Для запуска Apache необходимо набрать в консоли команду
-если вы находитесь в папке с исполняемым файлом apache httpd.exe:
>httpd.exe
или, если вы находитесь вне папки с исполняемым файлом apache httpd.exe, то укажите в команде полный путь исполняемому файлу apache:
>Z:\WebDevelopment\Apache24\bin\httpd.exe
Данная команда приведет к запуску WEB сервера Apache, при этом, консоль останется запущенной и в окне командной строки исчезнет приглашение на ввод команды в виде знака >. Если при выполнении этих команд командная строка закроется, значит apache не запустился по причине каких либо ошибок в его конфигурации, для этого смотрите основной файл лога apache.
Что бы запускать Apache вручную в окне командной строки из любого места файловой системы простой командой:
> httpd
,т.е. без привязки к каталогу инсталяции Apache и при этом не указывать полный путь к файлу httpd.exe, то нужно прописать в системную переменную PATH путь до каталога с исполняемым файлом apache, т.е. добавить в переменную path строку вида:
Как добавить в переменную path путь к папке с исполняемым файлом детально расписано в статье на примере PHP.
Если Apache запустился, то в диспетчере задач Windows появятся два активных процесса с именами файлов httpd.exe и описанием для них «Apache HTP Server». Это,собственно, и есть работающий WEB сервер Apache. То, что мы видим два процесса httpd.exe — это нормально. Это Apache модуль Multi-Processing (MPM) по умолчанию для операционных систем Windows. Он использует единый процесс управления, который запускает дочерний процесс, который, в свою очередь, создает потоки для обработки запросов.
Если же что то пошло не так и сервер не запускается, то читайте его журналы ошибок, которые расположены в каталоге: Apache24\logs
Для остановки Apache, запущенного вручную, вышеописанным способом, необходимо вернуться в консоль (в окно открытой командной строки) и нажать комбинацию клавиш Ctrl+C, и через несколько секунд сервер будет остановлен, о чем будет свидетельствовать отсутствие httpd.exe процессов в Диспетчере задач Windows и в окне командной строки снова появится курсор (знак >) ожидания ввода команды. Иногда бывает, что командная строка «виснет», в этом случае повторно нажмите Ctrl+C и если курсор ввода команды не появится, то нажмите Enter. Если с использованием комбинаций клавиш Ctrl+C не получается остановить Apache в консоли, то просто закройте окно командной строки и сервер будет остановлен. Так же можно остановить Apache, выполнив завершение процессов httpd.exe в Диспетчере задач Windows, если предыдущие способы остановки не сработают.
htdocs\index.html
Теперь когда web сервер Apache запущен можно обратиться к его дефолтовый html странице, которая настроена в httpd.conf как хост по умолчанию и физически располагается в каталоге Apache24\htdocs\index.html.
Для проверки работы Apache наберите в адресной строке браузера адрес:
http://localhost
Если сервер работает, то вы увидите стартовую дефолтового страницу web сервера Apache от Apache Haus с надписью IT WORKS, что будет говорить о том, что все прошло успешно и Apache полноценно функционирует.
Для проверки HTTPS соединения обратитесь в браузере по адресу:
https://localhost
Браузер запросит ваше подтверждение на использование данного сертификата. Нужно будет вручную разрешить использование этого сертификата, т.к. входящий в сборку сертификат предназначен только для тестирования https соединения и является самоподписным, поэтому он будет отклоняться браузером в начале и требовать вашего одобрения на использование. После добавления сертификата в разрешенные для браузера, откроется снова стартовая страница Apache, но соединение уже будет защищенное по https протоколу с использованием SSL шифрования.
Настройка Apache
Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.
Все настройки содержатся в папке /etc/apache/:
- Файл /etc/apache2/apache2.conf отвечает за основные настройки
- /etc/apache2/conf-available/* — дополнительные настройки веб-сервера
- /etc/apache2/mods-available/* — настройки модулей
- /etc/apache2/sites-available/* — настойки виртуальных хостов
- /etc/apache2/ports.conf — порты, на которых работает apache
- /etc/apache2/envvars
Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.
Сначала давайте рассмотрим главный файл конфигурации:
Timeout — указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.
KeepAlive On — очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.
MaxKeepAliveRequests 100 — максимальное количество запросов за одно соединение, чем больше, тем лучше.
KeepAliveTimeout 5 — таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.
User, Group — пользователь и группа, от имени которых будет работать программа.
HostnameLookups — записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.
LogLevel — уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error
Include — все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.
Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:
Здесь доступны такие основные опции:
AllowOverride — указывает нужно ли читать .htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All — разрешать все, None — не читать эти файлы.
DocumentRoot — устанавливает из какой папки нужно брать документы для отображенияа пользователю
Options — указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All — разрешить все, FollowSymLinks — переходить по символическим ссылкам, Indexes — отображать содержимое каталога если нет файла индекса.
Require — устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied — всем запретить, Require all granted — всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.
Order — позволяет управлять доступом к директории. Принимает два значения Allow,Deny — разрешить для всех, кроме указанных или Deny,Allow — запретить для всех, кроме указанных. Теперь мы можем запретить доступ к директории для всех: Deny from all, а затем разрешить только для приложения от losst.ru: Allow from losst.ru.
Здесь все эти директивы не используются, поскольку нас устраивают значения по умолчанию, но вот в файлах .htaccess они могут быть очень полезны.
У нас остался файл /etc/apache2/ports.conf:
В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.
Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.
Дальше поговорим немного о htacess. Совсем немного.
Сравнение SysV и systemd
Функции | SysV | systemd |
Зависимость D-Bus | Нет | Да |
Управление устройствами с помощью udev | Нет | Да |
Активация по таймеру | cron/at | Проприетарная |
Управление квотами | Нет | Да |
Автоматическая обработка зависимостей служб | Нет | Да |
Завершение процессов пользователей при выходе из системы | Нет | Да |
Управление пространством подкачки | Нет | Да |
Интеграция SELinux | Нет | Да |
Поддержка шифрованных HDD | Нет | Да |
Загрузка статических модулей ядра | Нет | Да |
Графический интерфейс пользователя (GUI) | Нет | Да |
Перечисление всех дочерних процессов | Нет | Да |
Совместимость с SysV | Да | Да |
Интерактивная загрузка | Нет | Да |
Переносимость на отличную от x86 архитектуру процессора | Да | Нет |
Параллельный запуск служб | Нет | Да |
Ограничение ресурсов для каждой службы | Нет | Да |
Легко расширяемый скрипт автозагрузки | Да | Нет |
Раздельные код и файл конфигурации | Да | Нет |
Автоматический расчет зависимостей | Нет | Да |
Подробный вывод отладочной информации | Да | Нет |
Количество файлов | 75 файлов | 900 файлов + Glib + D-Bus |
ШАГ 1 развертывание дистрибутива Apache
Сборка Apache 2.4.23 x64 от Apache Haus поставляется в zip архиве и не имеет инсталлятора Windows, поэтому считается портативным (portable) вариантом дистрибутива Apache. Portable версия имеет ряд удобств и позволяет разместить дистрибутив в любом каталоге файловой системы и самостоятельно настроить запуск Apache так как вам нужно.
Рекомендую для разрешения дистрибутива Apache выбрать каталог, путь к которому будет содержать только EN символы и не будет иметь пробелов, т.к. этот путь станет для Apache значением ServerRoot директивы, в которой задается домашняя директория WEB сервера.
В примерах этой статьи и скринкаста дистрибутив Apache будет развернут в директорию «Z:\WebDevelopment\Apache24» и, соответственно, ServerRoot директива будет определена как «Z:/WebDevelopment/Apache24».
Формат значения пути в директиве ServerRoot следующий:
- слеши прямые и одинарные;
- завершающего слеша нет;
- если есть пробелы, то путь должен быть в кавычках («path_to»),
- на Linux значение чувствительно к регистру символов.
Структура дистрибутива Apache
Сборка Apache 2.4.23 x64 от Apache Haus имеет следующую структуру каталогов:
|Apache24....................Домашняя директория Apache - ServerRoot |-- bin..................Директория с бинарниками Apache | `-- ... | `-- ApacheMonitor.exe...Программа монитор для управления Apache как Windows службой | `-- httpd.exe...........Главный исполняемый файл web сервера Apache | `-- ... |-- cgi-bin.......Директория обработчика для CGI program |-- conf..........Директория с конфигурационными файлами Apache | `-- extra....Директория с дополнительными конфигами Apache, которые подключаются в httpd.conf | | `-- httpd-ahssl.conf | | `-- httpd-autoindex.conf | | `-- httpd-dav.conf | | `-- httpd-default.conf | | `-- httpd-deflate.conf | | `-- httpd-info.conf | | `-- httpd-languages.conf | | `-- httpd-manual.conf | | `-- httpd-mpm.conf | | `-- httpd-multilang-errordoc.conf | | `-- httpd-proxy-html.conf | | `-- httpd-ssl.conf | | `-- httpd-userdir.conf | | `-- httpd-vhosts.conf | `-- original........Директория исходных конфигов от Apache, добавлена в сборку для справки | `-- ssl.............Директория для SSL сертификатов | `-- charset.conv....Конфиг установки кодировки, подключаются в httpd.conf | `-- httpd.conf......Главный конфиг Apache в данной сборке от Apache Haus | `-- magic...........Конфиг скриптов для модуля mime_magic | `-- mime.types......Конфиг установки MIME типов | `-- openssl.cnf.....Конфиг OpenSSL |-- error................Директория с конфигами страниц ошибок для Apache |-- htdocs...............Директория и хост по умолчанию с документацией от Apache Haus |-- icons................Директория с иконками |-- include..............Директория служебных скриптов Apache |-- lib..................Директория вспомогательных библиотек |-- logs.................Директория файлов журналов Apache |-- modules..............Директория модулей Apache |-- ABOUT_APACHE.txt |-- CHANGES.txt |-- INSTALL.txt |-- LICENSE.txt |-- NOTICE.txt |-- OPENSSL-NEWS.txt |-- OPENSSL-README.txt |-- README.txt |-- readme_first.html......Краткий help от Apache Haus, лежит в корне zip архива
Данная сборка Apache 2.4.23 x64 от Apache Haus для Windows является полным дистрибутивом WEB сервера и содержит все необходимые исполняемые и конфигурационные файлы для полноценной работы Apache как веб сервера, включая и использование https соединения. Соответственно, установил эту сборку и настроив ее, вы получаете полный, со всеми модулями, web сервер Apache, который можете использовать не только для разработки и тестирования, но и для продуктивного хостинга сайтов на Windows.
В zip архиве данной сборки так же вложен файл readme_first.html, который содержит краткое описание компонентов данной сборки и их версий. Так же, в этом файле приведены краткие инструкции от Apache Haus по установке Apache, VC14, инсталляции Apache как системной службы и даны необходимые ссылки.
Скринкаст: Обзор конфигурации Apache в Ubuntu
В скринкасте представлен последовательный обзор конфигурации web сервера Apache в Ubuntu при стандартной установке LAMP в Ubuntu server 16.04. Описана стартовая страница web сервера, структура домашней директории Apache, назначение каталогов и конфигурационных файлов. Приведены команды для управления и настройки конфигурации веб сервера. Описаны логика, структура, особенности и подход в конфигурации Apache. Дано понятие контекста действия директив Apache. Приведены ссылки на необходимую документацию. Скринкаст поможет вам разобраться в настройке web сервера Apache2 в операционной системе Ubuntu для своего разработческого или продуктивного веб сервера, как на виртуальной машине, так и на выделенном VDS или на своем Ubuntu Desktop персональном компьютере.
Смотреть на YouTube скринкаст: Обзор конфигурации Apache в Ubuntu
Содержание скринкаста:
- Задачи и план скринкаста………………………….00:05
- Среда LAMP Ubuntu в данном обзоре конфигурации Apache..00:59
- Обзор стартовой страницы Apache в Ubuntu……………01:29
- Обзор домашней директории Apache в Ubuntu…………..05:57
- Контекст действия директив Apache………………….09:50
- Логика загрузки конфигурации Apache………………..11:19
- Описание назначения директорий и конфигов Apache…….11:35
- Команды конфигурации и управления Apache в Ubuntu……17:44
- Резюме по скринкасту……………………………..25:33
Как работают виртуальные хосты Apache?
Не будем пока о локальных системах. Если у вас есть веб-сайт, то наверное, вы занимались парковкой домена и уже знаете как все настраивается. Сначала используется DNS сервер, который выдает IP адрес вашего сервера всем клиентам, запросившим адрес этого домена. Затем клиенты отправляют запрос на ip вашего сервера, а веб-сервер уже должен его обработать.
Обычно, на хостингах один веб-сервер обслуживает десятки, а то и сотни сайтов. И как вы понимаете, все запросы поступают на один ip. Для распределения их между папками на сервере используется имя домена, которое передается вместе с запросом в HTTP заголовке «Host». Именно поэтому нужно выполнять парковку домена не только на DNS сервисе, но и на вашем сервере.
Вы настраиваете виртуальные хосты Apache, а затем веб-сервер сравнивает домен, переданный в заголовке «Host» с доступными виртуальными доменами и если находит совпадение, то возвращает содержимое настроенной папки или содержимое по умолчанию, или ошибку 404. Нужно сказать, что вы можете настроить виртуальный хост для любого домена, например, vk.com или losst.ru. Но пользователи смогут получить доступ к этому домену у вас, только если к вам будут поступать запросы от браузеров, в которых будет значиться этот домен. А теперь детальнее про настройку.
Часто встречающиеся ошибки 1С и общие способы их решения Промо
Статья рассчитана в первую очередь на тех, кто недостаточно много работал с 1С и не успел набить шишек при встрече с часто встречающимися ошибками. Обычно можно определить для себя несколько действий благодаря которым можно определить решится ли проблема за несколько минут или же потребует дополнительного анализа. В первое время сталкиваясь с простыми ошибками тратил уйму времени на то, чтобы с ними разобраться. Конечно, интернет сильно помогает в таких вопросах, но не всегда есть возможность им воспользоваться. Поэтому надеюсь, что эта статья поможет кому-нибудь сэкономить время.