Apache: установка и настройка веб-сервера

Содержание:

Using the ServerPath directive

We have a server with two name-based vhosts. In order to match the
correct virtual host a client must send the correct
header. Old HTTP/1.0 clients do not send such a header and Apache has
no clue what vhost the client tried to reach (and serves the request
from the primary vhost). To provide as much backward compatibility as
possible we create a primary vhost which returns a single page
containing links with an URL prefix to the name-based virtual
hosts.

<VirtualHost 172.20.30.40>
    # primary vhost
    DocumentRoot "/www/subdomain"
    RewriteEngine On
    RewriteRule "." "/www/subdomain/index.html"
    # ...
</VirtualHost>

<VirtualHost 172.20.30.40>
    DocumentRoot "/www/subdomain/sub1"
    ServerName www.sub1.domain.tld
    ServerPath "/sub1/"
    RewriteEngine On
    RewriteRule "^(/sub1/.*)" "/www/subdomain$1"
    # ...
</VirtualHost>

<VirtualHost 172.20.30.40>
    DocumentRoot "/www/subdomain/sub2"
    ServerName www.sub2.domain.tld
    ServerPath "/sub2/"
    RewriteEngine On
    RewriteRule "^(/sub2/.*)" "/www/subdomain$1"
    # ...
</VirtualHost>

Due to the
directive a request to the URL
is always served
from the sub1-vhost. A request to the URL
is only
served from the sub1-vhost if the client sent a correct
header. If no header is sent the
client gets the information page from the primary host.

Please note that there is one oddity: A request to
is also served from the
sub1-vhost if the client sent no header.

Configuring Access to Network Resources

Access to files over the network can be specified using two
mechanisms provided by Windows:

Mapped drive letters
e.g.,
UNC paths
e.g.,

Mapped drive letters allow the administrator to maintain the
mapping to a specific machine and path outside of the Apache httpd
configuration. However, these mappings are associated only with
interactive sessions and are not directly available to Apache httpd
when it is started as a service. Use only UNC paths for
network resources in httpd.conf so that the resources can
be accessed consistently regardless of how Apache httpd is started.
(Arcane and error prone procedures may work around the restriction
on mapped drive letters, but this is not recommended.)

Часто встречающиеся ошибки 1С и общие способы их решения Промо

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

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?

Хоть Apache и называется веб-сервер, но в реальном положении вещей он является не сервером, а программой, которая запускается на сервере. Его задача установить соединение между сервером и браузером посетителей (Firefox, Google Chrome, Safari и др.) при доставке файлов туда и обратно между ними (клиент-серверная структура). Apache – это кроссплатформенное программное обеспечение, что значит оно хорошо работает как на Unix, так и на Windows серверах.

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

Apache хорошо и удобно настраиваемый поскольку имеет модульную структуру. Модули позволяют администраторам сервера включать или выключать дополнительную функциональность. У Apache есть модули безопасности, кэширования, редактирования URL, аутентификации посредством пароля и другие. Вы можете установить свою собственную конфигурацию через файл .htaccess, который является файлом настроек для Apache и поддерживается всеми тарифными планами Hostinger.

Знаете ли вы, что в Hostinger есть специальные предложения? Посетите нашу страницу купонов и сэкономьте до 75%! Не стоит забывать, что это предложение ограничено во времени!

Настройка web-сервера Apache2 в ALD

Для обеспечения совместной работы web-сервера Apache 2.2 с ALD необходимо:

– наличие в системе, на которой функционирует web-сервер, установленного пакета клиента ALD — ; – разрешение имен должно быть настроено таким образом, чтобы имя системы разрешалось, в первую очередь, как полное имя (например, ); – клиент ALD должен быть настроен на используемый ALD домен; – в системе должен быть установлен модуль web-сервера Apache 2.2 auth_kerb из пакета .

Наличие модуля web-сервера Apache 2.2 auth_kerb предоставляет возможность организации совместной работы с ALD с использованием для аутентификации пользователей посредством Kerberos метода GSSAPI. Для проведения операций по настройке ALD и администрированию Kerberos необходимо знание паролей администраторов ALD и Kerberos. Для обеспечения возможности работы web-сервера Apache 2.2 с ALD необходимо:

активировать модуль web-сервера Apache 2.2 auth_kerb при помощи команды:

