Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Apache - запуск и установка для Linux системы

02 янв. 2014

Apache — это веб-сервер из мира свободного ПО. Согласно данным netcraft.com, по состоянию на май 2009 года около 47 % всех сайтов работают с Apache. Если же учитывать только миллион наиболее посещаемых сайтов, то доля Apache на рынке оказывается просто баснословной — 68%. В этой главе мы лишь немного коснемся Apache.

Установка



Обычно установленная копия Apache состоит из нескольких взаимосвязанных пакетов: самого сервера, различных библиотек, плагинов, языков программирования и др. Чтобы облегчить установку, в некоторых дистрибутивах предусмотрен выбор для установки сразу целой группы пакетов.

В Fedora в консоли выполняется команда yum groupinstall 'Web-Server'. В SUSE в разделе YaST, отведенном для управления пакетами, выбирается Сервер ► Веб-и LAMP-сервер, а затем устанавливаются все нужные пакеты. В Ubuntu с помощью Synaptic или apt-get устанавливается пакет apache2-mpm-prefork. Вместе с ним устанавливается и несколько других зависящих от него пакетов.

Начиная с версии 2, Apache поддерживает три различных режима многопоточной работы: perchild, prefork и worker. От выбранного метода зависит, насколько эффективно Apache сможет синхронно обрабатывать несколько запросов. При установке Apache вам необходимо выбрать один из трех этих вариантов. Если вы собираетесь использовать вместе с Apache язык программирования РНР, то лучше всего выбрать prefork. При работе с другими вариантами возможны ошибки, так как их библиотеки не приспособлены к работе с потоками .

Запуск/остановка. Apache — это демон, который в некоторых дистрибутивах нужно специально запускать. Названия сценария Init-V в разных дистрибутивах могут быть различными: apache2 в Debian, SUSE и Ubuntu или httpd в Fedora и Red Hat.

Название программы и учетная запись. Названия программы, представляющей собой веб-сервер Apache, в разных дистрибутивах также различаются. По причинам, связанным с безопасностью, веб-сервер, подобно многим другим сетевым демонам, выполняется не от имени администратора, а под другой учетной записью. Чтобы узнать ее название, лучше всего выполнить ps axu.
Собственные HTML-страницы. Чтобы вместо тестовой страницы на экране появилась главная страница вашего сайта, нужно сохранить HTML-файлы в каталоге документов Apache. Ваши HTML-файлы должны быть доступны для чтения с той учетной записи, под которой выполняется веб-сервер Apache!

Конфигурация



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

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

В результате в большинстве дистрибутивов стал использоваться другой метод — настройки распределялись между несколькими файлами, а затем считыва-лись из различных каталогов с помощью команд include. Такой метод позволяет сделать отдельные файлы более понятными, но сама система становится совсем запутанной. Кроме того, становится практически невозможно перенести настройки одного дистрибутива в другой. Если вы ищете в конфигурационных файлах определенное ключевое слово, то лучше всего действовать так:

user$ cd /etc/httpd (или) cd /etc/apache2

user$ find -type f -exec grep -i -q ключевоеслово -print


В Debian/Ubuntu в каталоге mods-available содержится коллекция файлов *.load и *.conf для различных модулей Apache. Для активизации других модулей создайте в mods-enabled ссылки на эти файлы. При управлении ссылками в Debian вам пригодятся специфичные для этого дистрибутива команды a2enmod и a2dismod. В дальнейшем вы сможете активизировать и деактивизировать виртуальные хосты с помощью команд a2ensite и a2dissite. По умолчанию в sites-available содержится только файл default: он конфигурирует стандартную веб-страницу сервера (каталог / var/www), а кроме того, содержит разнообразные базовые настройки для протоколирования ошибок и обращений к страницам.

Механизм работы такой же, как и с модулями: в каталоге sites-available содержатся все конфигурационные файлы для всех хостов, а в sites-enabled находятся соответствующие ссылки.

В SUSE все CONF-файлы из каталога sysconf.d при каждом запуске Apache создаются сценарием Init-V /etc/init.d/apache2 заново! По этой причине вносить изменения в эти файлы бессмысленно. Напротив, вам следует изменить переменные, находящиеся в /etc/sysconfig/apache2. Кроме того, в данном файле определяется, какие модули должны загружаться при запуске Apache (переменная APACHE MODULES). Если хотите добавить к конфигурационным файлам SUSE собственный файл, укажите его название в переменной APACHE_CONF_INCLUDE_FILES.

Тестирование конфигурации


