Сегодня пятница, 22 сентября 2017 года
 

SSI - Server-Side Includes, включения на стороне сервера.

Сервер 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
 


Директивы SSI - главный сайт сервера Apache.

Все Web-страницы, написаные на HTML (HyperText Markup Language) — языке разметки гипертекстовых документов, просматриваются, на стороне пользователя, при помощи специальных программ - обозревателей (Internet Explorer, Opera, Netscape и др.), называемых браузерами. Браузер отыскивает запрашиваемый документ в Интернете, анализирует инструкции HTML и, пользуясь ими, отображает текстовую и графическую информацию находящуюся на посещенной вами странице. Придать динамичность коду на HTML (вывод текущей даты, времени, меню и пр.), позволяют включения аплетов на языке Java. Упростить создание страниц можно используя формы HTML.

С помощью HTML добиться этого можно используя формы или применив вызов:

   <iframe marginwidth=0 marginheight=0
    src="http://www.avege.ru//russian/search/ssylky.htm"
    frameborder=0 width=100% align="center" scrolling=auto height=1630>
  </iframe>

Значительно расширить возможности в представлении страниц сайта и упростить их создание, по сравнению с перечисленным выше, можно, если ваш сервер поддерживает одно из дополнений языка HTML — SSI.

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


Возможности технологии SSI. .
 

SSI -директивы имеют следующий формат:
<!--#команда параметр=”значение”-->,
пробелы между началом и концом тегагов  <!--#   и   -->  не допускаются !

Основная, часто используемая, возможность — включение в страницы сайта информации из другого файла. Приемущества этого метода написания HTML-страниц наиболее полно проявляются при создании многостраничного сайта. Обычно на его страницах можно выделить повторяющиеся фрагменты кода — меню, счетчики, копирайт и т. д.. Запись каждого такого фрагмента в отдельный файл с последующим вызовом его содержимого на нужные страницы с помощью SSI-директиы include:

<!--#include virtual="имя_файла.shtml"-->


позволяет, например, при отказе от какого-то из счетчиков, производить изменение не на всех страницах, а удалить его код только на одной, одновременно экономя дисковое пространство (за счет уиеньшения размера файлов) отведенное под сайт на сервере. Если перед приведенной выше директивой вставить следущую:


<!--#config errmsg="Файл - имя_файла.shtml  - не найден."-->
<!--#include virtual="имя_файла.shtml"-->


то в случае отсутствия указанного файла в текущем каталоге вместо:


[an error occurred while processing this directive]


будет выведено сообщение :


Файл - имя_файла.shtml - не найден

директивы разполагают между открывающимися и закрывающимися тегами разметки :   <td>   </td>   или   <p>   </p>


строк:


<td><!--#config errmsg="Файл - имя_файла.shtml  - не найден."--></td>


или абзаца:


<p><!--#include virtual="имя_файла.shtml"--></p>

Для того чтобы сервер в HTML-документах распознавал SSI-директивы, необходимо в главном файле конфигурации сервера Apache - httpd.conf, внести записи для обработки директив SSI (включения на стороне сервера), в файлах с расширением - .shtml и .php

 AddOutputFilter INCLUDES .shtml .php .
а так же параметр - Includes в директиву Options
 Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

На большинстве серверов хостинг-провайдеров SSI директивы гарантированно обрабатываются в файлах с расширением *.shtml. Например index.shtml.



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

Apache HTTP Server 2.2.14

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

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

После установки и конфигурирования сервера Apache 2.2.14, вы можете приступать к изучению и практическому применению на страницах сайта, серверной технологии - SSI. SSI (Server-Side Includes, включения на стороне сервера) — набор команд (SSI-директив), которые предоставляют вам возможность включать в страницы сайта различную информацию: из других HTML и текстовых документов, ввод и получение данных CGI-скриптов и т. д.


Создание и тестирование HTML страниц с включенными в них директивами SSI.


С помощью механизма SSI можно запускать серверные приложения, получать и использовать значения переменных окружения сервера, выводить размер файла, дату модификации документа и пр.

Создайте страницу с расширением .shtml, например - index.shtml

Заголовок, в строке расположенной ниже и выделенной цветом, создан при помощи директивы - 'set', где:

<!--#set var="$description" value="Вы уже пользуетесь технологией SSI (Server-Side Includes, включения на стороне сервера)"-->
Вывод переменной '$description' производится с использованием директивы - 'echo',
<!--#echo var="$description"-->
которая выводит зачение переменной - '$description'.


Результат выполнения:

Âû óæå ïîëüçóåòåñü òåõíîëîãèåé SSI (Server-Side Includes, âêëþ÷åíèÿ íà ñòîðîíå ñåðâåðà)

Если выводится сообщение подобное тому, что вы видите выше (Au o?a) - то кодировка вашей страницы не <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Чтобы сообщение выводилось на русском языке, если кодировка страницы <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
- нужно вместо <!--#echo var="$description"--> писать <!--#echo encoding="none" var="$description" -->

Результат выполнения <!--#echo encoding="none" var="$description" -->:

Вы уже пользуетесь технологией SSI (Server-Side Includes, включения на стороне сервера)


текущая дата и время.

директива, выводящяя информацию о текущей дате и текущее время:

Добавьте в страницу index.shtml следующий код:

<!--#config timefmt="%H:%M:%S"-->
<!--#echo var="DATE_LOCAL"-->

Результат выполнения:

Сегодня:22.09.2017


Вывод размера файла. .

директива, выводящяя информацию о размере файла:

<!--#fsize file="index.shtml"-->

Результат выполнения:

Размер этой страницы: 70K


Директивы SSI
Директива
<!--#if expr="$HTTP_USER_AGENT=/MSIE/ || $HTTP_USER_AGENT=/Microsoft/"-->
<!--#echo var="HTTP_USER_AGENT"-->
<!--#echo var="REMOTE_ADDR"-->
<!--#config timefmt="%H:%M:%S"-->
<!--#echo var="DATE_LOCAL"-->
<!--#config timefmt="%d.%m.%Y"-->
<!--#echo var="DATE_GMT"-->
<!--#echo var="DOCUMENT_NAME"-->
<!--#echo var="DOCUMENT_URI"-->
<!--#echo var="LAST_MODIFIED"-->
<!--#echo var="USER_NAME"-->
<!--#echo var="DOCUMENT_ROOT"-->
<!--#echo var="SERVER_ADMIN"-->
<!--#echo var="SERVER_SIGNATURE"-->
<!--#echo var="REQUEST_URI"-->
<!--#echo var="URL_COUNT_DINDEX"-->
<!--#echo var="URL_COUNT_FACEDIR"-->
<!--#echo var="SERVER_SOFTWARE"-->
<!--#echo var="QUERY_STRING"-->
<!--#echo var="SERVER_NAME"-->
<!--#echo var="GATEWAY_INTERFACE"-->
<!--#echo var="SERVER_PROTOCOL"-->
<!--#echo var="SERVER_PORT"-->
<!--#echo var="REQUEST_METHOD"-->
<!--#echo var="PATH_INFO"-->
<!--#echo var="REMOTE_HOST"-->
<!--#echo var="ACCEPT_LANGUGE"-->
<!--#echo var="HTTP_FROM"-->
<!--#echo var="HTTP_REFERER"-->
<!--#echo var="HTTP_ACCEPT"-->
<!--#echo var="REMOTE_IDENT"-->
<!--#echo var="REMOTE_USER"-->
<!--#echo var="AUTH_TYPE"-->
<!--#echo var="HTTP_COOKIE"-->
Описание
Определение браузера,
точно
IP посетителя
Текущая дата - местный часовой пояс
Текущая дата по Гринвичу
Чистое имя файла - документа...
декодированный - путь, URL документа
Дата последней модификации документа
Имя владельца файла
Корневой каталог документов сайта
почтовый-ящик администратора...
Apache/2.2.14 (Win32) Port 80
путь к странице, с SSI-директивой
Програмное обеспечение сервера имя/версия /OS.
Строка, полученная от клиента
Имя сервера, доменное / IP
Имя / версия протокола CGI served WWW (HTTP).
Имя и версия HTTP сервера (name/version).
TCP-Порт сервера для соединения
Тип метода запроса посланного серверу.
Имя скрипта в запросе
Имя компьютера удаленного клиента
Список языков доступных клиенту
ULR адрес документа из которого сделан запрос.
Список MIME типов, */* - все типы
Имя клиета
Имя пользователя для авторизованного доступа.
Переменная для определения авторизованного
метода доступа к серверу
Содержение ответа клиента на запрос от сервера
Вывод значения
Ваш браузер - прочие
CCBot/2.0 (http://commoncrawl.org/faq/)
54.158.248.167
03:44:13
22.09.2017
index.shtml
/russian/tempsite/ssi/index.shtml
08.02.2015
avege
 
/home/avege/public_html
[no address given]
/russian/tempsite/ssi/index.shtml
(none)
(none)
Apache
avege.ru
CGI/1.1
HTTP/1.0
80
GET
(none)
(none)
(none)
(none)
(none)
text/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8, image/png,*/*;q=0.5
(none)
(none)
(none)
__utmz=260844509 .1214149624.2793.83 .utmcsr=yandex |utmccn =(organic) |utmcmd=organic |utmctr=%F1%EE%E7 %E4%E0 %F2%FC %F1%E2%EE%E9 %F1%E0%E9%F2 %ED%E0 %FF%ED %E4%E5 %EA%F1%E5; __utma=260844509 .524856143 .1206333282
.1214305490 .1214306608.2878

Если вам необходимо вывести одну или несколько переменных окружения, то выберите и вставьте строку c нужной директивой в страницу с расширением - .shtml

ваш IP
54.158.248.167
вы пришли на сайт
avege.ru
на эту страницу
/russian/tempsite/ssi/index.shtml
ваш браузер
CCBot/2.0 (http://commoncrawl.org/faq/)
протокола сервера
HTTP/1.0
то есть, произошел обмен информацией между
сервером  www.avege.ru   и вашим IP  54.158.248.167
Описание кодов ошибок
Код
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
500
501
502
503
504
Описание
Bad Request; - сервер обнаружил в запросе клиента синтаксическую ошибку.
Authorization Required  - пославший запрос пользователь не имеет необходимых полномочий
Payment Required
Forbidden - Сервер не имеет возможности ответить клиенту.
Not Found  - документ не существует.
Method Not Allowed   - метод, используемый клиентом, для данного URL не поддерживается.
Not Acceptable - ресурс, указанный клиентом при запросе, существует не в том формате, который указан в запросе.
Proxy Authentication Required - Proxy-сервер должен санкционировать запрос перед пересылкой
Request Time-out - сервер разрывает сетевое соединение, т. к. клиент не передал полный запрос в течение определенного промежутка времени
Conflict - конфликты запросов или конфликт с конфигурацией сервера.
Gone - запрошенный URL удален с сервера.
Length Required   - отказ в приеме запроса без определенного Content-Length.
Precondition Failed   - результат вычисления условия, заданного в запросе заголовками if, равен значению  - ложь.
Request Entity Too Large - содержение запроса слишком велико.
Request-URL Too Large  - URL слишком длинный.
Unsupported Media Type - неподдерживаемый формат запроса.
Requested Range Not Satisfiable  - не выполнимая форма запроса.
Expectation Failed   - время ожидания истекло.
Internal Server Error внешняя ошибка сервера.
Method Not Implemented - сервер не может выполнить выполнить действия.
Bad Gateway - время ожидания ответа сервера истекло
 Service Temporarily Unavailable   - данная служба временно недоступна
Gateway Time-out - сервер превысил лимит времени.


Получение рабочего сервера 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 адресов
И вы будете иметь самое современное серверное программное обеспечение.

Скрипты perl и php.

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

[25]
опубликовано - август 2003 г.
обновлено -08.02.2015
Valid CSS!
Valid XHTML 1.1