в конфигурационных файлах виртуальных хостов web-сервера Apache 2.2 для областей, требующих авторизации, указать:

создать в БД ALD с помощью утилиты администрирования ALD принципала, соответствующего настраиваемому web-серверу Apache. Принципал создается с автоматически сгенерированным случайным ключом:

ввести созданного принципала в группу сервисов mac, используя следующую команду:

создать файл ключа Kerberos для web-сервера Apache с помощью утилиты администрирования ALD ald-client, используя следующую команду:

Полученный файл должен быть доступен web-серверу Apache по пути, указанному в конфигурационном параметре Krb5Keytab (в данном случае — ). Права доступа к этому файлу должны позволять читать его пользователю, от имени которого работает web-сервер Apache (как правило, владельцем файла назначается пользователь www-data);

сменить владельца полученного на предыдущем шаге файла keytab на пользователя www-data, выполнив следующую команду:

сделать файл доступным на чтение для остальных пользователей:

перезапустить web-сервер Apache, выполнив команду:

Браузер пользователя должен поддерживать аутентификацию negotiate. В последних версиях браузера Konqueror данная поддержка присутствует автоматически. В браузере Mozilla Firefox в настройках, доступных по адресу about:config, необходимо указать, для каких серверов доступна аутентификация negotiate. Для выполнения данной настройки необходимо задать маски доменов или в общем случае http- и https- соединения в качестве значений параметра , вставив, например, значение .

Name-based vs. IP-based Virtual Hosts

IP-based virtual hosts use the IP address of the connection to
determine the correct virtual host to serve. Therefore you need to
have a separate IP address for each host.

With name-based virtual hosting, the server relies on the client to
report the hostname as part of the HTTP headers. Using this technique,
many different hosts can share the same IP address.

Name-based virtual hosting is usually simpler, since you need
only configure your DNS server to map each hostname to the correct
IP address and then configure the Apache HTTP Server to recognize
the different hostnames. Name-based virtual hosting also eases
the demand for scarce IP addresses. Therefore you should use
name-based virtual hosting unless you are using equipment
that explicitly demands IP-based hosting. Historical reasons for
IP-based virtual hosting based on client support are no longer
applicable to a general-purpose web server.

Сервер 1С:Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана

Если кратко описать мое отношение к Postgres: Использовал до того, как это стало мейнстримом.
Конкретнее: Собирал на нем сервера для компаний среднего размера (до 50 активных пользователей 1С).
На настоящий момент их набирается уже больше, чем пальцев рук пары человек (нормальных, а не фрезеровщиков).
Следуя этой статье вы сможете себе собрать такой же и начать спокойную легальную жизнь, максимально легко сделать первый шаг в мир Linux и Postgres.
А я побороться за 1. Лучший бизнес-кейс (лучший опыт автоматизации предприятия на базе PostgreSQL).
Если, конечно, статья придется вам по вкусу.

Using Name-based Virtual Hosts

The first step is to create a block for
each different host that you would like to serve. Inside each block, you will need at minimum a
directive to designate
which host is served and a
directive to show where in the filesystem the content for that host
lives.

Main host goes away

Any request that doesn’t match an existing is handled by the global
server configuration, regardless of the hostname or ServerName.

When you add a name-based virtual host to an existing server, and
the virtual host arguments match preexisting IP and port combinations,
requests will now be handled by an explicit virtual host. In this case,
it’s usually wise to create a
with a matching that of
the base server. New domains on the same interface and port, but
requiring separate configurations, can then be added as subsequent (non-default)
virtual hosts.

ServerName inheritance

It is best to always explicitly list a in every name-based virtual host.

If a doesn’t specify
a , a server name will be
inherited from the base server configuration. If no server name was
specified globally, one is detected at startup through reverse DNS resolution
of the first listening address. In either case, this inherited server name
will influence name-based virtual host resolution, so it is best to always
explicitly list a in every
name-based virtual host.

For example, suppose that you are serving the domain
and you wish to add the virtual host
, which points at the same IP address.
Then you simply add the following to :

<VirtualHost *:80>
    # This first-listed virtual host is also the default for *:80
    ServerName www.example.com
    ServerAlias example.com 
    DocumentRoot "/www/domain"
</VirtualHost>

