Тема: «Установка и настройка Web-сервера Apache+php+Mysql»

Вид материалаДокументы

Содержание


Конфигурационные файлы сервера Apache
Конфигурационный файл httpd.conf и его директивы
Директивы создания виртуальных узлов
Директивы протоколирования
Директивы управления производительностью
Директивы обеспечения постоянного соединения с клиентом
Директивы создания виртуальных хостов
Listen. Позволяет связывать Apache с определенным IP-адресом и (или) дополнительными портами. BindAddress
Директивы настройки отображения каталогов
AddlconByType (TEXT, URL) mime-type
AddType — с помощью этой директивы можно добавить новый MIME-тип, который не указан в файле apache-mime.types. AddHandler
Пример 2. Применение директив AddHandler и Action
LanguagePriority en ru
Директивы перенаправления
Redirect /users/den /den
Alias — можно предоставить доступ не только к файлам, находящимся в каталоге, указанном директивой DocumentRoot
Директивы обработки ошибок
Пример 3. Директива Directory
AuthName, AuthType, AuthUserFile
Limit, метод Директива Limit
...
Полное содержание
Подобный материал:
  1   2   3

Преподаватель Халелова Е.Н.


Тема: «Установка и настройка Web-сервера Apache+PHP+MySQL»


Вопросы темы:
  1. Web-сервер Apache – функции, конфигурационные файлы web-сервера
  2. Конфигурационный файл httpd.conf и его директивы.
  3. Виртуальные HTTP-серверы
  4. Установка Apache+PHP+MySQL под Linux (Unix)
  5. Установка Apache+PHP+MySQL под Windows



  1. Web-сервер Apache – функции, конфигурационные файлы web-сервера


Сервер Apache разработан и поддерживается организацией Apache Project. Первоначально сервер Apache был разновидностью сервера Web-сервера NCSA, разработанного в Национальном центре разработок суперкомпью­теров Иллинойского университета. Возникновение Apache было связано с тем, что в 1994 году ушел из проекта главный разработчик NCSA, ос­тавив многих последователей самостоятельно разбираться в своем серве­ре. Со временем начали появляться исправления и дополнения к серве­ру NCSA — так называемые patches (патчи). А в апреле 1995 года вышла первая версия сервера Apache, основанного на версии 1.3 сервера NCSA. Первая версия Apache просто вобрала в себя все известные исправления сервера NCSA«A PatCHy» (сервер с доработками). Позже Apache стал самостоятельной разработкой. Сейчас сервер Apache поддерживается группой программистов-добровольцев Apache Group.

Apache — это своего рода стандарт Web-сервера в Интернете. Его основ­ным конкурентом является IIS (Internet Information Server) от Microsoft, который работает под Windows. Apache, хотя и существуют его версии под Windows, преимущественно устанавливается на Unix-подобных операци­онных системах — Linux и FreeBSD.

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

Сервер Apache имеет три конфигурационных файла: httpd.conf, srm. conf, access . conf. Обычно эти файлы находятся в каталоге /etc/ httpd/conf. Вся настройка сервера заключается в редактировании этих трех файлов.

Файл httpd.conf — это основной файл конфигурации сервера. В нем содержится техническое описание работы сервера. В файле srm. conf за­даются параметры документов, которые размещены на сервере. Файл access.conf содержит параметры доступа к серверу.

  1. Конфигурационный файл httpd.conf и его директивы


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

