|
|
|
|
|
|
|
|
Хостинг / Технический регламент
|
|
|
|
|
- IP-адрес сервера: 94.31.184.186
- SMTP-сервер: mx.isety.net
- POP3-сервер: mx.isety.net
- FTP-сервер: isety.net (доступ по FTP к Вашей домашней директории может быть осуществлен
строкой: ftp://login:password@isety.net)
- Путь к Sendmail: c:/shttps/sendmail
- Путь к Perl-интерпретатору: c:/shttps/perl/bin/perl
- Query.php -
утилита работы с MySQL-сервером.
- Logs.php -
утилита обработки Лог-файлов хостов и выдачи журналов статистики и отчетов.
- Catalog.cgi -
каталог сервера isety.net. Если хотите чтобы Ваш сайт быстро попал в поисковые машины
интернета, то добавьте ссылку на него в этот каталог.
- SQL.htm -
удобный справочник по SQL-запросам для баз данных MySQL.
- Версии протоколов, поддерживаемых сервером: HTTP 1.1 и CGI 1.1
- Поскольку сервер работает под управлением Windows, то все правила для файлов и папок
отличаются от стандартов Unix:
- Игнорируется регистр букв (т.е. Index.HTM и index.htm - один и тот-же файл!)
- Инструкция \n (вставляющая символ перевода строки в вывод программ с кодом 10)
реально подразумевает последовательность \r\n (коды 13 и 10). В большинстве случаев
это не критично, но следует учитывать, что непарный \r расценивается препроцессорами
как \n. Чтобы избавиться от лишнего символа используйте выражение,
в Perl: $var=~s/\r//g; в PHP: $var=str_replace("\r","",$var);
- При программировании CGI-скриптов, для указания путей к файлам на диске
можно использовать любой разделитель: \ -принятый в Windows, или / -принятый в Unix.
Однако рекомендуется использовать только /. Например:
c:/users/login/cgi-bin/data/text.txt, можно записать так (вызов из cgi-bin): data/text.txt
- При работе с файлами через CGI-скрипты следует помнить, что файлы для записи доступны
только в директории /cgi-bin/ и ее поддиректориях. В других местах файлы для HTTP-сервера
доступны только для чтения.
- Большинство настроек своего сайта можно изменить с помощью файла постконфигурации
Apache - .htaccess
- Документ по умолчанию для любой папки - index.htm, index.shtm, index.shtml, index.html, index.cgi,
index.pl, index.phtm, index.phtml, index.php, index.html.var (именно в таком порядке)
- Документы принимаются в любой кодировке. Чтобы броузер клиента мог безошибочно определить
кодировку Вашей страницы рекомендуем вставлять в тэг <HEAD> инструкцию
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
(пример для кодировки Windows). HTML-документы и CGI-программы могут быть отформатированы в
UNIX-формат, это не критично. По умолчанию HTTP-сервером возвращается маркер charset=windows-1251,
если используете документы в другой кодировке, то добавьте в свой .htaccess строку:
AddDefaultCharset ВашаКодировка
- Максимальное время работы CGI-скрипта за вызов - 30секунд (закачка данных в PHP - 60с).
- WML-документы (и другие расширения) вызывают корректные HTTP-заголовки
для WAP. Если формируете документы с помощью CGI-скриптов, то Вы должны позаботиться о
том, чтобы они сами выдавали корректные заголовки.
- Ограничение на максимальный размер письма установлено на 1Mb.
- В Вашей домашней директории имеется 3 папки:
- mbox - в ней храняться Ваши письма
- logs - папка для лог-файлов. Изначально Ваш хост настроен так, что
там располагается только error.log и crone.log, но можете настроить свой хост так,
что там может быть и access.log, но тогда Вы не сможете пользоваться
утилитой чтения Логов.
- www - DocumentRoot. С этой директории начинается Ваш сайт.
- Все CGI-скрипты должны находится в папке /cgi-bin/, однако PHP-скрипты могут располагаться и в любой
папке с HTML-документами. Все, что находится в папке cgi-bin
(и ее подпапках) запускается при обращении по URL, вне этой папки - показывается содержимое документа
(за исключением PHP-скриптов). Скрипты, запускаемые только по расписанию через Crone (см.ниже) могут располагаться
в любой, в том числе и домашней директории.
- Вызовы SSI обрабатываются только в файлах с расширением: .shtml .sht .shtm .ssi
Можно вызывать SSI из подпапок и родительских
папок, например: <!--#include virtual="cgi-bin/script.cgi"--> или
<!--#include virtual="../texts/text.txt"--> или
<!--#exec cgi="/cgi-bin/script.cgi"-->
- Perl-скрипты должны находиться в директории /cgi-bin/ и иметь расширение .cgi или .pl
В первой строке скрипта необходимо указывать путь к транслятору: #!c:/shttps/perl/bin/perl
- PHP-скрипты могут находится в любой директории и должны иметь расширение .php .phtml .phtm .php4
При создании PHP-скриптов учтите, что не инициализируются переменные окружения типа: $QUERY_STRING, $REQUEST_METHOD
и т.п. Вместо этого пользуйтесь ассоциативным массивом $_SERVER: $_SERVER["QUERY_STRING"], $_SERVER["REQUEST_METHOD"]
и т.д. При передаче PHP-скрипту данных методом GET (например строкой script.php?param=value) не инициализируются
переменные из имен параметров ($param), вместо этого пользуйтесь ассоциативным массивом $_GET
(в нашем примере получить значение param можно при помощи переменной $_GET["param"]).
Аналогичная ситуация с методом POST, только инициализируется массив $_POST. Независимо от метода
передачи данных значения параметров можно получить так же при помощи ассоциативного массива $_REQUEST:
например для строки scr.php?name=Vasya&age=23 в скрипте scr.php будут доступны переменные $_REQUEST["name"]="Vasya" и
$_REQUEST["age"]=23. Ниже представлены основные ассоциативные массивы среды, которые доступны PHP-скрипту:
- $_GET - содержит параметры, переданные методом GET. Если параметров нет, то не инициализируется.
- $_POST - содержит параметры, переданные методом POST. Если параметров нет, то не инициализируется.
- $_COOKIE - содержит параметры cookie для текущего хоста. Если cookie у клиента пусты, то не
инициализируется.
- $_REQUEST - содержит параметры переданные скрипту любым методом (GET, POST и Cookie).
- $_SERVER - содержит переменные среды, переданные сервером.
- $_ENV - содержит переменные среды, переданные сервером и созданные PHP-процессором.
В PHP установлена максимальная обработка ошибок. Если в выражении: $lv=$rv; не проинициализирована
переменная $rv, то это вызовет ошибку. Чтобы избежать это, можно использовать:
@$lv=$rv; в данном случае будет считаться, что $rv="".
- Аналогично предыдущему пункту не инициализируются переменные с префиксом $MyFile при
передаче файлов на сервер через форму с enctype="multipart/form-data", вместо них
инициализируется массив $_FILES["MyFile"], где MyFile - имя поля с type="file". В
этом массиве доступны следующие элементы:
- $_FILES["MyFile"]["tmp_name"] - содержит полный путь к временно закачанному файлу
на сервере. Его нужно скопировать в нужную директорию, так как по окончании работы PHP-скрипта
он будет удален.
- $_FILES["MyFile"]["name"] - содержит исходное имя файла.
- $_FILES["MyFile"]["size"] - содержит размер файла в байтах.
- $_FILES["MyFile"]["type"] - содержит тип файла в HTTP-формате (например для
JPEG-файла будет image/jpeg).
- Perl и PHP установлены как внешние программы, а не встроенные в сервер модули.
- Функция flock() (filelock) не работает в CGI-программах. Windows сам блокирует
открытые для записи файлы. Применение программной блокировки файлов не вызывает ошибку,
но может вызвать отмену функции блокирования открытых для записи файлов в Windows!
- Вы можете использовать службу Crone сервера для запуска Ваших скриптов по расписанию в
определенное время. Для этого в своей домашней директории (где есть папки mbox, logs и www)
создайте файл .crone в который и будете добавлять расписание.
Файл считывается программой Crone один раз в минуту. В этом файле можно создавать
строки-директивы службе Crone. Пустые строки и строки, начинающиеся с символов // игнорируются.
В общем виде строка расписания выглядит так (в [квадратных скобках] указаны необязательные параметры):
Дата[ Время],Команда,[Путь]Файл[,Периодичность][,Множитель]
Если в строку вызова нужно вставить запятую, то поставте перед ней обратный слэш: \,
- Дата-Время
- Дата указывается в формате d.m.y, при этом ведущие нули указывать не обязательно,
но год должен состоять минимум из двух последних цифр. Так правильными будут даты,
указывающие 6-е июля 2006г.: 6.7.06, 6.07.06 и 06.07.2006
- Время указывается в формате h:m. Для указания используйте 24-часовой формат.
Так можно указать: 6:15 или 06:15. Если время запуска не важно, то можно указать только дату, без времени.
Тогда временем будет считаться 0:00
Между Датой и временем обязательно должен быть пробел. Учтите, что строки с прошедьшим временем Crone игнорирует.
То есть вы должны указывать будущее время, а без указания времени - дату на завтра.
Вместо даты-времени можно ставить символ *. Это будет означать запуск скрипта сразу после
нахождения такой директивы, впоследствии звездочка будет преобразована в дату-время в соответствии
с остальными директивами. При периодических запусках (см.ниже) Crone автоматически обновляет дату и время
в файле расписаний. Не забывайте, что на сервере используется Московское время (+3 GMT).
- Команды
- exec - запуск скрипта
- terminate - завершение скрипта
Здесь стоит отметить, что завершение производится принудительно.
Запущенной программе не сообщается, что она должна быть завершена,
а ее просто выгружают из памяти. Завершение активизируется и без указания в файле расписаний.
Если Crone обнаружит, что нужно запустить уже запущенный скрипт, то он его принудительно завершит
перед повторным запуском. Так-же скрипт завершается принудительно, если он не успел отработать за
отпущенный квант времени (90с).
- Файл (скрипт, программа)
Если запускаемый файл находится в той-же директории, что и файл расписания, то путь указывать не нужно.
Относительный путь расчитывается от директории файла расписаний. В качестве разделителя пути допускается
только обратный слеш \, принятый в Windows. Так если ваша директория находится в C:\~users\you, то если
Вы хотите указать для запуска файл: C:\~users\you\test.php, укажите в файле расписаний: test.php,
а файл C:\~users\you\www\cgi-bin\test.cgi можно вызвать так: www\cgi-bin\test.cgi, при этом строка
\www\cgi-bin\test.cgi будет ошибочной. То есть предваряющий слеш при указании файла не допустим!
В скриптах для запуска через Crone не обязательно указывать строку обработчика
(#!C:/shttps/perl/bin/perl для Perl-скриптов)
так как запускаться они будут не через Web-сервер, но и обычные скрипты, написанные под Web-сервер,
будут корректно запускаться. Так же скриптам можно передавать параметры, как и при вызове через URL.
Если в имени файла скрипта, его параметрах или пути к нему встречаются пробелы, то берите это все в кавычки.
Периодичность
- ehour - каждый час (если не изменено множителем (см.ниже))
- eday - каждый день (если не изменено множителем)
- del - запустить один раз и удалить строку
Множитель увеличивает периодичность запуска. В качестве множителя принимается целое
положительное число не меньше 1, при этом 1 можно не указывать - она подразумевается по умолчанию.
Так ежемесячный запуск можно организовать директивой: eday,31, а ежегодный eday,365.
При периодичности eday можно указывать любое разумное число множителя, при периодичности ehour не больше 23.
Примеры
- 06.07.06 19:20,exec,www\cgi-bin\srt.pl
Эта строка запустит Perl-скрипт www\cgi-bin\srt.pl 6 июля 2006г. в 19:20 один раз и останется в файле расписаний
- 06.07.06 19:20,exec,www\cgi-bin\srt.pl,del
То же, что и выше, но строка будет удалена из файла расписаний после запуска
- 12.03.2006,exec,day.php?n=pr&dop=1,eday,365
Эта строка будет запускать PHP-скрипт day.php с указанными параметрами ежегодно,
начиная с 12 марта 2006г 0часов 0минут
- 1.4.07 1:03,exec,"sho test.cgi",ehour
Эта строка будет запускать скрипт sho test.cgi каждый час, начиная с 1-го апреля 2007г 1:03
- *,exec,test.cgi,ehour
Эта строка будет запускать скрипт test.cgi каждый час, начиная с ближайшей минуты
Никаких разрешений для файлов и папок устанавливать не требуется. Все уже установлено при
открытии аккаунта (r-read-чтение, w-write-запись, e-execute-запуск):
- ROOT-директория - FTP=владелец-rw
- WWW-папка и подпапки (кроме /CGI-BIN/) - по HTTP=все-r, FTP=владелец-rw
- /cgi-bin/ и подпапки - по HTTP=процессы-rw:все-e, FTP=владелец-rw
Список файлов и папок при обращении к папкам не выдается, на консоль выдается либо index-файл
(в /cgi-bin/ запускается), либо ошибка (если конфигурация не изменена Вами). Файлы .htaccess и
.pm в cgi-bin не отдаются клиентам даже при прямом запросе.
Для подключения к MySQL используйте HostName="localhost".
Вы можете работать только с базой данных с именем Login_Password, где
Login - ваш логин, Password - ваш пароль. В этой базе данных можно создавать
любые таблицы.
В Perl-скриптах тоже можно использовать MySQL, для этого нужно подключить системную
библиотеку Mysql.pm:
$host="localhost";
$database="test"; # Название Вашей базы данных
use Mysql; # После этой строки можно использовать MySQL в Perl
$dbh = Mysql->Connect($host,$database); # Подключились
$dbh->SelectDB($database); # Выбираем (можно опустить, а
# можно выбрать другую базу данных)
@tables = $dbh->ListTables; # В массиве @tables список всех таблиц БД
$sql_statement = "select * from t"; # SQL-запрос к таблице t
$sth = $dbh->Query($sql_statement); # Выполняем SQL-запрос
%hash = $sth->FetchHash; # В ассоциативном массиве текущая строка
@rows = $sth->FetchCol(0); # В массиве @rows значения первой колонки
@cols = $sth->FetchRow; # Так можно получить текущую строку
DataSeek $sth 20; # Так можно переместиться на 21 строку таблицы t
Наполнение своих таблиц MySQL можно контролировать при помощи утилиты непосредственных
запросов на
http://www.isety.net/cgi-bin/query.php. При помощи этой утилиты можно создавать,
удалять, модифицировать и просматривать свои таблицы. Для доступа к утилите требуется
авторизация.
Для просмотра лога своего сайта можете пользоваться утилитой,
позволяющей просматривать Лог-файл в виде удобных отчетов. Она находится на
http://www.isety.net/hosting/cgi-bin/logs.php.
Эта услуга доступна, только если Вы не
измените формат или местоположение своего Лог-файла.
Вы можете организовать FTP-сервер с "Анонимным" доступом строкой ftp://ftp.Login@isety.net
Для этого в своей WWW-директории создайте поддиректорию d или download и напишите нам письмо
с просьбой открыть FTP-запись.
По всем вопросам и проблемам обращайтесь в форум.
По каким-то личным вопросам можете обращаться к администрации хостинга по
e-mail. В случае технических проблем с линией можно
обращаться на внешний e-mail.
|
|
|
|
|
|