<VirtualHost *:80>
    ServerName other.example.com
    DocumentRoot "/www/otherdomain"
</VirtualHost>

You can alternatively specify an explicit IP address in place of the
in directives. For example, you might want to do this
in order to run some name-based virtual hosts on one IP address, and either
IP-based, or another set of name-based virtual hosts on another address.

Many servers want to be accessible by more than one name. This is
possible with the
directive, placed inside the section. For example in the first block above, the
directive indicates that
the listed names are other names which people can use to see that same
web site:

ServerAlias example.com *.example.com

then requests for all hosts in the domain will
be served by the virtual host. The wildcard
characters and can be used to match names.
Of course, you can’t just make up names and place them in or . You must
first have your DNS server properly configured to map those names to an IP
address associated with your server.

Name-based virtual hosts for the best-matching set of s are processed
in the order they appear in the configuration. The first matching or is used, with no different precedence for wildcards
(nor for ServerName vs. ServerAlias).

The complete list of names in the
directive are treated just like a (non wildcard)
.

Testing the Installation ¶

After starting Apache (either in a console window or as a
service) it will be listening on port 80 (unless you changed the
directive in the
configuration files or installed Apache only for the current user).
To connect to the server and access the default page, launch a
browser and enter this URL:

Apache should respond with a welcome page and you should see
«It Works!». If nothing happens or you get an error, look in the
file in the subdirectory.
If your host is not connected to the net, or if you have serious
problems with your DNS (Domain Name Service) configuration, you
may have to use this URL:

If you happen to be running Apache on an alternate port, you
need to explicitly put that in the URL:

Once your basic installation is working, you should configure it
properly by editing the files in the subdirectory.
Again, if you change the configuration of the Windows NT service
for Apache, first attempt to start it from the command line to
make sure that the service starts with no errors.

Проверяем доступность страницы с других компьютеров и настраиваем брандмауэр

Снова пробуем открыть знакомую нам страницу http://192.168.0.189 (у вас цифры другие) но уже с любого другого компьютера в локальной сети.  

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

Кликаем на раздел «Правила для входящих подключений», затем в правой части окна «Создать правило»

Выбираем «Для порта» — Далее, Протокол TCP, Опреленные локальные порты: 80, Далее 

Устанавливаем «Разрешить подключение» — Далее, 

Ставим все три галочки

Указываем произвольное имя, например «Веб сервер 80 порт для 1С». Готово.

Снова идем на другие компьютеры и убеждаемся, что теперь по IP адресу http://192.168.0.189 броузер показывает знакомую нам страницу It Works

Настройка модулей Apache

Как я уже говорил, Apache — модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.

Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:

Включить модуль можно командой:

А отключить:

После включения или отключения модулей нужно перезагрузить apache:

Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:

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

Настройки модулей находятся в той же папке, только в файле с расширением .conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:

Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:

Как вы убедились, включать модули очень просто. Давайте включим несколько необходимых, но не включенных по умолчанию модулей:

Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.

Migrating a name-based vhost to an IP-based vhost

The name-based vhost with the hostname
(from our example, setup 2) should get its own IP
address. To avoid problems with name servers or proxies who cached the
old IP address for the name-based vhost we want to provide both
variants during a migration phase.

The solution is easy, because we can simply add the new IP address
() to the
directive.

Listen 80
ServerName www.example.com
DocumentRoot "/www/example1"

<VirtualHost 172.20.30.40 172.20.30.50>
    DocumentRoot "/www/example2"
    ServerName www.example.org
    # ...
</VirtualHost>

<VirtualHost 172.20.30.40>
    DocumentRoot "/www/example3"
    ServerName www.example.net
    ServerAlias *.example.net
    # ...
</VirtualHost>

Лицензирование

Кодовая база Apache HTTP Server была перелицензирована на лицензию Apache 2.0 (из предыдущей лицензии 1.1) в январе 2004 года, и Apache HTTP Server 1.3.31 и 2.0.49 были первыми выпусками, использующими новую лицензию.

OpenBSD проект не сделал , как изменения и продолжал использовать до версии 2.0 , Apache, эффективно разветвление Apache 1.3.x для своих целей. Первоначально они заменили его на Nginx , а вскоре после этого сделали свою замену OpenBSD Httpd на основе проекта relayd.

Версии

