CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Сервер племени апачей

Артем Cosmic ШМАНЦЫРЕВ cosmic@mail.zp.ua

Окончание, начало см. в МК № 38-40, 42, 44, 46, 50, 4 (209-211, 213, 215, 217, 221, 227)).
Сегодня мы поговорим о тех возможностях сервера Apache и языка PHP, которые я сознательно опустил в предыдущих статьях, считая их необязательными для изучения на тот момент. Но как известно, знаний много не бывает, и наблюдательные читатели уже отметили в своих письмах, что для полноты ощущений нам чего-то недостает. Вот именно об этом мы сегодня и поговорим.

В самом начале изучения PHP, когда мы устанавливали сервер и конфигурировали его, нами была предусмотрительно создана директория home в корневом каталоге файловой системы сервера. Я надеюсь, что она до сих пор лежит у вас на диске f:\, пылясь и негодуя на то, что ее незаслуженно забыли :-). Но сегодня мы ее реабилитируем — в ней мы создадим виртуальные хосты, став на время хостинг-провайдером, например, своего соседа :-).

Что же такое виртуальный хост? Дело в том, что ваше web-хозяйство после изучения таких языков программирования как PHP, Perl, Python и прочих неминуемо разрастется до размеров нескольких сайтов, на каждом из которых вам наверняка захочется разместить что-то свое, новое и оригинальное. И каждый из этих сайтов вы, естественно, будете отлаживать дома с применением уже отработанной схемы установки сервера Apache на диск f:\ для одного сайта, g:\ — для другого, h:\ — для третьего и т.д. В конце концов, буквы английского алфавита закончатся, и вам придется приобретать новый компьютер, на котором снова придется повторять установку сервера, не говоря уже о занимаемом дисковом пространстве, которое часто бывает весьма ограничено. Не очень радужная перспектива, правда? Так вот, чтобы избавить пользователей от столь нудной и дорогостоящей работы, разработчиками сервера Apache и было создано такое понятие как виртуальный хост. По сути, каждый виртуальный хост является как бы отдельным сервером, который имеет собственный IP-адрес и может иметь собственное доменное имя. Однако любой виртуальный хост является частью основного сервера, поэтому отпадает необходимость в установке и настройке новой копии сервера для каждого нового сайта.

Для того чтобы создать виртуальный хост, необходимо немного помучить файловую систему сервера, создав в директории f:\home директорию с желаемым именем хоста (например, f:\home\sosed1). Эта директория автоматически становится корневой для нашего хоста, поэтому в ней, как и в корневой директории сервера, необходимо создать каталоги с именами f:\home\sosed1\www (директория документов виртуального хоста) и f:\home\sosed1\cgi-bin (директория cgi-скриптов). В этой же директории будут находиться два файла, обязательные для сервера и, как следствие, для виртуального хоста. Первый файл с именем access.log является журналом доступа к документам виртуального хоста и может быть полезен при подсчете статистики посещения сервера теми или иными пользователями. Второй файл —errors.log — является журналом ошибок виртуального сервера и предназначен для хранения данных об ошибках соединения с хостом, ошибках открытия документов и других ошибках, характерных для сервера Apache. Файлы эти создадутся автоматически при запуске сервера после правильной его настройки, я лишь рассказал, для чего они предназначены.

Для создания виртуального хоста необходимо также соответствующим образом настроить сервер. Это делается при помощи заветного файла настройки сервера httpd.conf, в который нужно внести некоторые изменения. Думаю, к этому файлу вы уже привыкли :-), но на всякий случай напомню, что он должен находиться в каталоге f:\usr\local\apache\conf в случае установки сервера на диск f:\.

В самый конец файла httpd.conf (после всех директив настройки сервера) необходимо добавить следующие строки:

Теперь новый виртуальный хост доступен по IP-адресу 127.0.0.2 и в принципе является полноценным Web-сервером с поддержкой CGI и всех остальных «примочек» основного сервера. Таким же образом можно создать большое количество виртуальных хостов, присваивая каждому отдельный IP-адрес и создавая для них отдельные каталоги в папке home корневого каталога сервера.

Еще одной несомненно полезной особенностью сервера Apache является возможность переопределения параметров настройки для любого каталога, принадлежащего файловой системе сервера. Это значит, что каждый каталог может иметь настройки, отличные от тех, которые установлены для него в файле httpd.conf. Такая возможность реализуется путем создания в каталоге, настройки которого нужно изменить, специально созданного файла с именем .htaccess (да-да, именно так, с точкой в начале). Причем имя файла может быть и другим (это определяется в директиве AccessFileName файла httpd.conf). Кроме того, для директории, в которой располагается файл .htaccess, должна быть установлена директива AllowOverride со значением All, которая, собственно, и разрешает (или запрещает, если значение установить в None) использование данного файла в необходимой директории.

А файл этот обладает поистине неограниченными возможностями, так как в нем можно переопределить многие (за редким исключением) директивы, определенные в основном файле настройки сервера. И зачастую такая «гибкая» настройка параметров директории является единственно возможным средством для подстройки параметров этой директории под ваши нужды. Например, спешу вас огорчить, что далеко не каждый хостинг-провайдер даст вам возможность самостоятельно покопаться в файле httpd.conf его сервера. Поэтому единственным выходом будет использование файла .htaccess для настройки выделенного вам пространства под свои нужды.

Работа сервера с файлом .htaccess имеет некоторые особенности, которые, во избежание неприятностей :-), оговорим сразу. Файл, расположенный в корневой директории сервера, определяет настройки всех вложенных поддиректорий сервера, кроме тех, в которых будет находиться другой файл .htaccess. Последний, в свою очередь, отвечает за настройки всех поддиректорий, которые являются вложенными для той директории, в которой он находится. Непросто, согласен, но очень полезно :-).

Теперь поговорим о создании файла. Эта процедура тоже имеет свои особенности, связанные, как ни странно, с работой сервера в Windows. Файл .htaccess стандартными средствами Windows создать невозможно, так как эта всеми любимая операционная система почему-то не хочет создавать файл, имеющий расширение, но не имеющий имени. Из существующего положения есть два выхода. Первый состоит в использовании прикладных программ —Far, Total Commander и т.д., в которых такого рода файлы создаются без проблем. Второй выход — создать файл с именем, например, htaccess.txt, закачать его на сервер и уже там переименовать в .htaccess. Выбор за вами.

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

DirectoryIndex — директива, определяющая индексную страницу каталога. По умолчанию у большинства хостинг-серверов эта директива имеет значение index.htm или index.html, что нас не совсем устраивает по причине активного использования скриптов на PHP, которые обычно имеют расширение .php или .phtml. В файле .htaccess мы без проблем добавляем нужные нам расширения и получаем возможность загружать любые наши скрипты (в том числе и CGI) в качестве индексной (стартовой) страницы каталога. Записать это можно так:

ErrorDocument — крайне полезная директива, позволяющая вам переопределить адрес документа, который будет выводиться в качестве сообщения о той или иной ошибке. Самые распространенные ошибки —401 Authorization Required (необходима авторизация), 404 Document Not Found (документ не найден), 403 Forbidden (в доступе отказано), 500 Internal Server Error (внутренняя ошибка сервера). В .htaccess это можно записать так:

Теперь при ошибке 404 (если сервер не смог найти запрошенный документ в заданном каталоге) вместо стандартной, весьма малоинформативной страницы, сгенерированной сервером, будет выводиться ваша страница, которую вы можете сами подогнать по информативности и оформлению под общий дизайн сайта.

Redirect — перенаправление пользователя с запрошенной страницы или директории на другую страницу или директорию. Директива имеет два параметра — откуда и куда перенаправлять пользователя. Например:

Эта директива перенаправит пользователя, запросившего страницу index.html из корневой директории вашего сайта, на другую страницу, которая в принципе может находиться где угодно.

Кроме перечисленных стандартных директив, можно поиграться с правами доступа на ту или иную директорию для того или иного пользователя. Делается это при помощи директив allow (разрешить) и deny (запретить). Например, для того чтобы запретить доступ в необходимую нам директорию для всех пользователей, кроме самих себя, в .htaccess напишем:

Директива Allow (как и Deny) может принимать значение All (разрешено для всех пользователей) или значение в виде фиксированного IP-адреса, исключительно для которого доступ и будет разрешен. По умолчанию выполняются сначала директивы Deny, а затем Allow. Это значит, что Allow from all, записанная после всех Deny, разрешит доступ для всех пользователей, игнорировав все предыдущие директивы Deny. Порядок выполнения этих директив (что тоже иногда бывает полезно) устанавливается при помощи отдельной директивы Order. Например, Order Allow, Deny.

И последнее, о чем мы сегодня поговорим —загрузка созданных вами файлов на сервер вашего хостинг-провайдера. Но сначала немного о самих хостинг-провайдерах.

Для того чтобы ваш сайт увидели все, его адрес нужно зарегистрировать в специальной организации, ответственной за распределение доменных имен. Если вы имеете быстрый интернет-канал, мощный компьютер и много денег, вы можете установить сервер прямо на этот компьютер, привязав к нему зарегистрированное на вас доменное имя и определенный IP-адрес. Но в нашей стране далеко не каждый способен выложить энную сумму за домен и ежемесячно выкладывать еще более энную сумму за Интернет-траффик :-). Поэтому многим приходится обращаться к услугам хостинг-провайдера, который все-таки снимет с вас некоторую сумму за доменное имя, но зато всю ответственность за размещение и сохранность вашего сайта возьмет на себя. Вам же будет предоставлен доступ к сайту для его обновления и контактный телефон злого администратора, который теоретически должен ответить на все ваши вопросы :-).

Обновление сайта производится путем закачки на сервер новых файлов или обновления баз данных. Происходит сие священнодействие :-) чаще всего по протоколу FTP при помощи специализированных программ — так называемых FTP-клиентов. В качестве FTP-клиента может выступать даже всем известный Internet Explorer, который, однако, очень мало подходит для этих целей. Многие современные файловые менеджеры (опять же Far, Total Commander и некоторые другие) также имеют встроенные FTP-клиенты, работать с которыми чаще всего оказывается даже проще и удобнее, чем со специально созданными для этого программами. Поэтому их мы сегодня и рассмотрим.

Собственно, протокол FTP, как и HTTP, имеет собственную систему команд, при помощи которых происходит управление FTP-сервером. Однако синтаксис этих команд сложен, к тому же все FTP-клиенты скрывают от нас процесс взаимодействия с сервером, избавляя пользователя от нужды самостоятельно вводить команды, что бывает утомительно и может неизвестно чем завершиться :-). Поэтому команды мы рассматривать не будем, ограничимся лишь рассмотрением работы с FTP такого популярного файл-менеджера как Far. Если у вас вдруг не оказалось этой полезной программы (во что очень трудно поверить :-)), скачайте ее по адресу http://www.rarlab.com/far/Far1704.exe(версия 1.70 Beta 4, размер 1211 Кб). Программа бесплатна для жителей бывшего СССР, для ее регистрации запустите Far с ключом –reg и в появившемся окне в качестве регистрационного имени введите xUSSR регистрация, а в качестве регистрационного кода — маленькими русскими буквами введите название текущего дня недели.

Итак, определившись с выбором FTP-клиента, можно начать закачку готового сайта на сервер хостинг-провайдера. Для этого открываем Far, нажимаем Alt+F1 (для правой панели —Alt+F2) и из появившегося списка выбираем пункт с названием FTP. Выбранная панель менеджера выведет список всех созданных ранее FTP-подключений. Но поскольку ранее мы ничего не создавали, она может оказаться пустой. Чтобы создать новое подключение, необходимо нажать комбинацию клавиш Shift+F4 и в появившемся окне ввести данные по следующей схеме: ftp://пользователь:пароль@сервер:порт/папка. Например, ftp://password:user@mysite.org (в данном случае для доступа к корневой директории сервера необязательно указывать номер порта и путь к папке, но иногда и это может понадобиться). Пароль, запрашиваемый в окне, можно не указывать в том случае, когда вы ввели его в путь к соединению.

После ввода всех необходимых данных нажимаем кнопку «Соединиться» и через некоторое время в выбранной панели менеджера видим список файлов и каталогов, принадлежащих нашему серверу. Теперь с ними можно работать так же, как и с файловой системой локального компьютера — удалять (F8), перемещать/переименовывать (F6), копировать (F5), редактировать (F4), просматривать (F3), создавать папки (F7) и файлы (Shift+F4) и т.д. Чтобы загрузить наш сайт на сервер, переходим в противоположной панели (клавиша Tab) к каталогу, в котором он находится, отмечаем необходимые файлы (клавишей Insert) и копируем их на сервер (клавиша F5). Теперь сайт готов к употреблению.

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov