Сегодня вторник, 19 сентября 2017 года
 

perl

Сервер Apache.

Данный раздел сайта создан, отлажен и протестирован на домашнем компьютере с установленным сервером Apache, Perl, PHP, SendMail, MySQL, phpMyAdmin. Подробную информацию об установке и проверке работоспособности этих программных продуктов вы можете найти на страницах сайта.

В этом разделе вы можете также узнать (на работающих примерах) - как правильно включать в страницы сайта:

Директивы SSI

SSI - Server-Side Includes, включения на стороне сервера - набор команд, позволяющий значительно дополнить содержимое вашего ресурса необходимой информацией.

Perl скрипты.

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

PHP скрипты.

PHP (PHP: Hypertext Preprocessor) - интерпретируемый язык программирования веб-приложений, код которого непосредственно включается в текст HTML- документов. Исполняется как модуль Apache (SAPI) или CGI-программа на стороне сервера. После обработки интерпретатором PHP, сервер заменяет код PHP результатом его выполнения и передает на браузер. Клиент получает сгенерированную PHP-скриптом страницу HTML (PDF, Flash, XML, PNG и др.).

 

Переписав или создав самостоятельно страницы сайта, аналогичные приведенным в этом разделе и разместив их в каталоге -

C:/httpserver.ru/www/

(если устанавливали сервер 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"-->

сентябрь 2017 г.
Пн
Вт
Ср
Чт
Пт
Сб
Вс
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 


Perl, скрипты perl - главный сайт сервера Apache.

Так как, механизма SSI (Server Side Include - включения на стороне сервера) бывает недостаточно, то для решения более сложных задач рекомендуется использование Perl.
Perl - (Practical Extraction and Report Language - Язык Практического Извлечения данных и составления Отчетов) - универсальный язык программирования, первоначально разработанный для работы с текстом и, в настоящее время, используемый для широкого диапазона задач, включая системное администрирование, программирование и развития сети, развития графического интерфейса пользователя, и выполнения многих других задач. Язык предназначен для эффективного практического применения. Его главные особенности - удобство использования, поддержка процедурного и объектно ориентированного программирования (ООП), мощная встроенная поддержка обработки текста, большой набор функций, операторов, возможность работы с ассоциативные массивами, преобразованием типов, поддержка операций с файлами и базами данных и одна из самых внушительных совокупностей сторонних модулей. Всё это предоставляет разработчикам большие возможности для создания лаконичного и эффективного программного кода. Отличительная особенность программ написанных на Perl - высокая переносимость.

Чтобы отлаживать созданные вами или готовые perl скрипты, на локальном (домашнем) компьютере, необходимо установить:

Apache HTTP Server 2.2.14

 Apache HTTP Server 2.2.14 
apache
Следуя, приведенным рекомендациям, вы получите
рабочий сервер Apache 2.2.14

Подробная информация по установке, на страницах: Apache — этапы установки и Apache 2.2.14 — установка.

и интерпретатор Perl из ActivePerl-5.8.8.824-MSWin32-x86-267479.msi

 ActivePerl 5.8.8.824 —  лучшая доступная версия ! 
Apache 2.2 - локальный сервер на домашнем компьютере
Следуя, приведенным рекомендациям, вы установите
интерпретатор Perl

Подробная информация по установке, на страницах: установка ActivePerl-5.8.8.824.

После установки и проверки работоспособности сервера Apache и интерпретатора Perl,
можно приступать к созданию и тестированию скриптов Perl.

Скрипты на Perl должны иметь расширение файлов .cgi или .pl

Обычно администраторы серверов указывают эти расширения в директиве
  AddHandler cgi-script  ,
находящейся в главном файле конфигурации сервера - httpd.conf  
  AddHandler cgi-script .cgi .pl  
и файле конфигурации виртуальных хостов - httpd-vhosts.conf  

Скрипты Perl должны быть размещены в каталоге - cgi-bin главного сайта web-сервера и сайтов виртуальных хостов. Для размещения и выполнения CGI скриптов в вашем каталоге сайта, хостинг-провайдеры сразу же создают подкаталог "cgi-bin". В полученном вами шаблоне главного сервера - httpserver.ru, каталог "cgi-bin", находится в - C:/httpserver.ru/cgi-bin/

Если вы сами создаете главный сайт сервера, то его структура должна быть примерно такой:

Путь, к каталогу - httpserver.ru, указывается в директиве ScriptAlias /cgi-bin/  , главного файла конфигурации сервера Apache 2.2.14 -   httpd.conf   и, для виртуальных хостов, файле конфигурации виртуальных хостов -   httpd-vhosts.conf  .

Страницы имеющие CGI-директивы должны иметь расширение - .shtml.

Веб-сервер Apache, перед пересылкой страниц сайта, проверяет наличие встроенных CGI-директив не во всех файлах, а только с заданным расширением. На большинстве серверов хостинг-провайдеров, по умолчанию, файлы в которых включены CGI-директивы должны иметь расширение - .shtml

Первая строка скрипта должна указывать путь к интерпретатору Perl.

   #!/usr/bin/perl

Первая строка Perl-скрипта должна начинаться с символов #! (hash-bang). Далее идет путь к исполняемому файлу интерпретатора. Выглядит, в большинстве случаев, эта строка так -

#!/usr/bin/perl.

Указывая на путь к интерпретатору Perl на сервере.
См. - главный файл конфигурации сервера Apache HTTP - httpd.conf  

Для вывода информации из скрипта обязательно должна быть строка -. 


print "Content-Type: text/html\n\n";

Если скрипт должен выводить информацию в свой стандартный вывод - STDOUT, которая интерпретатором Perl будет направлена web-серверу и, затем браузеру, то в текст программы должна обязательно входить строка с указанием типа выводимого документа.
print "Content-Type: text/html\n\n";
Именно так - с двумя символами перевода строки - \n\n
Второй символ перевода строки (пустая строка) нужен для отделения заголовка от кода программы.

Пример Perl-скрипта для тестирования сервера Apache и ActivePerl-5.8.8.824 - firsttest.cgi

#!/usr/bin/perl - w
use CGI::Carp 'fatalsToBrowser';     # Необходимы
use warnings;                                  # для отладки
use strict;                                         # скриптов
use CGI;
my $q = new CGI;
print $q->header(-type => 'text/html', -charset => 'windows-1251' ), $q->start_html( "Тест Apache 2.2.14!" );
print "<table width=\"50%\" border=\"1\">
<tr>
<td align=\"center\"> ";
print $q->h3( "<br>Тест сервера Apache 2.2.14 <br>
и ActivePerl-5.8.8.824<br>
- прошел успешно!");
print "</td>
</tr>
</table> ";
print $q->end_html;

Скрипт  - Вывод переменных окружения.

   вызов
<!--#exec cgi="/cgi-bin/test/test.cgi"-->

Код 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 "&nbsp;&nbsp;&nbsp;Выполнен скрипт test.cgi &nbsp;&nbsp;&nbsp;хитов - $count";
print "&nbsp;&nbsp;&nbsp;$days[$wday], $mday.$mon.$year $hour:$min:$sec";
print "&nbsp;&nbsp;&nbsp;|\"$page\"| <br />Переход со страницы&nbsp; |\"$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%\">&nbsp;&nbsp;&nbsp;<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>&nbsp;$ENV{$key}</b></font></td></dl>\n";
print "</tr>\n";
print "</table>\n";
}

В цикле - foreach - выводится, из ассоциативного системного массива переменных окружения %ENV (ключ/связанное с ним значение переменной окружения), полезная информация о части среды окружения сервера - переменных окружения. Скрипт выводит информацию переменных окружения, версии OS, путях, хозяине и локальных значениях опций конфигурации, заголовков HTTP. Поскольку для каждой OS – своя установка, ENV обычно используется, чтобы проверить параметры настройки конфигурации и доступных предопределенных переменных на данной системе. ENV является ценным инструментом для отладки.

Если вы установили сервер Apache 2.2.14 и интерпретатор Perl на ваш компьютер, то увидите
результат выполнения perl скрипта test.cgi

распложенного в каталоге - C:\httpserver.ru\cgi-bin\

Выполнен скрипт test.cgi хитов - 57004. Friday, 06.06.2008 11:16:35   "/russian/tempsite/perl/index.shtml"

Ниже приведен результат выполнения perl скрипта - test.cgi
выполненного на реальном сервере хостинг-провайдера, у которого размещен данный сайт.

Можете сравнить - какое программное обеспечение установлено на большинстве серверов хостинг-провайдеров,
и какое будете иметь вы после установки на домашний компьютер сервера Apache, интерпретаторов Perl и PHP.

ИмяОписание
DATE_GMT
DATE_LOCAL
DOCUMENT_NAMEindex.shtml
DOCUMENT_ROOT/home/virtwww/w_avege-ru_426a88c6/http
DOCUMENT_URI/russian/tempsite/perl/index.shtml
GATEWAY_INTERFACECGI/1.1
HTTPSoff
HTTP_ACCEPTtext/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_ENCODINGx-gzip, gzip, deflate
HTTP_HOSTavege.ru
HTTP_USER_AGENTCCBot/2.0 (http://commoncrawl.org/faq/)
HTTP_X_1GB_CLIENT_IP54.80.137.187
HTTP_X_FORWARDED_REQUESTGET /russian/tempsite/perl/index.shtml HTTP/1.0
HTTP_X_FORWARDED_URI/russian/tempsite/perl/index.shtml
LAST_MODIFIED
PATH/usr/local/bin:/usr/bin:/bin
QUERY_STRING
REMOTE_ADDR54.80.137.187
REMOTE_PORT60614
REQUEST_METHODGET
REQUEST_URI/russian/tempsite/perl/index.shtml
SCRIPT_FILENAME/home/virtwww/w_avege-ru_426a88c6/http/cgi-bin/testevn.cgi
SCRIPT_NAME/cgi-bin/testevn.cgi
SCRIPT_URIhttp://avege.ru/russian/tempsite/perl/index.shtml
SCRIPT_URL/russian/tempsite/perl/index.shtml
SERVER_ADDR81.177.49.40
SERVER_ADMIN[no address given]
SERVER_NAMEavege.ru
SERVER_PORT80
SERVER_PROTOCOLINCLUDED
SERVER_SIGNATURE
SERVER_SOFTWAREApache
USER_NAME

Получение рабочего сервера Apache.

Чтобы получить полноценный http server apache, необходимо установить: apache, php, mysql, perl, apache, phpmyadmin, sendmail. Для этого необходимо: скачать apache, скачать perl, скачать php, скачать mysql, скачать phpmyadmin. Это монжно сделать нажав на нужную ссылку ниже.
Для превращения компьютера в полноценный сервер принято устанавливать следующие пакеты программного обеспечения:
При условии, что у вас имеются:
httpd conf - главный сайт сервера apache

apache

perl

php

phpmyadmin

mysql

sendmail

  Apache_2.2.14-win32-x86-.msi - скачать apache
  PHP 5.2.8 zip package - скачать php
  phpMyAdmin 2.11.6 - скачать phpmyadmin
  MySQL 6.0 - скачать mysql
  SendMail 3.10 - скачать sendmail
если выполнить следующее:
Установить
Переписать архивы файлов конфигурации:
 конфигурации Apache 2.2.x
 файла - host
Переписать шаблоны:
 главного сайта сервера
 двух сайтов виртуальных хостов на основе имени и двух сайтов виртуальных хостов на основе IP адресов
И вы будете иметь самое современное серверное программное обеспечение.

Директивы SSI, скрипты Perl и PHP.

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

[3]
опубликовано - август 2003 г.
обновлено - Sunday, 08-Feb-2015 08:55:56 MSK
Valid CSS!
Valid XHTML 1.1