Версия 1.1: Лицензия Apache 1.1 была одобрена ASF в 2000 г .: Основное изменение по сравнению с лицензией 1.0 находится в «рекламном пункте» (раздел 3 лицензии 1.0); производные продукты больше не обязаны включать указание ссылки в своих рекламных материалах, только в их документацию.

Ускорение работы Apache изменениями во время выполнения

Чтобы повысить производительность сервера, нужно регулярно измерять производительность и осуществлять тонкую настройку конфигурации. Наиболее важные параметры, которые нужно оптимизировать:

Поиск DNS

Apache может тратить время на определение хоста каждого IP, с которого приходит запрос. Это замедляет обработку запроса, а также приводит к пустой трате ресурсов. Чтобы избежать этого, нужно отключить опцию HostnameLookups.

При настройке директив Allow from или Deny from используйте IP-адреса вместо доменных имён. Иначе будет осуществляться двойной поиск имени DNS, который уменьшит производительность сервера.

Настройка AllowOverride

Если задана опция AllowOverride, то Apache попытается открыть файл .htaccess в каждой папке, которую он посещает. Эти дополнительные запросы к файловой системе увеличивают время отправки ответа с сервера.

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

Настройки FollowSymLinks и SymLinksIfOwnerMatch

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

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

Лучше всего активировать директиву FollowSymLinks и выключить директиву ‘SymLinksIfOwnerMatch’. Но это может привести к проблемам с безопасностью, поэтому окончательное решение остается за вами.

Согласование содержимого (Content Negotiation)

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

Если согласование содержимого необходимо для сайта, можно снизить задержки, используя файлы type-map вместо директивы Options MultiViews. Ее применение увеличивает задержку.

Настройка MaxClients

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

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

Настройки MinSpareServers, MaxSpareServers и StartServers

MaxSpareServers и MinSpareServers определяют количество дочерних процессов, которые будут находиться в состоянии ожидания обработки запросов. Эти параметры важны, потому что создание дочернего процесса отнимает ресурсы.

Если значение MinSpareServers слишком низкое, и на сервер поступает одновременно несколько запросов, Apache создаст дополнительные дочерние процессы. Это снижает возможность быстрого ответа на запрос клиента.

Значение MaxSpareServers не должно быть слишком большим. Так как стоящие в очереди на обработку дочерние процессы потребляют лишние серверные мощности. Нужно установить эти значения в оптимальном диапазоне, чтобы сбалансировать использование ресурсов и производительность.

Директива StartServers устанавливает количество дочерних серверных процессов, которые создаются при старте сервера. Если запросов много, а Apache часто перезагружается, нужно установить относительно большое значение.

Настройка MaxRequestsPerChild

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

Настройка KeepAlive и KeepAliveTimeout

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

KeepAliveTimeout определяет время ожидания следующего запроса. Если значение большое, дочерние процессы могут расходовать ресурсы, ожидая следующего запроса. Оптимальное значение – 2-5 секунд для небольших объемов трафика и 10 секунд для высоконагруженных серверов.

Timeout

Устанавливает время ожидания запроса от посетителя. При больших объемах трафика значение параметра должно быть не менее 120 секунд. Но лучше держать это значение минимальным. Это позволяет предотвратить излишнее расходование ресурсов.

Настройка виртуальных хостов Apache2 в Ubuntu

Виртуальные хосты позволяют размещать более одного веб-сайта на одном сервере Apache2. В Nginx это называется серверными блоками.

По умолчанию Apache2 поставляется с одним виртуальным хостом, а его конфигурационная информация хранится в файле /etc/apache2/sites-enabled/000-default.conf. Кроме того, корень веб-сайта по умолчанию — располагается в  /var/www/html.

Настроить новый виртуальный хост очень просто. Следуйте инструкции и просто замените setiwik своим собственным зарегистрированным доменным именем.

Создание виртуального хоста

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

Далее отключите виртуальный хост по умолчанию с помощью приведенной ниже команды.

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

Затем сделайте учетную запись Пользователя службы Apache2 (www-data) и группу (www-data) владельцами корневого каталога документа. Это можно сделать следующим образом.

Далее, предоставьте учетной записи Пользователя службы Apache2 (www-data) полный доступ к корневому каталогу документа с помощью следующей команды.

Создание индексного файла сайта

