Сервисы
Лоция
Отзывы
ПерЧАТка
Программы
Игры
Учебники
Справочники
Миелофон







Яндекс цитирования
 
Информация
Предлагаем подработку в сети. Платим за разговоры в чате!


GISMETEO: Погода по г.Екатеринбург



 
 

Хостинг / Технический регламент


Пути и серверы


  • 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.