ru en uk

  авторизація

(044) 362 48 16   (098) 294 41 60


   Ціни

Приклад 1


Щоб зрозуміти як працює CGI створимо два примітивних прикладу, які запустимо на Віндовзе. Для початку переконаємося що Апач розуміє CGI, для цього знайдемо приблизно такі рядки, і якщо їх немає, то створимо:
ScriptAlias / cgi-bin / "C: / apache / www/ cgi-bin / "
<Directory "C:/apache/www/cgi-bin">
AllowOverride None
Options None
Order allow, deny
Allow from all
</ Directory>

Потім запустимо Борланд Паскаль і напишемо таку програмку:
uses dos;
var i: integer;
begin
writeln ( 'Content-type: text / html');
writeln;
writeln ( 'This is an example of CGI program.');
writeln ( 'Here is list of environment variables available for you');
writeln ( '<pre>');
For I: = 1 To EnvCount Do WriteLn (EnvStr (I));
writeln ( '</ pre>');
end.

Скомпіліруем її (Alt + F9 або Ctrl + F9) і розмістимо файл *. exe в папку C: / apache / www / cgi-bin /. Потім відкриємо броузер і введемо адреса
http://localhost/cgi-bin/example.exe?var1=value1&var1=value2

З'явиться список доступних зміннихх оточення. Теоретично навіть на Паскаль можна писати програми будь-якої складності, але для цього проекту його інструментарій явно захудалый.

Приклад 2


Створимо командний файл run.bat
@ echo off
echo Location: / cgi-bin/example.exe

http://localhost/cgi-bin/run.bat

то все, що він виведе - це редирект на програму з прикладу 1.

Підсумки


Отже, ми побачили, що CGI програма може запускатися веб-сервером (Апач, IIS) двома способами:

  • Це різних (пакетний) файл, запускається асоційована з ним програма і, в якості параметрів, - пакетний файл.Таким способом працюють PHP і Perl, якщо встановлені як CGI.

Звідки веб-сервер знає як запускати програму


Це сильно відрізняється на Вінд і * ніксах.

  • На Вінд веб-сервер дивиться розширення файлу (це звичайно всі останні символидо першої точки з кінця). Якщо це *. exe або *. com то файл запускається як виконуваний. Якщо це *. bat (і *. cmd на WinNT) то запускається командної інтерпретатор DOS command.com (cmd.exe на WinNT) з файлом у якості параметра. Якщо веб-сервер IIS, то можна також запускати та *. dll програми. Якщо файл має інші розширення, то веб-сервер спочатку дивиться в свою конфігурацію (httpd.conf etc) нету ли там зареєстрованих розширень. Якщо немає, то далі він дивиться в реєстр Віндоуз. Apache робить це тільки в разі, якщо встановлена директива
    <b> ScriptInterpreterSource & lt; / b> registry

    Якщо вищевказаний параметр не виставлений (за замовчуванням він стоїть в
    <b> ScriptInterpreterSource </ b> script

    ), То він робить спробу прочитати перший рядок файлу і знайти там т. зв. вступний рядок (shebang line):
    #! c: / program files / perl / perl
    що вказує ніж потрібно обробляти файл.
    Якщо нічого не знайдено, виводиться помилка.
  • На сервер * nix виконуються файли як правило починаються з символів. ELF Такі файли можуть відразу оброблятись ядром ОС. У протиному випадку розширення файлу шукається в настройках сервера (httpd.conf,. htaccess). Якщо його там немає, шукається вводная рядок як і на виндах. Якщо на виндах є тільки один вбудований інтерпретатор (command.com), який не дуже підходить для написання веб-додатків, то * nix'и пропонують широкий вибор Шеллі (сімейство shells): Bourne-shells, C-shells, Korn-shells з усіма їх послідовниками.

На WinNT і * nix, крім того, що виконуються файли повинні бути позначені як такі, тобто поточний користувач повинен мати права на виконання (chmod 700 etc).

 
Блокування файлів
29.05.2007
Постранічний висновок результату
29.05.2007
Робота з базами даних
29.05.2007