Тема: «Установка и настройка Web-сервера Apache+php+Mysql»
Вид материала | Документы |
- Тема php и базы данных Mysql, 134.82kb.
- В. К. Толстых учебное пособие администрирование сервера iis 5 Донецк, Донну 2004 министерство, 663.13kb.
- Установка и настройка программы WinGate Установка и настройка программы WinRoute Настройка, 444.53kb.
- Отчет по циклу лабораторных работ «Локальные вычислительные сети», 62.03kb.
- Волковский Дмитрий Михайлович, 161.39kb.
- Язык веб-программирования php. Обзор возможностей, области применения, 20.42kb.
- Настройка vpn сервера на Windows, 21.77kb.
- Настройка прокси-сервера в Google Chrome, 6.08kb.
- Установка и запуск программы 6 Настройка соединения, авторизации и безопасности 6 Подключение, 1851.46kb.
- Содействия Трудоустройству, 471.6kb.
Преподаватель Халелова Е.Н.
Тема: «Установка и настройка Web-сервера Apache+PHP+MySQL»
Вопросы темы:
- Web-сервер Apache – функции, конфигурационные файлы web-сервера
- Конфигурационный файл httpd.conf и его директивы.
- Виртуальные HTTP-серверы
- Установка Apache+PHP+MySQL под Linux (Unix)
- Установка Apache+PHP+MySQL под Windows
- 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 содержит параметры доступа к серверу.
- Конфигурационный файл httpd.conf и его директивы
Директивой называется параметр сервера, влияющий на его поведение. Директивы бывают простыми и сложными, которые также называются блоками директив. Простые директивы изменяют только одно свойство сервера, например, его имя, а блоки директив позволяют изменять сразу несколько свойств какого-нибудь объекта, например, каталога.
Директивы конфигурационного файла сервера Apache можно условно разделить на такие группы:
- Общие. К общим директивам относятся глобальные директивы, влияющие на работу всего Web-сервера. Это директивы ServerName, ServerType, Port, User и Group, ServerAdmin, ServerRoot, PidFile, DocumentRoot, UserDir.
- Директивы протоколирования: ErrorLog, TransferLog, Hostname Lookups.
- Директивы ограничения доступа: AllowOverride, Options, Limit.
- Директивы управления производительностью: StartServers, MaxSpareServers, MinSpareServers, а также директива CacheNegotiatedDocs.
- Директивы обеспечения постоянного соединения с клиентом: Timeout, KeepAlive, KeepAHveTimeout.
- Директивы настройки отображения каталогов. Оформить отображение каталогов можно с помощью директив настройки отображения каталогов: Directorylndex, Fancylndexing и AddlconByType.
- Директивы обработки ошибок. Директивой обработки ошибок HTTP-сервера является директива ErrorDocument. С ее помощью можно установить реакцию на любую ошибку сервера, например, на ошибку 404 (документ не найден).
- Директивы перенаправления: Redirect, Alias и ScriptAlias.
- Директивы для работы с многоязычными документами: AddLanguage и LanguagePriority.
- Директивы обработки MIME-типов. Настроить свой сервер для обработки различных MIME-типов можно с помощью директив DefaultType, AddEncoding, AddType, AddHandler и Action.
- Директивы создания виртуальных узлов: 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 |