О себе
Вы можете связаться со мной, зайдя в раздел Обратная связь
Что делаю?
Пишу
- Textpattern: больше чем просто блог
- На связи у Skype
Публикация сайта в Сети. Часть I
О «Денвере», кстати, было рассказано совсем не зря, ведь принципы работы на локальном и удаленном серверах во многом схожи. В чем подобие, а в чем отличия, вы узнаете из статьи. Но прежде чем приступать непосредственно к делу, нужно кое в чем определиться. Смотрите, у нас есть два варианта дальнейших действий:
1) Установка CMS-движка на удаленном сервере
2) Перенос готового сайта с локального сервера на сервер удаленный
Ни первый, ни второй варианты, разумеется, не останутся без внимания. Оба они могут быть оптимальными решениями — все зависит от поставленной цели. Проще и быстрее осуществить «чистую» установку движка (т.е. первый вариант), но уж если вы долгое время разрабатывали проект на локальном сервере и желаете перенести в Интернет уже готовый сайт, следует выбирать вариант 2.
Начнем с «чистой установки». В чем заключается легкость данного решения? Дело в том, что здесь совсем не обязательно затрагивать БД. По крайней мере, на этапе установки CMS. Перенос файлов движка на сервер, инсталляция — вот и все. Единственный «темный» момент: закачка файлов не обходится без «общения» с FTP. Знания об этом протоколе будут совсем не лишними — необходимыми. Готовы к теории :)?
Введение в FTP. FTP-менеджеры
FTP (File Transfer Protocol) — один из старейших протоколов передачи данных. Появился он в 1971 году (публике впервые представлен в 1973) и за 30 лет претерпел существенные изменения, в основном в параметрах безопасности. Окончательный вид стандарт обрел в 1985 году. С FTP мы сталкиваемся довольно часто. Так, ни для кого открытие, что программное обеспечение в своем большинстве хранится именно на FTP-серверах. Яркий тому пример — свободно распространяемое программное обеспечение под Linux или, скажем, приватные FTP-серверы в LAN-сетях. Огромнейшие залежи информации! По крайней мере по этой причине заявить, будто «FTP утратил популярность», нельзя. Как и HTTP (Hypertext Transfer Protocol), он активно используется.
Впрочем, между HTTP и FTP — этими маститыми стандартами WWW — отличия существенные. Так, если при HTTP задействован один канал данных, то у FTP их два — канал данных и управляющий (информационный). По первому передаются файлы, а по второму, управляющему каналу, осуществляется связь между компьютером пользователя и удаленным сервером — по стандартам протокола Telnet. Конечно же, никто не вынуждает нас вводить telnet-команды (POST, LIST, PASV, PASS, CWD и др.) через консоль: для упрощения работы предназначены FTP-клиенты (менеджеры) с графическим интерфейсом. Приведу неполный перечень самых известных:
FtpVoyager (www.ftpvoyager.com)
CuteFtp (www.cuteftp.com)
SmartFTP (www.smartftp.com)
LeechFTP (www.stud.fh-heilbronn.de/~jdebis/leechftp)
FtpRush (www.ftprush.com)
FlashFxp (www.flashfxp.com)
Кроме того, для закачки файлов по FTP неплохие возможности имеются и у Total Commander’а. Но, пускай как FTP-менеджер он вполне сгодится, я не советовал бы активно им пользоваться — довольно небезопасно и неудобно. В плане FTP Total Commander малофункционален, не знаком с технологией SSL и, вдобавок ко всему, хранит данные для FTP-доступа в отдельном файле (wcx_ftp.ini). Пароли зашифрованы в MD5-хэше, однако сейчас MD5 — не очень эффективная защита от злоумышленника. Для минимального обеспечения безопасности пароль рекомендовано указывать не в настройках FTP-соединения, а при каждом подключении к серверу. Кстати, к Total’у существует несколько plug-in’ов, которые в значительной степени расширяют возможности встроенного клиента и делают работу по FTP более безопасной (защита данных, SSL-шифрование и т. п.).
Штатные средства ОС Windows 98-XP нам не помощники. Проводник использовать нет смысла, а консольная утилита Ftp (Пуск>Выполнить>ftp) пригодна только для ознакомления с базовыми функциями работы используемого протокола (команда «help»). А вот обладателям Linux’а повезло: практически в любом дистрибутиве этой ОС присутствует несколько FTP-клиентов — как консольных, так и с GUI-интерфейсом, и для KDE, и для Gnome. Ну, а пользователям «Окон» советую остановиться на FTP-клиенте из упомянутого списка. Благо, есть возможность выбора. Практически любой из вышеназванных обладает такими достойными качествами, как функциональность, безопасность, удобство работы и интерфейса. Я не стану проводить обзор программ, а рассмотрю одну — CuteFtp 7 — на мой взгляд, одно из самых популярных решений.
Приступая к работе в Сети, мы шаг за шагом настроим FTP-клиент и посмотрим, как с ним следует обходиться. Итак, открыв CuteFtp и создав новое FTP-соединение (Ctrl+N), вы увидите диалог с 4 вкладками: General, Type, Actions и Options.
Вкладка General:
Label: Имя FTP-соединения. Любая ассоциативная метка
Host address: Адрес FTP-сервера, на который будут закачиваться файлы
Username/Password: Логин/пароль для доступа к FTP-серверу
Login method: Оставим Normal. При выборе Anonymous логин должен быть «anonymous», а пароль — любой e-mail
Вкладка Type:
Protocol type: Предложены неплохие возможности. По умолчанию указано просто «FTP», но вы, конечно, поэкспериментируйте с настройками. Шифрование данных для этого протокола в любом случае не помешает
Server type: ОС удаленного сервера
Data connection type: Тип подключения. Чаще всего используется пассивный режим (PASV)
Transfer type: FTP различает в основном два типа предачи данных: двоичный (Binary, Image) — графические изображения, архивы, исполняемые файлы и т. д. и текстовый (ASCII) — файлы текстового формата (config-, *.txt файлы, скрипты и т. п.). FTP-клиент умеет сам определять тип данных и «на лету» чередовать ASCII c Binary (опция Auto-detect). Из типов предачи еще отмечу Ebcdic, но он, похоже, утратил актуальность
Password protection: Шифрование пароля для доступа к серверу. Замечено, что редкий хостер поддерживает шифровку пароля. Так что выставить по выбору MD5, MD4 или Auto-detect OTP (One Time Password) может и не получиться: опция зависит напрямую от серверных технологий хостера. У меня, например, ни одна из названных не сработала (не считая Not Encrypted)
Вкладка Actions:
When…remote folder: После соединения с сервером идет переход в определенную вами директорию Эту строчку можно оставить пустой или вписать слэш /. Если файлы сайта содержатся в определенном каталоге, то пропишите его путь, например: www/, htdocs/, public/
When…local folder: Для удобства выберите ту директорию, из которой закачиваете файлы на сервер For navigation…options: Использовать ли функцию кэширования при навигации по серверу и, исходя из этого, другие настройки
Вкладку Options мы пропустили, поскольку она нас интересует в малой степени. Ну а для заполнения вышеназванных пригодятся данные, добытые у хостера.
Что ж, программа настроена и ждет, когда вы подключитесь к Сети. Соединившись с FTP-сервером (комбинация
В описанном мною случае рассматривается типичный вариант FTP-соединения: «пользователь — сервер». Однако не стоит сбрасывать со счетов другую, весьма любопытную опцию некоторых FTP-клиентов — FXP (кросссерверное соединение). Благодаря FXP можно осуществить передачу данных с одного хоста на другой, т. е. соединение типа «сервер — сервер». Между ними организуется канал данных, пользователь же «заведует» управляющим каналом. Представьте себе, какая высокая скорость передачи может быть достигнута! Но учтите, что сервер далеко не каждого хостера поддерживает описанную технологию.
Настройка прав доступа для файлов (CHMOD)
После закачки движка на удаленный FTP-сервер требуется установить права доступа (далее — ПД) к файлам и каталогам согласно руководству CMS (но если там не оговорено, значит не надо). Очень ответственный момент для безопасности вашего сайта. Как мы знаем, в Windows есть понятие «атрибуты» (Только чтение, Скрытый, Архивный). В UNIX — а большинство серверов в Интернете функционирует под *nix —рименяется более совершенная и надежная система присвоения ПД:
| Текст. значение (сокращенно) | Цифр. значение | Описание |
|---|---|---|
| - rw – | (600) | чтение и запись доступны только владельцу |
| - rw – r – - r – | (644) | владелец имеет разрешение на чтение и запись; группа и все остальные — только на чтение |
| - rwx – | (700) | только владелец имеет разрешение на чтение, запись и исполнение |
| - r w x r – xr – x | (755) | владелец имеет разрешение на чтение, запись и исполнение; группа и остальные — только на чтение и исполнение |
| - rwx – - x – - x | (711) | владелец имеет разрешение на чтение, запись и исполнение; группа и остальные — только на исполнение |
| - wxrwxrwx | (777) | всем разрешены чтение, запись и исполнение |
| Текст. значение (сокращенно) | Цифр. значение | Описание |
|---|---|---|
| drwx — | (700) | только владелец имеет доступ к чтению и записи в директории |
| drwxr – xr – x | (755) | владелец имеет полный доступ к директории, остальные имеют права на чтение содержимого директории и на исполнение |
Необходимо сделать пояснения, что означают символы в первой колонке:
“R” (read) — чтение
“x” (eXecute) — исполнение, запуск
“w” (write) — чтение
“-” — запись запрещена
“-” (вначале) — признак файла
“d” (вначале) — признак директории
Кроме буквенного, CHMOD имеет и цифровое обозначение (второй столбик). Оно присваивается по особому механизму, о котором, наверное, не стоит рассказывать (особо любопытным могу разъяснить на форуме).
Проанализировав таблицу, можно сделать такой вывод: чем больше букв и чем выше цифра, тем выше уровень доступа к файлам/каталогам у владельца, группы и остальных. Владелец (user) — это хозяин FTP-ресурса; группа (group) — пользователи, подключенные к FTP-ресурсу; остальные (world) — взаимодействующие с сайтом через HTTP. Заметно, что разница в правах между 600 и 777 очень большая. Отсюда второй вывод: нужно быть осторожным и внимательным при выставлении ПД. CHMOD’ом не стоит особо увлекаться, поскольку чрезмерное ограничение/разрешение прав к определенному файлу (папке) может принести нежелательный эффект :).
Как выставлять права доступа? В FTP-клиенте, выделив требуемые папку/файл, выберите опцию Properties из контексного меню. Появится окошко, где можно будет ввести «заветные» цифры. Не первый раз, просматривая форумы вебмастерской направленности, я удивляюсь: почему многие не пользуются таким простым и быстрым методом? Кто в FAR-manager’е права выставляет, кто в Total Cmd, кто в Putty и т. д. Дело привычки?..
Завершение установки
В остальном размещение сайта в Сети аналогично «локальному». После закачки файлов и настройки прав доступа запускаем мастер установки движка и вводим запрашиваемые данные. Понятно, что они будут несколько отличаться от «локальных». В частности, адрес сервера баз данных ($dbhost) у хостера не всегда localhost. Возможно, другие и логин/пароль БД. Префикс таблиц следует указать тот, что и на вашем домашнем сервере, — для совместимости между двумя SQL-базами. Рассчитывайте на то, что в дальнейшем вы будете импортировать/экспортировать как саму БД, так и некоторые ее таблицы — обмениваться данными, в общем. В данном направлении отлично поможет PhpMyAdmin.