Данный раздел сайта создан, отлажен и протестирован на домашнем компьютере с установленным сервером Apache, Perl, PHP, SendMail, MySQL, phpMyAdmin. Подробную информацию об установке и проверке работоспособности этих программных продуктов вы можете найти на страницах сайта.
В этом разделе вы можете также узнать (на работающих примерах) - как правильно включать в страницы сайта:
SSI - Server-Side Includes, включения на стороне сервера - набор команд, позволяющий значительно дополнить содержимое вашего ресурса необходимой информацией.
Скрипты написанные на языке- интерпретаторе Perl не являются исполняемыми программами, содержащими описания данных и алгоритмы решения задачи, переведенные в инструкции на машинных кодах. Поэтому, для его выполнения, требуется интерпретатор, переводящий инструкции Perl из текстового формата в двоичный и, затем, выполняющих их на стороне сервера.
PHP (PHP: Hypertext Preprocessor) - интерпретируемый язык программирования веб-приложений, код которого непосредственно включается в текст HTML- документов. Исполняется как модуль Apache (SAPI) или CGI-программа на стороне сервера. После обработки интерпретатором PHP, сервер заменяет код PHP результатом его выполнения и передает на браузер. Клиент получает сгенерированную PHP-скриптом страницу HTML (PDF, Flash, XML, PNG и др.).
Переписав или создав самостоятельно страницы сайта, аналогичные приведенным в этом разделе и разместив их в каталоге -
(если устанавливали сервер Apache по приведенным здесь рекомендациям), вы получите главный сайт сервера Apache. Он будет установлен на последних, доступных в настоящее время версиях серверных программных продуктов:
Apache 2.2.14,
ActivePerl-5.8.8.824,
PHP 5.2.8,
MySQL 6.0,
phpMyAdmin 2.11.6
Таким образом, вы будете иметь самое современное серверное программное обеспечение, какое не сможет вам предоставить ни один хостинг-провайдер.
Ниже вы видите календарь. Это результат выполнения Perl скрипта, вызванного директивой:
<!--#include virtual="/cgi-bin/calendar.cgi"-->
Так как, механизма SSI (Server Side
Include - включения на стороне сервера) бывает недостаточно, то для решения
более сложных задач рекомендуется использование Perl.
Perl - (Practical
Extraction and Report Language - Язык Практического Извлечения
данных и составления Отчетов) - универсальный язык программирования,
первоначально разработанный для работы с текстом и, в настоящее время, используемый для широкого диапазона задач, включая системное
администрирование, программирование и развития сети, развития
графического интерфейса пользователя, и выполнения многих
других задач. Язык предназначен для эффективного практического
применения. Его главные особенности - удобство использования,
поддержка процедурного и объектно ориентированного программирования
(ООП), мощная встроенная поддержка обработки текста, большой
набор функций, операторов, возможность работы с ассоциативные
массивами, преобразованием типов, поддержка операций с файлами
и базами данных и одна из самых внушительных совокупностей
сторонних модулей. Всё это предоставляет разработчикам большие
возможности для создания лаконичного и эффективного программного
кода. Отличительная особенность программ написанных на Perl
- высокая переносимость.
#!/usr/bin/perl
# скрипт test.cgi - вывод переменных окружения
@days = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time + (3600*$timeoffset));
$mon = $mon +1;
$mday = "0$mday" if ($mday < 10);
$mon = "0$mon" if ($mon < 10);
if ($hour < 10) { $hour = "0$hour"; }
if ($min < 10) { $min = "0$min"; }
if ($sec < 10) { $sec = "0$sec"; }
$year = 1900 + $year;
$page=$ENV{'REQUEST_URI'};
$referer=$ENV{'HTTP_REFERER'};
$namefile="testcgi.txt";
open (COUNTFILE, "+<$namefile");
flock (COUNTFILE,2);
$count =readline(*COUNTFILE);
chomp ($count);
$count=$count + 1; seek (COUNTFILE,0,0);
truncate(COUNTFILE,0);
print COUNTFILE "$count";
close(COUNTFILE);
print "Content-type: text/html\n\n";
print "<table align=\"center\"><tr><td align=\"center\">";
print
"<font color=\"#0000FF\" size=\"1\" face=\"Arial, Helvetica, sans-serif\">";
print " Выполнен скрипт test.cgi хитов - $count";
print
" $days[$wday], $mday.$mon.$year $hour:$min:$sec";
print
" |\"$page\"| <br />Переход со страницы |\"$referer\"|</font>";
print
"</td></tr></table>";
foreach $key (sort keys %ENV) {
print "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
print "<tr>\n";
print "<dl> <td width=\"29%\"> <font color=\"#000000\" size=\"1\" face=\"Arial, Helvetica, sans-serif\"><b>$key</b></font></td>\n";
print "<td width=\"1%\"><font color=\"#000000\" size=\"1\" face=\"Arial, Helvetica, sans-serif\"><b>=</b></font></td>\n";
print "<td width=\"70%\"><font color=\"#FF0000\" size=\"1\" face=\"Arial, Helvetica, sans-serif\"><b> $ENV{$key}</b></font></td></dl>\n";
print "</tr>\n";
print "</table>\n";
}
В цикле - foreach - выводится, из ассоциативного системного массива переменных окружения %ENV (ключ/связанное с ним значение переменной окружения), полезная информация о части среды окружения сервера - переменных окружения. Скрипт выводит информацию переменных окружения, версии OS, путях, хозяине и локальных значениях опций конфигурации, заголовков HTTP. Поскольку для каждой OS – своя установка, ENV обычно используется, чтобы проверить параметры настройки конфигурации и доступных предопределенных переменных на данной системе. ENV является ценным инструментом для отладки.
| Имя | Описание |
| DATE_GMT | |
| DATE_LOCAL | |
| DOCUMENT_NAME | perl02.shtml |
| DOCUMENT_ROOT | /var/www/avege/data/www/avege.ru |
| DOCUMENT_URI | /russian/tempsite/perl/perl02.shtml |
| GATEWAY_INTERFACE | CGI/1.1 |
| HTTP_ACCEPT | text/html,application/xhtml+xml,text/xml;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 |
| HTTP_ACCEPT_CHARSET | ISO-8859-1,utf-8;q=0.7,*;q=0.7 |
| HTTP_ACCEPT_ENCODING | gzip |
| HTTP_ACCEPT_LANGUAGE | en-us,en;q=0.5 |
| HTTP_CACHE_CONTROL | no-cache |
| HTTP_CONNECTION | close |
| HTTP_HOST | www.avege.ru |
| HTTP_PRAGMA | no-cache |
| HTTP_USER_AGENT | CCBot/1.0 (+http://www.commoncrawl.org/bot.html) |
| HTTP_X_CC_ID | ccc04-02 |
| HTTP_X_FORWARDED_FOR | 38.107.179.241 |
| HTTP_X_FORWARDED_PROTO | http |
| HTTP_X_REAL_IP | 38.107.179.241 |
| LAST_MODIFIED | |
| PATH | /usr/local/bin:/usr/bin:/bin |
| QUERY_STRING | |
| REMOTE_ADDR | 38.107.179.241 |
| REMOTE_PORT | 45452 |
| REQUEST_METHOD | GET |
| REQUEST_URI | /russian/tempsite/perl/perl02.shtml |
| SCRIPT_FILENAME | /var/www/avege/data/www/avege.ru/cgi-bin/testevn.cgi |
| SCRIPT_NAME | /cgi-bin/testevn.cgi |
| SERVER_ADDR | 31.31.195.101 |
| SERVER_ADMIN | webmaster@avege.ru |
| SERVER_NAME | www.avege.ru |
| SERVER_PORT | 80 |
| SERVER_PROTOCOL | INCLUDED |
| SERVER_SIGNATURE | Apache/2.2.16 (Ubuntu) Server at www.avege.ru Port 80 |
| SERVER_SOFTWARE | Apache/2.2.16 (Ubuntu) |
| USER_NAME |

На страницах этого раздела сайта вы можете ознакомиться, на работающих примерах, с включениями в веб-страницы директив SSI, perl и php скриптов.