holm.ru

бесплатный хостинг : помощь пользователям

 

 бесплатный хостинг



SSI, CGI и PHP скрипты: Общие сведения   Oсобенности размещения  и  Kонфигурации
Права доступа   Ошибка CR/LF   Исходящие коннекты скриптов
Не вставайте на наши грабли дважды.


Общие сведения о CGI
   CGI - Common Gateway Interface является стандартом интерфейса (связи) внешней прикладной программы с информационным сервером типа HTTP, Web сервер.

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

   Программа-шлюз запускается WWW сервером в реальном масштабе времени. WWW сервер обеспечивает передачу запроса пользователя шлюзу, а она в свою очередь, используя средства прикладной системы, возвращает результат обработки запроса на экран пользователя. Программа-шлюз может быть закодирована на языках C/C++, Perl. Как выполнимый модуль, она записывается в поддиректорий с именем cgi WWW сервера. Более подробное описание Вы сможете найти на www.webclub.ru, CitForum.

   Наиболее простым и доступным является использование языка Perl (Practical Extraction and Report Language _ практический язык извлечений и отчетов). Более подробное описание Вы сможете найти на www.webclub.ru, CitForum.


Теперь сервер поддерживает PHP4.
   Хостинг H1.Ru поддерживает PHP версии 4, доступ к PHP имеет любой пользователь хостинга сразу же после регистрации.

   PHP директивы обрабатывается в файлах *.php. Такое расширение должно быть у всех php скриптов и html страниц содержащих php директивы.

   Если вы хотите сделать index.php стартовой страницей - загрузите на сервер файл index.php и удалите index.html вставляемый при регистрации.

   Вам необходимо следить за правильностью установленных прав доступа на файлы PHP-скриптов и каталоги в которых они расположены. PHP скрипты должны находиться в директории WWW. Каталоги, подкаталоги в которых расположены PHP скрипты и сами файлы PHP скриптов не должны иметь права доступа, позволяющие запись в них для кого-либо кроме хозяина. В общем случае это означает, что каталог WWW и все поддиректории WWW должны иметь права доступа "755" ("drwxr-xr-x"), а сами файлы PHP-скриптов -- "644" ("-rw-r--r--").

   Обращаем ваше внимание на то, что PHP4 пока предоставляется в режиме окончательного тестирования. Возможны ситуации, когда страницы содержащие PHP директивы могут обрабатываться некорректно. Пишите о всех случаях некорректной работы в службу поддержки на hs1@agava.com -- мы постараемся исправлять все неполадки в кратчайшие сроки.

Размещение и конфигурирование CGI скриптов на нашем сервере.
   Итак для того, чтобы Ваши скрипты успешно выполнялись на нашем сервере Вам необходимо знать следущее:

   Все CGI скрипты должны находиться в каталоге cgi в Вашем домашнем каталоге. Это обязательное условие. Если поместить CGI скрипт в другое место - выполняться он не будет.

   Допустим Ваш домен - domain.h1.ru, тогда абсолютный путь к каталогу cgi будет выглядеть следующим образом:

/home/d/domain.h1.ru/cgi

URL для скрипта script.cgi, лежащего в каталоге cgi будет выглядеть так:

http://domain.h1.ru/cgi-bin/script.cgi

Права доступа.
   Для того чтобы Ваш скрипт мог выполняться Вам необходимо правильно выставить его права (permissions). Эти права должны быть равны 700 (-rwx------). ВНИМАНИЕ! Для директории "cgi" права доступа должны быть выставлены как 711.
Обратите внимание, что при установке других прав скрипт выполняться не будет! Выставить права можно из shella или с помощью FTP-клиента. Например для CuteFTP достаточно щелкнуть правой кнопкой мыши на файле, выбрать пункт "Change File Attributes", и в открывшемся окошке выставить флажками значение "700" (или просто набрать в поле ввода "700")

   Обратите внимание на самую первую строчку скрипта написанного на Perl. Она указывает на расположение интерпретатора Perl в системе. При неверном указнии скрипт конечно же работать не будет. Строчка должна иметь следующий вид:

#!/usr/bin/perl или #!/usr/local/bin/perl

   Если скрипт работает с какими-либо файлами в которые он записывает информацию (счетчики, форумы, гостевые книги) проверьте правильность указания пути к этим файлам. Может возникнуть ситуация , что эти файлы обычно должны иметь права доступа "777" (-rwxrwxrwx), также как и каталоги в которых они лежат. Это означает, что сам скрипт и файл содержащий данные необходимые для работы этого скрипта должны находиться в разных катлогах. Если поместить исполняемый скрипт в каталог с правами доступа "777" или "775" - он не будет выполняться. Также он не будет выполняться если он сам имеет права доступа "777" или "775". Вообще данные для работы скриптов нет необходимости хранить в каталоге cgi - их лучше размещать в каталоге WWW, отслеживая при этом правильность указания путей к ним.

   Пожалуйста обратите внимание, что установка прав доступа "777" на файл или каталог означает то, что любой пользователь получает полные права (чтение/запись/исполнение) на этот файл. Это является небезопасным, поэтому подобные права доступа на файлы необходимо выставлять только если это действительно необходимо.

   На нашем сервере не будут выполняться скрипты права доступа которых (а также каталогов в которых они находятся) разрешают запись кому-либо, кроме владельца. Мы рекомендуем Вам устанавливать права доступа на исполняемые скрипты равными "700" или -rwx------.

Исходящие коннекты скриптов.
   ВНИМАНИЕ!Работа исходящих коннектов от Ваших скриптов с сервера запрещена. Проще говоря, они просто не будут работать. Например, если ваш скрипт пытается работать с процедурой "whois", то у него ничего не выйдет. Примите эту информацию к сведению.

Ошибка CR/LF.
   Во время написания или редактировавния скрипта Вы должны пользоваться специальным текстовым редактором. Это обуслововлено тем, что в ОС Windows и UNIX по-разному описывается переход на следущую строку. Большинство текстовых редакторов под Windows вставляют в конец строки символ #13 (возврат каретки). Незаметный для пользователей Windows он приводит к ошибке в UNIX. Для того, чтобы избежать подобных проблем, следует пользоваться специальным редактором, умеющим сохранять файлы в формате UNIX без символа возврата каретки. Кроме того можно использовать специальный скрипт, обрабатывающий файлы и удаляющий из них недопустимые символы.
Для его использования следует в shell'e набрать команду:
$ tr -d '\r' < ScriptName.pl >a; mv a ScriptName.pl
где вместо ScriptName.pl следует указать имя вашего скрипта.

   Для отладки скриптов следует использовать shell доступ. Для проверки синтаксиса запустите perl -c.

   Если Вы не очень опытны в написании собственных скриптов, Вы можете воспользоваться уже готовыми скриптами, которые можно найти на специальных серверах. Обычно установка таких скриптов сводится к правильному прописыванию путей к файлам, а также проверке и редактированию первой строчки скрипта. Поискать скрипты можно на www.script.ru, www.cgi-resources.com.



Пути к программам которые могут понадобятся Вам при написании Ваших скриптов:

perl доступен по адресу /usr/local/bin/perl или /usr/bin/perl
sendmail доступен по адресу /usr/sbin/sendmail
date доступен по адресу /bin/date



Будьте внимательны!
Пользователям хостинга h10, h11, h12, h14, h15 и h16 все встречающиеся вхождения "h1" следует читать как "h10", "h11", "h12", "h14", "h15" или "h16" соответственно, в частности это касается ссылок.

Общие положения:
Доступ к серверу. Структура вашего сайта. Пути к каталогам и программам >>>
Администрирование виртуального сервера. Доступ к файлам. Использование файла .htaccess >>>
Работает ли директива ErrorDocument >>>
Работа с хостингом посредством терминального доступа >>>
SSI, CGI и PHP скрипты: особенности размещения и конфигурации >>>
Кэширование документов на сервере >>>
Серверные логи >>>
Почтовые рассылки >>>
Проблемы с сервером >>>
Из горького опыта:
"Я не заходил на сайт месяц, а теперь его удалили... Почему?" Правила удаления "мертвых" доменов >>>
Смена пароля: Как мне это сделать? >>>
Я забыл пароль, что делать? >>>
Браузер не отображает изменения страниц, показывает "удалённые" файлы: в чём проблема? >>>
Выскакивает сообщение о Ошибке 500: что это значит? >>>
Имеются ли у Вас какие-либо ограничения на размер дискового пространства для пользователей? Лимиты? Что можно заливать, а что нельзя? >>>
Подходит ли мой ресурс? Не удалите ли вы его в один прекрасный день? >>>
Мой сайт удалили без предупреждения. За что? - За Spam.>>>
У меня есть домен второго уровня, и я хотел бы, чтобы мой сайт отзывался на него. Что мне для этого необходимо сделать? >>>
Вы запретили скачивать файлы по ftp. Что мне делать??? >>>
Мне больше не нужен домен, зарегистрированный у вас. Как его удалить? >>>
Переменная REMOTE_ADDR содержит неверное значение. >>>
Ваш ход:
Добавьте новый вопрос к нашему списку.

Rambler's Top100