Библиотека сайта rus-linux.net
Серверы Linux. Часть I. Серверы Apache и Squid
Оригинал: Apache web serverАвтор: Paul Cobbaut
Дата публикации: 24 мая 2015 г.
Перевод: А.Панин
Дата перевода: 10 июля 2015 г.
Глава 1. Веб-сервер Apache
В данной главе мы будем учиться настраивать веб-сервер Apache
.
В соответствии с данными NetCraft (http://news.netcraft.com/archives/web_server_survey.html), практически на семидесяти процентах всех сетевых серверов используется веб-сервер Apache. Имя данного сервера образовано от неофициального названия "a patchy web server"
, данного веб-серверу NCSA httpd из-за огромного количества разработанных и доступных для наложения патчей.
В последующих главах мы расширим область рассмотрения данного веб-сервера до стека LAMP (Linux, Apache, MySQL, Perl/PHP/Python).
1.1. Вводная информация о веб-сервере Apache
1.1.1. Установка в дистрибутиве Debian
При рассмотрении приведенного ниже вывода становится ясно, что веб-сервер Apache
не установлен в системе и директории для хранения веб-станиц /var/www
не существует.
root@debian7:~# ls -l /var/www ls: невозможно получить доступ к /var/www: Нет такого файла или каталога root@debian7:~# dpkg -l | grep apache
Для установки веб-сервера Apache
в дистрибутиве Debian следует выполнить следующие команды:
root@debian7:~# aptitude install apache2 НОВЫЕ пакеты, которые будут установлены: apache2 apache2-mpm-worker{a} apache2-utils{a} apache2.2-bin{a} apache2.2-com\ mon{a} libapr1{a} libaprutil1{a} libaprutil1-dbd-sqlite3{a} libaprutil1-ldap{a}\ ssl-cert{a} обновлено 0, установлено 10 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено. Необходимо скачать 1,487 kБ архивов. После данной операции, объём занятого дискового пространства возрастёт на 5,673 kБ. Хотите продолжить [Д/н]?
После установки выбранных пакетов программного обеспечения вывод двух приведенных выше команд будет отличаться:
root@debian7:~# ls -l /var/www итого 4 -rw-r--r-- 1 root root 177 апр 29 11:55 index.html root@debian7:~# dpkg -l | grep apache | tr -s ' ' ii apache2 2.2.22-13+deb7u1 amd64 Apache HTTP Server metapackage ii apache2-mpm-worker 2.2.22-13+deb7u1 amd64 Apache HTTP Server - high speed th\ readed model ii apache2-utils 2.2.22-13+deb7u1 amd64 utility programs for webservers ii apache2.2-bin 2.2.22-13+deb7u1 amd64 Apache HTTP Server common binary files ii apache2.2-common 2.2.22-13+deb7u1 amd64 Apache HTTP Server common files
1.1.2. Установка в дистрибутиве RHEL/CentOS
Помните о том, что в дистрибутиве RedHat и производных дистрибутивах в именем пакета программного обеспечения и бинарного файла веб-сервера Apache является httpd
, а не apache
.
Для установления того, установлен ли веб-сервер Apache
в системе на основе дистрибутива CentOS/RHEL следует выполнить следующие команды:
[root@centos65 ~]#rpm -q httpd
пакет httpd не установлен [root@centos65 ~]#ls -l /var/www
ls: невозможно получить доступ к /var/www: Нет такого файла или каталога
Для установки веб-сервера Apache в дистрибутиве CentOS следует использовать следующую команду:
[root@centos65 ~]# yum install httpd
После выполнения команды yum install httpd
в системе на основе дистрибутива CentOS 6.5 будет установлен веб-сервер Apache и создана директория для хранения веб-страниц /var/www
.
[root@centos65 ~]#rpm -q httpd
httpd-2.2.15-30.el6.centos.x86_64 [root@centos65 ~]#ls -l /var/www
итого 16 drwxr-xr-x. 2 root root 4096 апр 3 23:57 cgi-bin drwxr-xr-x. 3 root root 4096 май 6 13:08 error drwxr-xr-x. 2 root root 4096 апр 3 23:57 html drwxr-xr-x. 3 root root 4096 май 6 13:08 icons [root@centos65 ~]#
1.1.3. Запуск веб-сервера Apache в дистрибутиве Debian
При работе с дистрибутивом Debian веб-сервер Apache (служба apache2
) может быть запущен с помощью следующей команды.
root@debian7:~# service apache2 status Apache2 is NOT running. root@debian7:~# service apache2 start Starting web server: apache2apache2: Could not reliably determine the server's \ fully qualified domain name, using 127.0.1.1 for ServerName .
Для того, чтобы убедиться в корректности запуска веб-сервера следует снова выполнить команду service apache2 status
или воспользоваться утилитой ps
.
root@debian7:~# service apache2 status Apache2 is running (pid 3680). root@debian7:~# ps -C apache2 PID TTY TIME CMD 3680 ? 00:00:00 apache2 3683 ? 00:00:00 apache2 3684 ? 00:00:00 apache2 3685 ? 00:00:00 apache2 root@debian7:~#
Кроме того, вы можете использовать комбинацию утилит wget
и file
для проверки корректности передачи документов HTML веб-сервером.
root@debian7:~# wget 127.0.0.1 --2014-05-06 13:27:02-- http://127.0.0.1/ Подключение к 127.0.0.1:80... соединение установлено. HTTP-запрос отправлен. Ожидание ответа... 200 OK Длина: 177 [text/html] Сохранение в: `index.html' 100%[==================================================>] 177 --.-K/s за 0s 2014-05-06 13:27:02 (15.8 MB/s) - `index.html' сохранён [177/177] root@debian7:~# file index.html index.html: HTML document, ASCII text root@debian7:~#
Также вы можете убедиться в корректности запуска веб-сервера, открыв веб-браузер и введя IP-адрес вашего сервера в адресную строку. Веб-браузер должен отобразить тестовую страницу веб-сервера Apache.
Для того, чтобы предотвратить вывод сообщения о невозможности точного установления полностью определенного доменного имени сервера 'could not reliably determine the fqdn' при перезапуске Apache, вы можете прибегнуть к следующей команде.
root@debian7:~# echo ServerName Debian7 >> /etc/apache2/apache2.conf root@debian7:~# service apache2 restart Restarting web server: apache2 ... waiting . root@debian7:~#
1.1.4. Запуск веб-сервера Apache в дистрибутиве CentOS
Запуск веб-сервера Apache (служба httpd
) в дистрибутиве RHEL/CentOS осуществляется с помощью утилиты service
.
[root@centos65 ~]# service httpd status httpd is stopped [root@centos65 ~]# service httpd start Starting httpd: httpd: Could not reliably determine the server's fully qualifie\ d domain name, using 127.0.0.1 for ServerName [ OK ] [root@centos65 ~]#
Для проверки корректности запуска Apache
следует использовать утилиту ps
или снова выполнить команду service httpd status
.
[root@centos65 ~]# service httpd status httpd (pid 2410) is running... [root@centos65 ~]# ps -C httpd PID TTY TIME CMD 2410 ? 00:00:00 httpd 2412 ? 00:00:00 httpd 2413 ? 00:00:00 httpd 2414 ? 00:00:00 httpd 2415 ? 00:00:00 httpd 2416 ? 00:00:00 httpd 2417 ? 00:00:00 httpd 2418 ? 00:00:00 httpd 2419 ? 00:00:00 httpd [root@centos65 ~]#
Для предотвращения вывода сообщения о невозможности установления полностью определенного доменного имени сервера 'Could not reliably determine the fqdn' следует выполнить следующую команду.
[root@centos65 ~]# echo ServerName Centos65 >> /etc/httpd/conf/httpd.conf [root@centos65 ~]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] [root@centos65 ~]#
1.1.5. Индексная страница веб-сервера в дистрибутиве CentOS
В составе дистрибутива CentOS не поставляется стандартного файла индексной страницы веб-сервера index.html или index.php. При использовании утилиты wget
будет выведено сообщение об ошибке.
[root@centos65 ~]# wget 127.0.0.1 --2014-05-06 15:10:22-- http://127.0.0.1/ Подключение к 127.0.0.1:80... соединение установлено. HTTP-запрос отправлен. Ожидание ответа... 403 Forbidden 2014-05-06 15:10:22 ОШИБКА 403: Forbidden.
В случае ввода IP-адреса вашего сервера в адресную строку веб-браузера будет отображена страница noindex.html
. Вы можете проверить это с помощью утилиты wget
.
[root@centos65 ~]# wget http://127.0.0.1/error/noindex.html --2014-05-06 15:16:05-- http://127.0.0.1/error/noindex.html Подключение к 127.0.0.1:80... соединение установлено. HTTP-запрос отправлен. Ожидание ответа... 200 OK Длина: 5039 (4.9K) [text/html] Сохранение в: noindex.html 100%[=============================================>] 5,039 --.-K/s за 0s 2014-05-06 15:16:05 (289 MB/s) - noindex.html сохранён [5039/5039] [root@centos65 ~]# file noindex.html noindex.html: HTML document text [root@centos65 ~]#
Любой пользовательский файл с именем index.html
сразу же после копирования в директорию /var/www/html
будет использоваться в качестве индексной страницы данного веб-сервера.
[root@centos65 ~]# echo 'Добро пожаловать на мой веб-сайт' > /var/www/html/index.html [root@centos65 ~]# wget http://127.0.0.1 --2014-05-06 15:19:16-- http://127.0.0.1/ Подключение к 127.0.0.1:80... соединение установлено. HTTP-запрос отправлен. Ожидание ответа... 200 OK Длина: 60 [text/html] Сохранение в: index.html 100%[=============================================>] 60 --.-K/s за 0s 2014-05-06 15:19:16 (1.95 MB/s) - index.html сохранён [60/60] [root@centos65 ~]# cat index.html Добро пожаловать на мой веб-сайт
1.1.6. Стандартный путь к директории с данными веб-сайта
Изменить стандартный путь к директории с данными веб-сайта после установки веб-сервера Apache в систему достаточно просто. Все что вам требуется сделать (или изменить) - это указать путь к директории с файлом индексной страницы с именем index.html в конфигурационном файле веб-сервера с помощью директивы DocumentRoot.
Для получения текущего значения директивы DocumentRoot в дистрибутиве Debian следует использовать следующую команду:
root@debian7:~# grep DocumentRoot /etc/apache2/sites-available/default DocumentRoot /var/www
Это значит, что в качестве индексной страницы основного веб-сайта сервера будет использоваться файл /var/www/index.html
.
root@debian7:~# cat /var/www/index.html <html><body><h1>Работает!</h1> <p>Это индексная страница данного веб-сервера.</p> <p>Веб-сервер корректно функционирует, но данные веб-сайта пока не были загружены на сервер.</p> </body></html> root@debian7:~#
Ниже показан способ получения текущего значения директивы DocumentRoot
в дистрибутиве RHEL/CentOS.
[root@centos65 ~]# grep ^DocumentRoot /etc/httpd/conf/httpd.conf DocumentRoot "/var/www/html"
Дистрибутив RHEL/CentOS не предоставляет стандартной индексной страницы веб-сервера (хотя и предоставляет страницу с информацией об ошибке noindex.html, упомянутую ранее). Несмотря на это файл с именем index.html
, созданный в директории /var/www/html/
будет автоматически использоваться в качестве стандартной индексной страницы.
[root@centos65 ~]# echo '<html><head><title>Стандартный веб-сайт</title></head><body\ ><p>Новая веб-страница</p></body></html>' > /var/www/html/index.html [root@centos65 ~]# cat /var/www/html/index.html <html><head><title>Стандартный веб-сайт</title></head><body><p>Новая веб-страница</p></b\ ody></html> [root@centos65 ~]#
1.1.7. Настройка веб-сервера Apache
Процесс настройки веб-сервера Apache
при работе с дистрибутивами Debian и CentOS во многом схож, но имеет и некоторые отличия. Мы обсудим процесс настройки веб-сервера с учетом особенностей каждого из семейств дистрибутивов и рассмотрим примеры в соответствующих разделах.
Все файлы конфигурации веб-сервера находятся в директории /etc/httpd
в случае использования дистрибутива RHEL/CentOS.
[root@centos65 ~]# ls -l /etc/httpd/ итого 8 drwxr-xr-x. 2 root root 4096 май 6 13:08 conf drwxr-xr-x. 2 root root 4096 май 6 13:08 conf.d lrwxrwxrwx. 1 root root 19 май 6 13:08 logs -> ../../var/log/httpd lrwxrwxrwx. 1 root root 29 май 6 13:08 modules -> ../../usr/lib64/httpd/modu\ les lrwxrwxrwx. 1 root root 19 май 6 13:08 run -> ../../var/run/httpd [root@centos65 ~]#
В дистрибутиве Debian (а также производных дистрибутивах Ubuntu/Mint/...) для хранения файлов конфигурации веб-сервера используется директория /etc/apache2
.
root@debian7:~# ls -l /etc/apache2/ итого 72 -rw-r--r-- 1 root root 9659 май 6 14:23 apache2.conf drwxr-xr-x 2 root root 4096 май 6 13:19 conf.d -rw-r--r-- 1 root root 1465 янв 31 18:35 envvars -rw-r--r-- 1 root root 31063 июл 20 2013 magic drwxr-xr-x 2 root root 4096 май 6 13:19 mods-available drwxr-xr-x 2 root root 4096 май 6 13:19 mods-enabled -rw-r--r-- 1 root root 750 янв 26 12:13 ports.conf drwxr-xr-x 2 root root 4096 май 6 13:19 sites-available drwxr-xr-x 2 root root 4096 май 6 13:19 sites-enabled root@debian7:~#
Предыдущий раздел: | Оглавление | Следующий раздел: |
Виртуальные серверы для заданных номеров портов |