Директивы конфигурационного файла сервера Apache можно условно разделить на такие группы:
  1. Общие. К общим директивам относятся глобальные директивы, вли­яющие на работу всего Web-сервера. Это директивы ServerName, ServerType, Port, User и Group, ServerAdmin, ServerRoot, PidFile, DocumentRoot, UserDir.
  2. Директивы протоколирования: ErrorLog, TransferLog, Hostname Lookups.
  3. Директивы ограничения доступа: AllowOverride, Options, Limit.
  4. Директивы управления производительностью: StartServers, MaxSpareServers, MinSpareServers, а также директива CacheNegotiatedDocs.
  5. Директивы обеспечения постоянного соединения с клиентом: Timeout, KeepAlive, KeepAHveTimeout.
  6. Директивы настройки отображения каталогов. Оформить отображе­ние каталогов можно с помощью директив настройки отображения каталогов: Directorylndex, Fancylndexing и AddlconByType.
  7. Директивы обработки ошибок. Директивой обработки ошибок HTTP-сервера является директива ErrorDocument. С ее помощью можно установить реакцию на любую ошибку сервера, например, на ошиб­ку 404 (документ не найден).
  8. Директивы перенаправления: Redirect, Alias и ScriptAlias.
  9. Директивы для работы с многоязычными документами: AddLanguage и LanguagePriority.
  10. Директивы обработки MIME-типов. Настроить свой сервер для об­работки различных MIME-типов можно с помощью директив DefaultType, AddEncoding, AddType, AddHandler и Action.
  11. Директивы создания виртуальных узлов: VirtualHost, Listen, BindAddress.


Общие директивы

Общие директивы изменяют глобальные параметры сервера — его имя, тип, порт, адрес администратора. Значения, указанные глобальными директивами, влияют на работу всего сервера.
  • ServerName — директива, которая определяет имя сервера Apache. Причем, здесь должно быть задано официальное имя сервера в таком виде, в котором оно должно появляться в строке адреса браузера. Данное имя должно быть зарегистрировано в сервере DNS вашей сети.
  • ServerType — директива, которая определяет тип сервера. По умолчанию используется значение standalone.
  • ServerAdmin — директива, которая задает электронный адрес Web-мастера вашего Web-узла. Если возникнут какие-то проблемы, связанные с работой сервера, то по этому адресу будет отправле­но соответствующее сообщение. Обычно используется значение webmaster@Your_Host.com. Пользователь webmaster, как прави­ло, не существует реально в системе. Для определения имени (псевдонима) webmaster используется файл псевдонимов элект­ронной почты /etc/aliases. Данный файл используется для определения псевдонимов пользователей. Формат файла /etc/ aliases следующий:

псевдоним: имя

После модификации этого файла нужно ввести команду newaliases. Данную команду нужно вводить, зарегистрировавшись в системе, как суперпользователь. В Windows данного файла нет, поэтому ничего не нужно вводить. В Windows псевдонимы создаются с по­мощью программы настройки почтового сервера, который установ­лен и используется.
  • Port — директива, задающая номер порта, который будет использовать­ся для установки соединения. По умолчанию используется порт 80. Если нужно запустить сервер Apache с использованием этого или любого другого порта, номер которого меньше 1024, нужно обла­дать правами суперпользователя. Но даже если нет таких прав, можно запустить сервер для работы с портом, номер которого превы­шает значение 1024. Обычно используется номер 8080 или 8000.
  • User и Group. Директивы User и Group определяют идентификаторы пользователя и группы, от имени которых будет работать сервер. Данные идентификаторы присваиваются серверу, если он запущен в автономном режиме. Можно использовать, как имена пользовате­лей, так и их числовые эквиваленты — UID. По умолчанию ис­пользуется, имя пользователя nobody. Из соображений безопасности не рекомендуется изменять это значение и присваивать имя реаль­ного пользователя. В этом случае Web-сервер получит доступ толь­ко к тем файлам, которые разрешены для чтения для всех пользова­телей. Нужно заметить, что указанный пользователь и группа должны существовать в вашей системе. Ни в коем случае не запускайте сервер от имени пользователя root!
  • ServerRoot — в этой директиве указывается местонахождение фай­лов конфигурации сервера Apache. По умолчанию для этих целей используется каталог /etc/httpd.
  • PidFile — с помощью этой директивы указывается имя файла, в котором исходный процесс сервера будет регистрироваться. Этот файл содержит свой идентификатор процесса (PID). Данную ин­формацию можно использовать для останова или перезапуска сер­вера при написании собственных сценариев. Данный файл будет создан, только если сервер Apache запущен в автономном режиме.
  • DocumentRoot — директива, определяющая местонахождение корне­вого каталога документов вашего сервера.
  • UserDir — эта директива задает названия подкаталога в домашнем каталоге пользователя, из которого берутся документы. В этом слу­чае активизируется возможность использования пользовательс­ких каталогов. Если вы не хотите включать эту возможность, ука­жите UserDir DISABLED.