Теперь создайте индексный файл в корневом каталоге документа с помощью команды:

Скопируйте и вставьте пример HTML-кода ниже.

Сохраните и закройте файл index.html.

Измените конфигурацию виртуального хоста

Затем отредактируйте новый файл конфигурации виртуального хоста с помощью следующей команды.

Теперь раскомментируйте строку, которая начинается с ServerName, а затем замените www.example.com с фактическим URL-адресом веб-сайта. А так же замените /var/www/html новым корневым путем документа.

Ниже приведен пример того, что ожидается после внесения изменений.

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

Включите виртуальный хост Apache2

Чтобы включить виртуальный хост Apache2, выполните команду.

Наконец, перезапустите веб-сервер Apache2 с помощью:

Теперь мой сайт доступен через www.setiwik.ru как показано на рисунке ниже.


Добро пожаловать в виртуальный хост setiwik

Running Apache as a Console Application ¶

Running Apache as a service is usually the recommended way to
use it, but it is sometimes easier to work from the command line,
especially during initial configuration and testing.

To run Apache from the command line as a console application,
use the following command:

Apache will execute, and will remain running until it is stopped
by pressing Control-C.

You can also run Apache via the shortcut Start Apache in Console
placed to during the installation.
This will open a console window and start Apache inside it. If you
don’t have Apache installed as a service, the window will remain
visible until you stop Apache by pressing Control-C in the console
window where Apache is running in. The server will exit in a few
seconds. However, if you do have Apache installed as a service, the
shortcut starts the service. If the Apache service is running
already, the shortcut doesn’t do anything.

If Apache is running as a service, you can tell it to stop by opening another console
window and entering:

Running as a service should be preferred over running in a
console window because this lets Apache end any current operations
and clean up gracefully.

But if the server is running in a console window, you can
only stop it by pressing Control-C in the same window.

You can also tell Apache to restart. This forces it to reread
the configuration file. Any operations in progress are allowed to
complete without interruption. To restart Apache, either press
Control-Break in the console window you used for starting Apache,
or enter

if the server is running as a service.

Note for people familiar with the Unix version of Apache:
these commands provide a Windows equivalent to and . The
command line option used, , was chosen as a reminder
of the command used on Unix.

If the Apache console window closes immediately or unexpectedly
after startup, open the Command Prompt from the Start Menu —>
Programs. Change to the folder to which you installed Apache, type
the command , and read the error message. Then
change to the logs folder, and review the
file for configuration mistakes. Assuming httpd was installed into
,
you can do the following:

Then wait for Apache to stop, or press Control-C. Then enter the
following:

When working with Apache it is important to know how it will
find the configuration file. You can specify a configuration file
on the command line in two ways:

  • specifies an absolute or relative path to
    a particular configuration file:

    or

  • specifies the installed Apache service
    whose configuration file is to be used:

In both of these cases, the proper
should be set in
the configuration file.

If you don’t specify a configuration file with
or , Apache will use the file name compiled into the
server
, such as . This built-in path
is relative to the installation directory. You can verify the compiled
file name from a value labelled as when
invoking Apache with the switch, like this:

Apache will then try to determine its by trying the following, in this order:

  1. A directive
    via the command line switch.
  2. The switch on the command line.
  3. Current working directory.
  4. A registry entry which was created if you did a binary
    installation.
  5. The server root compiled into the server. This is by default, you can verify it by using and looking for a value labelled as
    .

If you did not do a binary install, Apache will in some
scenarios complain about the missing registry key. This warning can
be ignored if the server was otherwise able to find its
configuration file.

Introduction

In order to stop or restart the Apache HTTP Server, you must send a signal to
the running processes. There are two ways to
send the signals. First, you can use the unix
command to directly send signals to the processes. You will
notice many executables running on your system,
but you should not send signals to any of them except the parent,
whose pid is in the . That is to say you
shouldn’t ever need to send signals to any process except the
parent. There are four signals that you can send the parent:
,
,
, and
, which
will be described in a moment.

To send a signal to the parent you should issue a command
such as:

The second method of signaling the processes
is to use the command line options: ,
, and ,
as described below. These are arguments to the binary, but we recommend that
you send them using the control script, which
will pass them through to .

After you have signaled , you can read about
its progress by issuing:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector