Реферат: Тема: «Установка и настройка Web-сервера Apache+php+Mysql»
Преподаватель Халелова Е.Н.
Тема: «Установка и настройка 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-серверы поддерживают виртуальные хосты. У вас будет собственное имя, например, www.firma.ru, но в действительности ваши файлы не будут помещены на отдельном компьютере www.firma.ru, а будут находиться на сервере провайдера (или хостера) — www.isp.ru.
Благодаря технологии виртуальных узлов один сервер хостинг-провайдера обслуживает сотни или даже тысячи сайтов.
На своем домашнем Web-сервере вы также можете создать один или несколько виртуальных узлов.
^ Listen. Позволяет связывать Apache с определенным IP-адресом и (или) дополнительными портами.
BindAddress. Данная директива используется для поддержки виртуальных хостов и применяется, чтобы сообщить серверу, какой IP-адрес следует прослушивать. Значением данной директивы может быть «*» (любой адрес), IP-адрес или полное имя домена.
^ Директивы настройки отображения каталогов
Directorylndex — позволяет задать название документа, который будет возвращен по запросу, который не содержит имя документа. С помощью данной директивы можно задать несколько имен файлов.
Значениями по умолчанию являются: index.html, 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.html.ru, а для английского — index.html .en.
LanguagePriority указываются приоритеты различных языков. Например,
^ LanguagePriority en ru
Клиент вводит в строке адреса своего браузера адрес http:// www.server.com/. Если в свойствах браузера имеется возможность задать предпочитаемый язык, то возвращен будет файл на нужном языке, если такой существует. Если браузер клиента не поддерживает такую возможность, будет возвращен файл на языке, имеющем наиболее высокий приоритет. В рассмотренном случае (см. пример) это английский язык. Если файл на нужном языке, например, на немецком, не существует, то будет возвращен файл на английском языке. Для того, чтобы сервер поддерживал нужный вам язык, предварительно установите правильное значение директивы AddLanguage.
^ Директивы перенаправления
Довольно часто нужно перенаправить пользователя на другой ресурс, например, вы сменили хостера и из-за этого изменилось имя вашего сайта.
Redirect. Используется, когда нужно перенести документы в другой каталог или на другой сервер. Например, вам нужно перенести данные из каталога /users/den в каталог /den. Если при этом старый URL-адрес был http://www.host.com/users/den, то новый станет http: //www.host.com/den/.
Пример: ^ Redirect /users/den /den
Можно также перенаправить запрос на другой сервер: Redirect/ users/den/ www.den.domain.com
При этом допускается использование, как нового, так и старого 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
Таблица 2 Допустимые опции директивы Options
Опция
Описание
None
He разрешается использование каких-либо функций
All
Разрешаются все функции
FollowSymLinks
Разрешается использовать символические ссылки. С точки зрения безопасности не рекомендуется использовать этот режим
SymLinkslfOwnerMatch
Разрешается использование символических ссылок, если ссылка указывает на объект, который принадлежит тому же пользователю, что и ссылка
ExecCGI
Разрешается выполнение CGI-сценариев
Indexes
Если эта опция выключена, сервер не будет передавать содержимое каталога при отсутствии файла index.html
Includes
Разрешено использование серверных включений. Рекомендуется отключить эту опцию, поскольку это сильно нагружает сервер
IncludesNoExec
Разрешает использование серверных включений, но запрещает запуск из них внешних программ
Использование директивы Limit имеет следующий вид:
^ Limit, метод
Директива Limit ограничивает доступ к файлам в определенном каталоге. Параметр метод определяет метод передачи, например, GET или POST. Директиву Limit можно использовать внутри блоков Directory, Location или в файле .htacccess.
Блок директив Limit
В блоке ^ Limit можно использовать такие директивы: allow (разрешить), deny (запретить), order (порядок), require (требуется). После директивы allow следует слово from, после которого можно указать IP-адрес, адрес сети, домен или просто имя компьютера. Слово all обозначает все компьютеры. Например, требуется запретить доступ всем компьютерам, кроме компьютеров, которые входят в домен ru (см. пример 4).
^ Пример 4. Директивы allow, deny
order deny, allow
deny from all
allow from ru
Следующий пример показывает, как разрешить доступ компьютерам только из вашей сети (см. пример 5). Пусть, при этом, сеть имеет адрес 192.168.1.0.
Пример 5. Разрешения доступа подсети 192.168.1.1.
order deny, allow
deny from all
allow from 192.168.1.1
Директива order определяет порядок выполнения директив allow и deny. Кроме значений allow, deny и deny, allow, директива order может содержать значение mutual-failure. В этом случае доступ будет отказан всем компьютерам, которые явно не указаны в списке allow.
Директиву require можно использовать для защиты каталога паролем. После названия директивы должен следовать список элементов: имена пользователей, групп, которые заданы в директивах AuthUserFile и AuthGroupFile. Можно использовать параметр valid-user, который укажет серверу предоставить доступ любому пользователю, имя которого имеется в директиве AuthUserFile, если он введет правильный пароль (см. пример 6).
^ Пример 6. Использование директивы require
AuthUserFile /var/secure/.htpasswd
AuthName Security
AuthType Basic
order deny, allow
deny form all
allow from rnydomain.ru
require valid-user
В примере 6 для аутентификации используется файл паролей .htpasswd, который можно создать с помощью программы htpasswd. Директивы блока Limit разрешают доступ к любому каталогу сервера только пользователям домена mydomain.ru
Кроме параметра valid-user допускается использование параметра users или grpoups. Данные параметры разрешают доступ только определенным пользователям или группам пользователей (см. пример 7).
Пример 7. Применения параметра users
AuthType Basic
AuthUserFile /var/users/ .htpasswd
AuthName UsersDir
require users denis igor evg
Блок директив Location
С помощью директив, расположенных в блоке Location, можно задать определенный URL-адрес, который предназначен для обозначения каталогов, файлов или групп файлов. Обозначить группу файлов можно с помощью шаблонов, например, шаблон *.html определяет все файлы, имена которых заканчиваются на .html. В URL-адрес не включается протокол и имя сервера (см пример 8).
^ Пример 8. Блок Location
директивы управления доступом
Каталоги пользователей
Директива UserDir включает поддержку пользовательских каталогов. Эта директива определяет общее название подкаталога в домашних каталогах всех пользователей. По умолчанию используется каталог public_html.
Доступ к файлам, расположенным в этих каталогах, производится с помощью указания через наклонную черту пользователя после имени сервера. Например, пусть имя сервера www.server.com, имя пользователя — denis, тогда URL-адрес будет выглядеть так: http: //www. Server. com/ ~denis/. При этом сервер самостоятельно определит, где именно расположен домашний каталог пользователя. Если домашний каталог пользователя /home/den, то сервер передаст клиенту файл /home/den/ public_html/index.html.
^ Виртуальные HTTP-серверы
Концепция виртуальных хостов позволяет серверу Apache поддерживать несколько Web-узлов. Получается, что один Web-сервер заменяет несколько серверов, и вместо одного узла пользователи видят отдельные Web-узлы. Это очень удобно, если нужно организовать персональные Web-узлы пользователей или собственные Web-узлы подразделений компании, например, develop.mycompany.com.
Сервер Apache можно настроить несколькими способами:
чтобы запускался один сервер, который будет прослушивать ВСЕ обращения к виртуальным серверам,
или запускать отдельный процесс для каждого виртуального сервера.
В первом случае один сервер будет одновременно обслуживать все виртуальные. В этом случае нужно настраивать виртуальные сервера с помощью директивы VirtualHost. Настройка отдельных процессов для каждого сервера осуществляется с помощью директивы Listen и BindAddress.
В зависимости от версии и от настроек Apache виртуальные узлы могут прописываться или в файле httpd.conf, или в файле vhosts.conf.
Виртуальные серверы можно идентифицировать по имени или по IP-адресу.
^ Виртуальные серверы с идентификацией по имени
Идентификация по имени имеет существенное преимущество перед идентификацией по IP-адресу: нет ограничения количества адресов, имеющихся у вас
в распоряжении. Можно использовать любое количество виртуальных серверов, и при этом не потребуются дополнительные адреса. Такое возможно благодаря использованию протокола HTTP/1.1. Данный протокол поддерживается всеми современными браузерами.
Поддержка виртуальных хостов обеспечивается директивами VirtualHost и NameVirtualHost. Если ваша система имеет только один IP-адрес, его нужно указать в директиве VirtualHost. Внутри блока директивы VirtualHost записывается директива ServerName. Эта директива задает доменное имя для создаваемого виртуального сервера. Все директивы VirtualHost используют один и тот же IP-адрес, заданный директивой NameVirtualHost. В блоке VirtualHost записываются параметры виртуального сервера, причем они записываются для каждого виртуального сервера отдельно (см. пример 9).
Структура каталогов виртуального узла задается директивами DocumentRoot, ErrorLog и TransferLog. Из примера 9 видно, что корневым каталогом для нашего виртуального узла будет /var/httpd/ www/html, а протоколы будут находиться в каталоге /var/httpd/www/ logs/error.log.
Пример 9. Два виртуальных сервера – www и lib
ServerName den . dhsilabs.com
ServerName www.dhsilabs.com
ServerAdmin webmaster@den.dhsilabs.com
DocumentRoot /var/httpd/www/html
ErrorLog /var/httpd/www/logs/error.log
TransferLog logs/access.log
ServerName lib.dhsilabs.com
ServerAdmin webmaster@den.dhsilabs.com
DocumentRoot /var/httpd/lib/html
ErrorLog /var/httpd/lib/logs/error.log
TransferLog logs/access.log
Если система имеет только один IP-адрес, значит доступ к основному серверу станет невозможным, то есть вы не сможете использовать его напрямую. Можно основной сервер использовать в качестве виртуального. При наличии двух IP-адресов можно один присвоить основному серверу, а другой — виртуальному.
Сервер Apache позволяет использовать несколько доменных имен для доступа к одному серверу, например:
^ ServerAlias www.dhsilabs.com www2.dhsilabs.com
При этом запросы, посланные по IP-адресам, которые присвоены виртуальным хостам, должны соответствовать одному из указанных доменных
имен. Чтобы зафиксировать запросы, не соответствующие ни одному их этих имен, нужно с помощью опции default:* создать виртуальный хост, который будет обслуживать такие запросы:
Обратите внимание на то, что в рассмотренном примере адреса
www. dhsilabs . com и lib. dhsilabs . com должны быть прописаны в DNS.
^ Виртуальные серверы с идентификацией по IP-адресу
В директиве VirtualHost в качестве адресов можно использовать доменные имена, но лучше указывать IP-адрес, причем действительный, а не виртуальный. В этом случае вы не будете зависеть от DNS при разрешении имени. Также потребуется один IP-адрес для вашего основного сервера. Если же распределить все адреса между виртуальными серверами, то нельзя будет получить доступ к основному серверу.
^ Пример 10. Идентификация по IP-адресу
ServerName www.dhsilabs.com
ServerAdmin webmaster@den.dhsilabs.com
DocumentRoot /var/httpd/www/html
ErrorLog /var/https/www/logs/error .log
ServerName lib.dhsilabs.com
ServerAdmin webmaster@den.dhsilabs.com
DocumentRoot /var/httpd/lib/html
ErrorLog /var/https/lib/logs/error.log
В приведенном примере (см. пример.10) сконфигурированы два виртуальных сервера с идентификацией по IP-адресу. Один из них использует сам IP-адрес, а другой — доменное имя, соответствующее IP-адресу.
При конфигурировании виртуальных серверов можно использовать опцию ExecCGI, которая разрешает выполнение CGI-скриптов на виртуальном сервере. Ниже приведен пример для почтового Web-интерфейса (см. пример 11)
Пример 11. Подключение почтового Web-интерфейса
# файл httpd.conf
order deny,allow
deny from all
allow from localhost
allow from 192.168
allow from 123.123.123.123
Options ExecCGI
#Файл vhosts.conf
ServerAdmin webmaster@den.dhsilabs.com
DocumentRoot /home/httpd/mail
ServerPath /mail
ServerName wwwmail.dhsilabs.com
ErrorLog logs/error_log
TransferLog logs/access_log
ErrorDocument 403 http://www.dhsilabs.com/messages/error403.html
#Error 403 — доступ извне, то есть почтовый интерфейс будет
#доступен только из локальной сети
Установка Apache+PHP+MySQL под Linux (Unix)
Все необходимое программное обеспечение входит в состав Linux — серверы Apache и MySQL, PHP, а также дополнительные модули mod_php и php_mysql. Программное обеспечение находится:
www.apache.org — официальный сайт Apache Group;
www.mysql.org — сайт разработчиков MySQL;
www.php.net — официальный сайт разработчиков РНР.
Для установки сервера Apache необходимо установить пакеты apache и apache-docs. В первом из них находится сам сервер, а во втором — документация. В последних версиях нужно установить еще и пакет apache-common, содержащий необходимые файлы для запуска сервера. Проще всего установку Apache можно произвести, введя следующую команду: rpm -ih apache*
После установки сервер конфигурируется для запуска в режиме standalone, то есть он будет постоянно находиться в памяти. Для запуска и останова сервера Apache используются команды:
/etc/rc.d/init.d/httpd start;
/etc/rc.d/init.d/httpd stop.
или команды
service httpd start;
service httpd stop.
После успешной установки сервера необходимо отредактировать файл /etc/httpd/conf / httpd.conf.
В нем необходимо исправить директиву — ServerName. При этом, на данном этапе (пока новое имя сервера Apache не зарегистрировано на вашем сервере DNS), вместо того имени, которое будет использоваться в дальнейшем (например, www.host.domain), установите обыкновенное имя вашего сервера, например, server.firma.ru. Данное имя должно быть зарегистрировано на DNS-
сервере вашей сети. После этого запустите сервер. Затем откройте любой браузер и попробуйте обратиться к серверу http://localhost
Теперь попробуйте обратиться к этому серверу с другого компьютера вашей сети: http://server.firma.ru
Если вы увидите приветствие сервера в первом и во втором случаях, значит, сервер Apache нормально работает и можно приступать к его дальнейшему конфигурированию.
В отличие от Windows-версии Apache, в Linux-версии вам не нужно редактировать какие-либо другие директивы, поскольку стандартные значения устраивают большинство пользователей. Вам также не нужно вручную прописывать РНР, поскольку он встраивается в Apache автоматически при установке пакета mod_php. Единственное, что вам нужно знать — это структуру каталогов — что и где лежит.
Корневым каталогом вашего Web-сервера является каталог /var/www/ html. Когда пользователь введет http://your_server.ru/ в строке браузера, ваш Web-сервер будет искать файл index.html именно в этом каталоге. Если данный каталог вас не устраивает, измените директиву DocumentRoot в файле конфигурации httpd.conf, после чего перезапустите Apache: service httpd restart.
Каталог /var/www/cgi-bin содержит CGI-приложения: из этого каталога возможен запуск программ. Журналы сервера находятся в каталоге /var/log/httpd.
^ Конфигурирование Apache с помощью netconf
Практически все параметры Web-сервера Apache можно установить, используя конфигуратор netconf (или linuxconf). Для этого запустите netconf и перейдите на вкладку Server Tasks, а затем нажмите на кнопку «Apache Web-server».
С помощью netconf устанавливаются основные параметры Apache (виртуальные хосты, параметры подкаталогов, спецификация каталогов и модулей, а также устанавливаются параметры модуля mod_ssl). Модуль mod_ssl обеспечивает поддержку защищенных SSL-соединений.
^ Установка MySQL
Благодаря своей простоте сервер MySQL приобрел широкое распространение в сети Интернет. MySQL идеально подходит практически для любого Интернет-проекта.
Прежде всего, нужно установить пакеты, необходимые для работы MySQL.
MySQL_GPL-3.x.x
MySQL_GPL-client-3.x.x
MySQL_GPL-sharcd-libs-3.x
MySQL_GPL-bench-3.x.x
MySQL_GPL-resolveip-3.x.x
Проще всего воспользоваться командой rpm -ih MySQL* для установки сервера. После установки пакета нужно создать базу данных mysql:
mysql__install_db
Если основная база данных существует, программа сообщит об этом. Теперь нужно установить пароль для пользователя root. По умолчанию пользователь root не имеет пароля.
База данных mysql является системной базой данных и содержит следующие таблицы:
таблицу db;
таблицу host;
таблицу user.
Таблица user содержит пароли всех пользователей, которые имеют право работать с сервером. На данном (начальном) этапе в базу данных внесен только один пользователь — root. Для изменения пароля запустите сервер командой:
safe_mysqld &
Эта команда запустит сервер в режиме демона и освободит консоль. Если все пакеты были установлены правильно, вы увидите сообщение;
mysql: ready for connections
Затем введите команду:
mysql -u root mysql
Данная команда запускает клиент MySQL. При этом используется имя пользователя root. Последний параметр определяет базу данных — mysql.
Измените пароль суперпользователя с помощью команды:
UPDATE user SET Password=PASSWORD('new_password') WHERE user='root';
Теперь нужно, чтобы MySQL принял изменения. Для этого выполните еще один запрос SQL:
^ FLUSH PRIVILEGES;
Для принятия изменений можно также использовать программу mysqladmin с параметром reload:
mysqladmin -р reload
Выйти из клиента mysql вы можете, введя команду quit.
Установите права доступа к сценарию /etc/rc.d/init.d/mysql:
chmod +х /etc/rc.d/init.d/mysql
Теперь перезапустите сервер командой:
/etc/rc.d/init.d/mysql restart
Если вы забудете пароль, вы его уже не восстановите. Единственный выход из этого положения — удалить каталог /var/lib/mysql/mysql и создать базу mysql заново командой mysql_install_db.
Теперь вы уже не можете зарегистрироваться на сервере без пароля. Если вы введете команду mysql -u root mysql, то получите следующее сообщение:
ERROR: Access denied for user: ' root@localhost' (Using password: NO)
Для регистрации на сервере теперь нужно использовать команду
mysql -u root -р. Параметр -р запросит пароль при регистрации.
Последнее, что вам осталось сделать — это добавить сервер MySQL в автозапуск. С этой целью перейдите в каталог /etc/rc.d/rc3.d/ и создайте символическую ссылку на файл /etc/rc.d/init.d/mysql:
in -s S14mysql /etc/rc.d/init.d/mysql
Префикс S14 определяет очередность запуска сервера mysql. В данном случае он запустится после сервисов network (S10) и portmap (S11). У вас эти значения могут быть другими.
В своей работе демон mysqld использует файл журнала /var/log/ mysql.log. Именно в него заносятся все транзакции, а также все команды, которые ввел пользователь. После установки сервера нужно внести пользователей, которые имеют право работать с сервером баз данных. Введите следующий запрос:
GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
Введенный запрос создаст пользователя admin, который будет иметь право выполнять любые операции со всеми базами данных. Данный пользователь будет иметь право подключаться к серверу с компьютера localhost, используя пароль password.
Маска *.* определяет, к каким базам данных и таблицам имеет право подключаться тот или иной пользователь. Первая звездочка определяет базу, а вторая — таблицу. Если нужно, чтобы пользователь admin имел право подключаться с любого хоста, используйте знак процента вместо имени хоста. В этом случае запрос будет выглядеть так:
GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY
' password' WITH GRANT OPTION;
Вместо всех полномочий вы можете определить, какие действия может выполнять с базой тот или иной пользователь. Если вы являетесь хостинг-провайдером и предоставляете доступ пользователю к его базе данных, то вы можете использовать следующий запрос:
GRANT CREATE, DROP, SELECT, INSERT, UPDATE, DELETE, INDEX ON user.* TO user@% IDENTIFIED BY 'user_password';
Перед выполнением данного запроса необходимо создать базу данных user.
Полный список полномочий представлен в табл. 3.
еще рефераты
Еще работы по разное
Реферат по разное
1Корпорация sgi
17 Сентября 2013
Реферат по разное
Інформаційна безпека систем електронної комерції поняття інформаційної безпеки
17 Сентября 2013
Реферат по разное
Научно-образовательные ресурсы ниияф мгу в интернет
17 Сентября 2013
Реферат по разное
Использование структуры удостоверяющего центра при создании защищенных Web-сайтов
17 Сентября 2013