Директивы протоколирования

Директивы протоколирования управляют процессом протоколирования работы сервера.
  • HostnameLookups on | off. Сервер Apache ведет журнал доступа дру­гих компьютеров. Если включить данную опцию (on), то в жур­нал будет записано доменное имя компьютера-клиента. Если эта опция выключена (off), в журнал будет записан IP-адрес клиента. Включение данной опции замедляет работу сервера, так как требу­ется дополнительное время на ожидание ответа от сервера DNS.
  • ErrorLog и TransferLog — эти директивы определяют расположе­ние журналов сервера Apache. Обычно для этих целей использует­ся каталог /etc/httpd/logs, который является ссылкой на ката­лог /var/log/httpd или на любой другой. В журнале errorlog протоколируются диагностические сообщения, а также сообщения об ошибках, которые порождают CGI-сценарии. В журнале trasferlog протоколируются запросы клиентов. Если включена директива HostNameLookups, то вместо IP-адреса клиентов будут регистриро­ваться имена компьютеров.

Директивы управления производительностью

Сервер Apache для каждого соединения запускает отдельную копию, которая будет обрабатывать запросы клиента. Управлять запущенными копиями позволяют директивы StartServers, MinSpareServers, MaxSpareServers.
  • Директива StartServers задает количество копий, которые будут созданы при запуске исходной копии сервера. При этом исходная копия сервера получает запросы и передает их свободным копиям. Это позволяет равномерно распределить нагрузку между отдельными процессами и повысить производительность сервера. По умолчанию запускается пять копий сервера.

Если число поступающих запросов превышает количество запущенных копий сервера, запускаются дополнительные процессы-серверы. Эти процессы не завершаются после обработки своего запроса, а продолжают находиться в памяти.
  • Директива MaxSpareServers позволяет указать максимальное число таких процессов. Если это количество превышено, то лишние процессы завершаются. Если количество «серверов на подхвате» меньше, чем задано директивой MinSpareServers, запускаются дополнительные копии. Для работы этих директив необходимо, чтобы сервер был запущен в автономном режиме.
  • CacheNegotiatedDocs. Данная директива позволяет прокси-серверу, например, SQUID, не кэшировать документы, которые не генерируются автоматически, то есть в процессе выполнения различных сценариев. Согласно протоколу НТТР/1.0, сервер Apache с каждым пакетом посылает заголовок Pragma: no-cache прокси-серверу, что позволяет отключить кэширование документов (в протоколе HTTP/ 1.1 вместо Pragma используется Cache-Control). Если включить данную директиву, то нужно разрешить прокси-серверу кэшировать документы. К сожалению, далеко не все прокси-серверы отключают кэширование после получения данного заголовка. При написании своего CGI-сценария, придется самому выводить заголовок Pragma (или Cache-Control) и мета-теги, которые указывают на дату последнего обновления документа.

Директивы обеспечения постоянного соединения с клиентом
  • Timeout — задает промежуток времени в секундах, в течение которого сервер продолжает попытки возобновления приостановленной передачи данных. Значение директивы Timeout распространяется не только на передачу, но и на прием данных.
  • KeepAlive — разрешает постоянные соединения, то есть такие соединения, в которых производится более одного запроса за один раз.
  • KeepAliveTimeOut — данная директива определяет таймаут для постоянного соединения.
  • MaxClients. Иногда поступающих запросов настолько много, что компьютеру не хватает ресурсов для загрузки новых копий сервера в память и их выполнения. Директива MaxClients (значение по умолчанию — 150) определяет максимальное число копий сервера, которые могут выполняться одновременно.
  • MaxRequestsPerChild. После обработки определенного количества запросов, указанного в директиве MaxRequestsPerChild, копия сервера завершается, а вместо нее запускается новая.


Директивы создания виртуальных хостов

Современные Web-серверы поддерживают виртуальные хосты. У вас будет собственное имя, например, ссылка скрыта, но в действительности ваши файлы не будут помещены на отдельном компьютере ссылка скрыта, а будут находиться на сервере провайдера (или хостера) — ссылка скрыта.

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

На своем домашнем Web-сервере вы также можете создать один или несколько виртуальных узлов.
  • Listen. Позволяет связывать Apache с определенным IP-адресом и (или) дополнительными портами.
  • BindAddress. Данная директива используется для поддержки виртуальных хостов и применяется, чтобы сообщить серверу, какой IP-адрес следует прослушивать. Значением данной директивы может быть «*» (любой адрес), IP-адрес или полное имя домена.

Директивы настройки отображения каталогов
  • Directorylndex — позволяет задать название документа, который будет возвращен по запросу, который не содержит имя документа. С помощью данной директивы можно задать несколько имен файлов.

Значениями по умолчанию являются: index.php, index.php, index.htm, index.shtml, index.cgi, Default.htm, default.htm, index.php. Например, если вы введете в строке адреса браузера http: //localhost, то будет возвращен один из указанных в директиве Directorylndex документов.
  • Fancylndexing. При получении запроса, не содержащего имя документа, сервер передаст один из файлов, указанных в директиве Directorylndex. Если такой файл не существует, клиенту будет возвращено оглавление каталога. При включении директивы Fancylndexing, в оглавлении каталога будут использованы значки и описания файлов. Если директива Fancylndexing выключена, оглавление будет представлено в более простом виде.
  • AddlconByType — сопоставляет значок типу файла. Значок будет использоваться при выводе каталога, если включена директива Fancylndexing. Директива AddlconByType имеет следующий формат:

AddlconByType (TEXT, URL) mime-type

Параметр TEXT определяет текстовое описание типа, которое увидят пользователи, использующие текстовый браузер или пользователи, у которых отключено отображение рисунков. Параметр URL определяет адрес значка, а параметр mime-type — это тип файла, с которым нужно сопоставить значок. Полный перечень MIME-типов приведен в файле apache-mime.types. В качестве имени файла можно задать не только MIME-тип, но и символы, которыми заканчивается имя файла (см. пример 1), но для этого нужно использовать директиву Addlcon вместо AddlconByType.


пример1. Фрагмент файла httpd.conf


