Данный раздел сайта создан, отлажен и протестирован на домашнем компьютере с установленным сервером 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 - включения на стороне сервера) бывает недостаточно, то для
сложных задач рекомендуется использование PHP.
PHP (PHP: Hypertext Preprocessor) - интерпретируемый язык
программирования веб-приложений, код которого непосредственно включается
в текст HTML- документов и имеющий много общего с C, Java и Perl.
Исполняется как модуль Apache (SAPI) или CGI-программа на стороне
сервера. После обработки интерпретатором PHP, сервер заменяет код
PHP результатом его выполнения и передает на браузер. Клиент получает
сгенерированную PHP-скриптом страницу HTML (PDF, Flash, XML, PNG
и др.). PHP был создан специально для разработки Web-приложений.
Начиная с пятой версии, PHP наряду с процедурным, включает некоторые
механизмы поддерживающие философию объектно-ориентированного программирования
(ООП), которая в предыдущих версиях была только обозначена.
Возможности PHP не ограничиваются только генерацией HTML-страниц.
Имеется механизмы для формирования изображений, PDF и Flash (используя
libswf и Ming) файлов, выдачи любых текстовых данных. PHP также способен
автоматически генерировать и сохранять их в файловой системе сервера,
организуя кеш динамического содержания, расположенный на сервере.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>скрипт php</title>
</head>
<body>
<p><?php echo "$version\n"; ?></p>
</body>
</html>
Результат выполнения:
| PHP Group |
|---|
| Thies C. Arntzen, Stig Bakken, Shane Caraveo, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski |
| Language Design & Concept |
|---|
| Andi Gutmans, Rasmus Lerdorf, Zeev Suraski |
| PHP 5 Authors | |
|---|---|
| Contribution | Authors |
| Zend Scripting Language Engine | Andi Gutmans, Zeev Suraski |
| Extension Module API | Andi Gutmans, Zeev Suraski, Andrei Zmievski |
| UNIX Build and Modularization | Stig Bakken, Sascha Schumann |
| Win32 Port | Shane Caraveo, Zeev Suraski, Wez Furlong |
| Server API (SAPI) Abstraction Layer | Andi Gutmans, Shane Caraveo, Zeev Suraski |
| Streams Abstraction Layer | Wez Furlong, Sara Golemon |
| PHP Data Objects Layer | Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky |
| SAPI Modules | |
|---|---|
| Contribution | Authors |
| AOLserver | Sascha Schumann |
| Apache 1.3 (apache_hooks) | Rasmus Lerdorf, Zeev Suraski, Stig Bakken, David Sklar, George Schlossnagle, Lukas Schroeder |
| Apache 1.3 | Rasmus Lerdorf, Zeev Suraski, Stig Bakken, David Sklar |
| Apache 2.0 Filter | Sascha Schumann, Aaron Bannert |
| Apache 2.0 Handler | Ian Holsman, Justin Erenkrantz (based on Apache 2.0 Filter code) |
| Caudium / Roxen | David Hedbor |
| CGI / FastCGI | Rasmus Lerdorf, Stig Bakken, Shane Caraveo, Dmitry Stogov |
| CLI | Edin Kadribasic, Marcus Boerger, Johannes Schlueter |
| Continuity | Alex Leigh (based on nsapi code) |
| Embed | Edin Kadribasic |
| ISAPI | Andi Gutmans, Zeev Suraski |
| NSAPI | Jayakumar Muthukumarasamy, Uwe Schindler |
| phttpd | Thies C. Arntzen |
| pi3web | Holger Zimmermann |
| Sendmail Milter | Harald Radi |
| thttpd | Sascha Schumann |
| tux | Sascha Schumann |
| WebJames | Alex Waugh |
| Module Authors | |
|---|---|
| Module | Authors |
| Assert | Thies C. Arntzen |
| BC Math | Andi Gutmans |
| Bzip2 | Sterling Hughes |
| Calendar | Shane Caraveo, Colin Viebrock, Hartmut Holzgraefe, Wez Furlong |
| COM and .Net | Wez Furlong |
| ctype | Hartmut Holzgraefe |
| cURL | Sterling Hughes |
| Date/Time Support | Derick Rethans |
| DBA | Sascha Schumann, Marcus Boerger |
| dBase | Jim Winstead |
| DB-LIB (MS SQL, Sybase) | Wez Furlong, Frank M. Kromann |
| DOM | Christian Stocker, Rob Richards, Marcus Boerger |
| EXIF | Rasmus Lerdorf, Marcus Boerger |
| FBSQL | Frank M. Kromann |
| FDF | Uwe Steinmann |
| Firebird/InterBase driver for PDO | Ard Biesheuvel |
| FTP | Stefan Esser, Andrew Skalski |
| GD imaging | Rasmus Lerdorf, Stig Bakken, Jim Winstead, Jouni Ahto, Ilia Alshanetsky, Pierre-Alain Joye, Marcus Boerger |
| GetText | Alex Plotnick |
| GNU GMP support | Stanislav Malyshev |
| Iconv | Rui Hirokawa, Stig Bakken, Moriyoshi Koizumi |
| IMAP | Rex Logan, Mark Musone, Brian Wang, Kaj-Michael Lang, Antoni Pamies Olive, Rasmus Lerdorf, Andrew Skalski, Chuck Hagenbuch, Daniel R Kalowsky |
| Input Filter | Rasmus Lerdorf, Derick Rethans, Pierre-Alain Joye, Ilia Alshanetsky |
| InterBase | Jouni Ahto, Andrew Avdeev, Ard Biesheuvel |
| JSON | Omar Kilani |
| LDAP | Amitay Isaacs, Eric Warnke, Rasmus Lerdorf, Gerrit Thomson, Stig Venaas |
| LIBXML | Christian Stocker, Rob Richards, Marcus Boerger, Wez Furlong, Shane Caraveo |
| mcrypt | Sascha Schumann, Derick Rethans |
| mhash | Sascha Schumann |
| mime_magic | Hartmut Holzgraefe |
| MING | Dave Hayden, Frank M. Kromann |
| mSQL | Zeev Suraski |
| MS SQL | Frank M. Kromann |
| Multibyte String Functions | Tsukada Takuya, Rui Hirokawa |
| mySQL driver for PDO | George Schlossnagle, Wez Furlong, Ilia Alshanetsky |
| MySQLi | Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel |
| MySQL | Zeev Suraski, Zak Greant, Georg Richter |
| ncurses | Ilia Alshanetsky, Wez Furlong, Hartmut Holzgraefe, Georg Richter |
| OCI8 | Stig Bakken, Thies C. Arntzen, Andy Sautins, David Benson, Maxim Maletsky, Harald Radi, Antony Dovgal, Andi Gutmans, Wez Furlong |
| ODBC driver for PDO | Wez Furlong |
| ODBC | Stig Bakken, Andreas Karajannis, Frank M. Kromann, Daniel R. Kalowsky |
| OpenSSL | Stig Venaas, Wez Furlong, Sascha Kettler |
| Oracle (OCI) driver for PDO | Wez Furlong |
| pcntl | Jason Greene |
| Perl Compatible Regexps | Andrei Zmievski |
| PHP Data Objects | Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky |
| PHP hash | Sara Golemon, Rasmus Lerdorf, Stefan Esser, Michael Wallner |
| Posix | Kristian Koehntopp |
| PostgreSQL driver for PDO | Edin Kadribasic, Ilia Alshanetsky |
| PostgreSQL | Jouni Ahto, Zeev Suraski, Yasuo Ohgaki, Chris Kings-Lynne |
| Pspell | Vlad Krupin |
| Readline | Thies C. Arntzen |
| Recode | Kristian Kцhntopp |
| Reflection | Marcus Boerger, Timm Friebe, George Schlossnagle, Andrei Zmievski, Johannes Schlueter |
| Sessions | Sascha Schumann, Andrei Zmievski |
| Shared Memory Operations | Slava Poliakov, Ilia Alshanetsky |
| SimpleXML | Sterling Hughes, Marcus Boerger, Rob Richards |
| SNMP | Rasmus Lerdorf, Harrie Hazewinkel, Mike Jackson, Steven Lawrance, Johann Hanne |
| SOAP | Brad Lafountain, Shane Caraveo, Dmitry Stogov |
| Sockets | Chris Vandomelen, Sterling Hughes, Daniel Beulshausen, Jason Greene |
| SPL | Marcus Boerger |
| SQLite 3.x driver for PDO | Wez Furlong |
| SQLite | Wez Furlong, Tal Peer, Marcus Boerger, Ilia Alshanetsky |
| Sybase-CT | Zeev Suraski, Tom May, Timm Friebe |
| Sybase-DB | Zeev Suraski |
| System V Message based IPC | Wez Furlong |
| System V Semaphores | Tom May |
| System V Shared Memory | Christian Cartus |
| tidy | John Coggeshall, Ilia Alshanetsky |
| tokenizer | Andrei Zmievski, Johannes Schlueter |
| WDDX | Andrei Zmievski |
| XMLReader | Rob Richards |
| xmlrpc | Dan Libby |
| XML | Stig Bakken, Thies C. Arntzen, Sterling Hughes |
| XMLWriter | Rob Richards, Pierre-Alain Joye |
| XSL | Christian Stocker, Rob Richards |
| Zip | Pierre-Alain Joye |
| Zlib | Rasmus Lerdorf, Stefan Roehrich, Zeev Suraski, Jade Nicoletti |
| PHP Documentation | |
|---|---|
| Authors | Mehdi Achour, Friedhelm Betz, Antony Dovgal, Nuno Lopes, Hannes Magnusson, Georg Richter, Damien Seguy, Jakub Vrana |
| Editor | Philip Olson |
| User Note Maintainers | Friedhelm Betz, Etienne Kneuss, Nuno Lopes, Hannes Magnusson, Felipe Pena, Maciek Sokolewicz |
| Other Contributors | Previously active authors, editors and other contributors are listed in the manual. |
| PHP Quality Assurance Team |
|---|
| Ilia Alshanetsky, Joerg Behrens, Antony Dovgal, Stefan Esser, Moriyoshi Koizumi, Magnus Maatta, Sebastian Nohn, Derick Rethans, Melvyn Sopacua, Jani Taskinen |
| PHP Website Team |
|---|
| Hannes Magnusson, Colin Viebrock, Jim Winstead |
Добавьте в страницу index.php следующий код:
<p>
<?php
function date_time ($date, $time=0) {
$time = time();
$date = " l F, j Y - H:i:s";
$clock = date($date, $time);
return $clock;
}
?>
Сегодня: <?php echo date_time(""); ?>
</p>
Результат выполнения:
Добавьте в страницу - index.php следующий код:
<p><?php include( "phpcount.php" ); ?></p>
Затем создайте страницу - phpcount.php и запишите код php, приведенный ниже. На странице должен быть только этот код.
1 <?php
2 error_reporting(E_ALL ^ E_NOTICE);
3
$filedata = 'count.txt';
4
if ( !file_exists( $filedata ) ) {
5
die (' Ошибка в файле phpcount - строка 3! Невозможно открыть файл статистики - count.txt');
6
} elseif ( !is_writable( $filedata ) ) {
7
if ( $windows ) { chmod( $filedata,777 ); } else { chmod( $filedata,O777 ); }
8
}
9
$FILE = fopen( "$filedata", "r" );
10 $count = fread( $FILE, filesize( "$filedata" ) );
11
fclose($FILE );
12
$FILE = fopen( "$filedata", "w" );
13
$count++;
14
fwrite( $FILE, $count );
15
fclose( $FILE);
16 echo 'Посетителей - '; echo $count;
17
?>
Для записи количества посетителей нужно создать пустой текстовый файл с именем - count.txt. (См. строку 3 скрипта -
$filedata = 'count.txt';).
Файлы: phpcount.php и count.txt должны находиться в том же каталоге, что и файл - index.php.
Результат выполнения:
<?php
$os = @PHP_OS;
$php = phpversion();
$soft = getenv("SERVER_SOFTWARE");
$name1 = $_SERVER['SERVER_NAME'];
echo "ОС: $os<br />";
echo "Версия php: $php<br />";
echo "Программное обеспечение сервера: $soft<br />";
echo "Имя сервера: $name<br />";
?>
Результат выполнения:
На страницах этого раздела сайта вы можете ознакомиться, на работающих примерах, с включениями в веб-страницы директив SSI, perl и php скриптов.