| 
        
          | 
              
              (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).
 
 |  
 
  
  |