AddlconByType (VID,/icons/movie. gif) video/*

Addlcon /icons/binary.gif .bin .exe


Директивы обработки MIME-типов

В Windows существует такое понятие, как расширение (или тип) файла. По расширению можно связать какую-либо программу с определенным типом файла. Например, когда вы щелкаете на файле с расширением .txt, запускается Блокнот, а при щелчке на файле с расши­рением .doc будет запущен Word. Точно такой же механизм реализован в Apache. Вы можете сопоставить тип файла и обработчик этого типа — программу, которая будет запущена для обработки файла. Когда не был разработан модуль mod_php, программа PHP объявлялась обработчиком файла с расширением .php. Сервер запускал php, передавал ему файл, а потом возвращал пользователю результат.
  • DefaultType. Если запрашиваемый клиентом тип не соответствует ни одному из MIME-типов, используется MIME-тип, указанный в ди­рективе DefaultType.
  • AddEncoding. Для сокращения времени передачи файла клиентам используется сжатие данных. Браузеры имеют встроенные програм­мы для распаковки, запускаемые при получении архивов опреде­ленных MIME-типов. Именно эти MIME-типы и указываются в директиве AddEncoding.
  • AddType — с помощью этой директивы можно добавить новый MIME-тип, который не указан в файле apache-mime.types.
  • AddHandler и Action. Директива AddHandler позволяет сопоставить определенному MIME-типу какой-нибудь обработчик. А с помо­щью директивы Action можно определить какое-нибудь действие для обработчика.

Например, вы можете запустить какую-нибудь программу для обработки файла данного типа (см. пример 2).

Пример 2. Применение директив AddHandler и Action

AddHandler text/dhtml dhtml

Action text/dhtml /cgi-bin/dhtml-parse


Директивы для работы с многоязычными документами
  • AddLanguage. В большинстве браузеров можно задать предпочитаемый язык. Директива AddLanguage сопоставляет расширение файла аббревиатуре языка. Для русского языка используется аббревиатура ru, для английского — еn. При этом в корневом каталоге вашего сервера могут находиться несколько индексных файлов на разных языках. Например, для русского языка нужно использовать имя файла index.php.ru, а для английского — index.php .en.
  • LanguagePriority указываются приоритеты различных языков. Например,

LanguagePriority en ru

Клиент вводит в строке адреса своего браузера адрес nofollow" href=" " onclick="return false">ссылка скрыта. Если в свойствах браузера имеется возможность задать предпочитаемый язык, то возвращен будет файл на нужном языке, если такой существует. Если браузер клиента не поддерживает такую возможность, будет возвращен файл на языке, имеющем наиболее высокий приоритет. В рассмотренном случае (см. пример) это английский язык. Если файл на нужном языке, например, на немецком, не существует, то будет возвращен файл на английском языке. Для того, чтобы сервер поддерживал нужный вам язык, пред­варительно установите правильное значение директивы AddLanguage.

Директивы перенаправления

Довольно часто нужно перенаправить пользователя на другой ресурс, например, вы сменили хостера и из-за этого изменилось имя вашего сайта.
  • Redirect. Используется, когда нужно перенести документы в другой каталог или на другой сервер. Например, вам нужно перенести данные из каталога /users/den в каталог /den. Если при этом старый URL-адрес был com/users/den, то новый станет http: //www.host.com/den/.

Пример: Redirect /users/den /den

Можно также перенаправить запрос на другой сервер: Redirect/ users/den/ ссылка скрыта

При этом допускается использование, как нового, так и старого URL-адреса.
  • Alias — можно предоставить доступ не только к файлам, находящимся в каталоге, указанном директивой DocumentRoot, и его подкаталогах, но и в других каталогах. По умолчанию определен только псевдоним для каталога /icons.
  • ScriptAlias — аналогична директиве Alias, но позволяет задать месторасположение каталога для CGI-сценариев.


Директивы обработки ошибок
  • ErrorDocument — директива, сопоставляющая коды ошибок сервера URL-адресам на этом же сервере.


Директивы управления доступом к отдельным каталогам

Блок директив Directory — обычно определяет свойства каталога (см. пример 3).

Пример 3. Директива Directory




Options Indexes Includes FollowSymLinks

AllowOverride None



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

В блоке Directory могут находиться директивы управления доступом. К ним относятся директивы AllowOverride, Options, Limit.

Директива AllowOverride может принимать значения, указанные в табл. 1.

С помощью директивы Options можно определить функции сервера, которые будут доступны для использования в определяемом каталоге. Данную директиву можно использовать, как в файле httpd.conf, так и в файлах .htaccess. Допустимые опции для директивы Options представлены в табл. 2.


Таблица 1 Значения директивы AllowOverride

Значение

Описание

None

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

All

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

Options

Разрешает использовать директиву Options

Limit

Разрешает использовать директиву Limit

AuthConfig

Разрешает использование директив AuthName, AuthType, AuthUserFile и AuthGroupFile

Filelnfo

Разрешает использовать в файлах .htaccess директивы

AddType и AddEncoding