Изменив синтаксис, с помощью команд httpd -t, httpd2 -tnnnapache2 -t вы можете проверить, нет ли в конфигурации синтаксических ошибок. В Debian и Ubuntu сначала нужно считать из файла envvars некоторые переменные окружения:

root# . /etc/apache2/envvars root# apache2 -t

Syntax OK


После этого прикажите Apache заново считать конфигурационные файлы:
root# /etc/init.d/имя_1пН-сценария reload


Переменная ServerName

Обычно веб-сервер Apache запускается сразу. Но в зависимости от настроек конкретной сети вам потребуется изменить или добавить в конфигурационных файлах как минимум одну строку: переменная ServerName должна содержать имя вашего компьютера. Если эта настройка не подействует, укажите UseCanonicalName Off.
<code>
# в /etc/apache2/httpd.conf (Debian/<a class="myClass" href="http://www.modx.cc/linux/zapusk-sistemyi-ubuntu/">Ubuntu</a>)

# или /etc/httpd/conf/httpd.conf (<a class="myClass" href="http://www.modx.cc/linux/zapusk-sistemyi-v-fedora/">Fedora</a>/Red Hat) ServerName mars.sol # здесь укажите имя вашего компьютера</code>


В SUSE имя компьютера записывается в файле /etc/sysconfig/apache2 в переменной APACHE_SERVERNAME.

Стандартная кодировка



Во всех распространенных дистрибутивах Linux автоматически применяется кодировка Unicode UTF-8. Иначе говоря, если вы создаете в текстовом редакторе новый текстовый файл, в котором есть специальные символы, например немецкие буквыа, б, и илиВ, они сохраняются в кодировке UTF-8.

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

Настройка кодировки. Теперь Apache должен правильно указать кодировку. Если этого не получится сделать, пользователь увидит у себя в браузере неа или й, а какие-нибудь причудливые комбинации символов. Во избежание такого в Apache предусмотрена возможность настройки конфигурации кодировки. О AddDefaultCharset off — при такой настройке Apache интерпретирует МЕТА-тег передаваемого HTML-файла и сообщает браузеру, какая кодировка указана в этом теге. Если файл HTML начинается так, как это показано ниже, то применяется кодировка Unicode UTF-8:

<code><!D0CTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html><head>

<meta http-equiv="Content-Type" content="text/htm!:charset=utf-8" />
</code>

AddDefaultCharset charset — Apache сообщает указанную здесь кодировку всем страницам браузера. Настройка действует для HTML- и PHP-файлов. МЕТА-тег в HTML-коде игнорируется. О AddDefaultCharset charset extension—так настраивается кодировка для файлов, имеющих определенное расширение. Если указать AddCharset utf-8 .utf8, то все файлы, название которых заканчивается на .utf8, будут посланы в браузер в кодировке Unicode UTF-8. Для работы AddCharset требуется модуль Apache mod_mime, который по умолчанию активен во всех дистрибутивах.

Debian, Ubuntu. Разумеется, стандартная конфигурация в разных дистрибутивах неодинакова. Для глобальной настройки кодировки в Ubuntu предусмотрен конфигурационный файл /etc/apache2/conf.d/charset. По умолчанию он пуст, то есть действует AddDefaultCharset off.

Кроме того, AddDefaultCharset и AddCharset можно использовать в конфигурационных файлах для виртуальных хостов (каталог sites-available), а также в файлах. htaccess, если вам нужна особая конфигурация отдельно взятого хоста или каталога. Но не забывайте, что настройки кодировки, указываемые в .htaccess, учитываются лишь в тех случаях, когда для веб-каталога задан параметр AHowOverride АН или FileInfo.

Fedora, Red Hat. В Fedora и Red Hat также может применяться AddDefaultCharset UTF-8. Эта настройка находится в файле /etc/httpd/conf/httpd.conf. В том же файле находится настройка AHowOverride None для каталога /var/www/html.

В SUSE отсутствуют особые функции для задания кодировки в конфигурационных файлах. Таким образом, действует AddDefaultCharset off, то есть кодировка определяется только по данным, указанным в МЕТА-теге HTML-файла. Для настройки AddDefaultCharset хорошо подходит файл /etc/apache2/mod_mime-defaults.conf.

Кроме того, в SUSE действует AllowOvern'de None для каталога /srv/www/htdocs. Эту настройкуможно изменить в файле /etc/apache2/default-server.conf.

Обеспечение безопасности при работе дома или внутри организации



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

