Использование CGI

Для персональных WEB-страниц и связанных с ними WEB-серверов, CGI-скрипты размещаются в подкаталоге CGI, который доступен владельцу WEB-страницы по протоколу FTP.

Для разрешения выполнения скрипта нужно разрешить чтение, запись и выполнение для владельца файла и запретить все действия для группы и остальных. При заходе на FTP через интерфейс командной строки, для этого необходимо выполнить команду

chmod 700 <имя_файла>

При правильно установленных правах на скрипт вывод команды ls выглядит так:

ftp>ls <filename>
150 Opening ASCII mode data connection for '/bin/ls'.
-rwx------ 1 <username> cgi 66 Aug 24 13:15 <filename>
226 Transfer complete.

На нашем сервере можно использовать CGI-скрипты, написанные на языках

  1. PERL (версия 5.8.8)
  2. PHP (версия 4.4.8 и версия 5.2.5)

Если в скрипте необходимо указать путь к sendmail, то укажтие "/usr/sbin/sendmail".

Для языка PERL путь к интерпретатору, записанный в первой строке скрипта, будет выглядеть так:

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

Для языка PHP путь к интерпретатору выглядит так:

CLI вариант интерпретатора CGI вариант интерпретатора
#!/usr/local/bin/php
или
#!/usr/local/bin/php4-cli
#!/usr/local/bin/php4-cgi (для PHP 4.4.8)
или
#!/usr/local/bin/php5-cgi (для PHP 5.2.5)

Для персональной WWW-страницы единичного пользователя с именем пользователя "ИМЯ", CGI-скрипты доступны по адресу http://www.dol.ru/cgi-bin/users/ИМЯ/ или http://ИМЯ.page.ru/cgi-bin/

Для пользователя ИМЯ виртуальной машины МАШИНА, CGI-скрипты доступны по адресу http://www.dol.ru/cgi-bin/МАШИНА/ИМЯ/ или http://ИМЯ.МАШИНА.page.ru/cgi-bin/

Если с WWW-страницей пользователя Online-сервера или пользователя виртуальной машины связан виртуальный WWW-сервер, например www.ИМЯ_ВАШЕГО_СЕРВЕРА.ru, то те же CGI-скрипты будут доступны и по адресу http://www.ИМЯ_ВАШЕГО_СЕРВЕРА.ru/cgi-bin/

Список установленных модулей PERL:

Archive-Zip-1.16 Provide an interface to ZIP archive files
Authen-SASL-2.09 Perl5 module for SASL authentication
Compress-Zlib-1.35 Perl5 interface to zlib compression library
DBD-mysql41-3.0002 MySQL 4.1 driver for the Perl5 Database Interface (DBI)
DBI-1.48 The perl5 Database Interface. Required for DBD::* modules
Data-ShowTable-3.3 Perl5 module to pretty-print arrays of data
Digest-1.10 Modules that calculate message digests
Digest-HMAC-1.01 Perl5 interface to HMAC Message-Digest Algorithms
Digest-MD5-2.33 Perl5 interface to the MD5 algorithm
Digest-SHA1-2.10 Perl interface to the SHA-1 Algorithm
GD-2.25 A perl5 interface to Gd Graphics Library version2
HTML-Parser-3.45 Perl5 module for parsing HTML documents
HTML-Tagset-3.04 Some useful data table in parsing HTML
HTML-Template-2.7 Perl module to use HTML Templates from CGI scripts
MD5-2.03 Perl5 interface to MD5 Message-Digest Algorithm
MIME-Base64-3.05 Perl5 module for Base64 and Quoted-Printable encodings
MIME-Lite-3.01 A simple interface for creating (not parsing!) MIME messages
MIME-Types-1.16 Definition of MIME types
Net-1.19 Perl5 modules to access and use network protocols
Net-DNS-0.53 Perl5 interface to the DNS resolver, and dynamic updates
Net-Daemon-0.38 Perl5 extension for portable daemons
Net-IP-1.23 Perl extension for manipulating IPv4/IPv6 addresses
PathTools-3.11 A Perl module for portably manipulating file specifications
PlRPC-0.2018 Perl module for writing RPC servers and clients
Pod-Parser-1.32 Modules to work with POD (Plain Old Documentation)
Scalar-List-Utils-1.14 Perl subroutines that would be nice to have in the perl core
Storable-2.15 Persistency for perl data structures
Test-Harness-2.52 Run perl standard test scripts with statistics
Test-Simple-0.60 Basic utilities for writing tests in perl
URI-1.35 Perl5 interface to Uniform Resource Identifier (URI) references
Text-Iconv-1.4 Perl interface to iconv() codeset conversion function
XML-Parser-2.34 Perl extension interface to James Clark's XML parser, expat
gettext-1.03 Message handling functions
libwww-5.803 Perl5 library for WWW access