. В принципе управление доступом к отдельным веб-каталогам происходит в разделах конфигурационных файлов (как обычно, их расположение различается от дистрибутива к дистрибутиву). При этом, если имеются настройки для корневого каталога, все остальные каталоги соблюдают их по умолчанию. Затем в иных разделах для конкретных каталогов могут быть указаны и другие настройки, отличающиеся от стандартных. Из следующего примера должно быть понятно, каковы значения ключевых слов Order, Deny и Allow.

Приведенный далее код действует так, что все веб-страницы, находящиеся в стандартном каталоге, могут быть запрошены только страницами, расположенными в локальной сети. Кроме того, перестают работать символьные ссылки, так как они зачастую серьезно угрожают безопасности сети (обратите внимание, что deny.allow указывается без пробела!). Действующие строгие правила немного смягчаются для каталога /var/www/html/public. Благодаря параметру Indexes в браузере отображается список файлов, находящихся в том или ином каталоге, если в нем отсутствует файл index.html.

<code># Более надежная стандартная конфигурация, задаваемая для всего дерева каталогов «Directory />

Options None # Без параметров

AllowOvern'de None # .htdocs не оказывает никакого влияния

Order deny.allow # Сначала запретить, затем разрешить

Deny from all # Запретить все, но...

Allow from 192.168.0.0/8 # Доступ из локальной сети Allow from .sol # Разрешить доступ из локальной сети

Allow from localhost # Доступ для localhost </Directory>

# Разрешить доступ к Интернету на http://<site>/public (для <a class="myClass" href="http://www.modx.cc/linux/zapusk-sistemyi-v-fedora/">Fedora</a>/Red Hat) «Directory "/var/www/htm!/public">

Options Indexes FollowSymLinks Order allow.deny

Allow from all # Свободный доступ для всех!

</Directory></code>

Защита веб-каталогов паролем


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

Такой метод может применяться в тех случаях, когда у вас на сайте есть несколько административных страниц (например, PhpMyAdmin для администрирования MySQL. Неважно, где вы (администратор MySQL) сейчас находитесь, — если хотите, то можете получить доступ к этой странице. Одновременно следует исключить возможность выхода обычных пользователей на административные страницы.

Файл с паролем



Для решения таких проблем каталог необходимо защитить с помощью файла с паролем. По возможности файл с паролем нужно сохранять за пределами веб-каталога, чтобы исключить доступ к этому файлу по адресу servername/verzeichnis/ password-file. В следующем примере предполагается, что файл с паролем сохранен в каталоге /private.

Для создания нового файла с паролем используйте команду htpasswd (htpasswd2 в SUSE) с параметром -c (create). Пароль, разумеется, зашифровывается:

<code>user$ cd /private

user$ htpasswd -c passwords.pwd имяпользователя

New password: ******** Re-type new password: ******** Adding password for user username

Остальные пары логин/пароль добавляются командой htpasswd без параметра -c.

user$ cd /private

user$ htpasswd passwords.pwd имя2

New password: ******** Re-type new password: ******** Adding password for user username
</code>

ПРИМЕЧАНИЕ



He забудьте дать Apache право чтения файла с паролем и каталога, в котором этот файл находится! Из соображений безопасности Apache работает не под учетной записью администратора, а под другой учетной записью (www-date в Debian и Ubuntu, apache в Fedora и Red Hat, wwwrun в SUSE). Если ваш компьютер защищен SELinux или AppArmor, то правила этих систем безопасности также не должны мешать доступу сервера к файлу с паролем.

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

Файл httpd.conf



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

<code># Каталог, защищенный паролем «Directory "/var/www/html/admin/"> AuthType Basic

AuthUserFile /pn'vate/passwords.pwd AuthName "admin" Require valid-user

# Другие параметры, если они требуются </Directory>
</code>

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

Настройка Require valid-user означает, что для входа в систему может применяться любое действующее сочетание имени пользователя и пароля. Вы также можете здесь указать, что вход в систему разрешен только определенному пользователю:

Require user имя! имя2

Файлы .htaccess

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

Обратите внимание — файл .htaccess учитывается лишь при условии, что в httpd.conf в группе данного каталога допускается изменение информации, связанной с аутентификацией (вместо AllowOvern'de AuthConfig также может быть указано AllowOvern'de АН). На веб-серверах, где отдельные пользователи отвечают за собственные сетевые каталоги, это условие обычно выполняется.

<code># Каталог, который можно защитить с помощью .htaccess «Directory "/var/www/htm!/admin/"> AllowOvern'de AuthConfig

# Другие параметры, если они требуются </Directory></code>

Читайте так же:
PHP






Подпишитесь на рассылку! Никакого спама, только обновления!!!

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


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать