Мета роботи. Перевірити працездатність сервера та його віртуальних компонентів
Основні теоретичні відомості
Веб-се́рвер (англ. Web Server) — це сервер, що приймає HTTP-запити від клієнтів, зазвичай веб-браузерів, видає їм HTTP-відповіді, зазвичай разом з HTML-сторінкою, зображенням,файлом, медіа-потоком або іншими даними. Веб-сервер — це основа Всесвітньої павутини.
Веб-сервером називають як програмне забезпечення, що виконує функції веб-сервера, так і комп'ютер, на якому це програмне забезпечення працює.
Клієнти дістаються веб-сервера за URL адресою потрібної їм веб-сторінки або іншого ресурсу.
Додатковими функціями багатьох веб-серверів є:
Завдання для виконання
За допомогою будь-якого текстового редактори створить два файла з іменем index.html. Один збережіть в теці home\localhost, а другий в home\mysite\html
Зміст першого файлу index.html:
<html>
<head><title>Тест сервера</title></head>
<body><h2>Сервер localhost работоспособен!!!</h2></body>
</html>
Зміст другого файлу index.html:
<html>
<head><title>Тест сервера</title></head>
<body><h2>Сервер mysite.ru работоспособен!!!</h2></body>
</html>
Наберіть http://localhost/ в браузері. Повинен бути завантажен файл index.html
Зміст файлу index.html з теки localhost
.
Те ж саме повторите для другого сервера http://mysite.ru/:
Зміст файлу index.html з теки mysite.ru
Для того, щоб включити підтримку SSI (Server Side Includes - включення на стороні сервера) в Apache необхідно у файл httpd.conf додати наступні рядки:
AddType text/html .shtml
AddHandler server-parsed .shtml
Це найбільш стандартний хід. Втім, замість розширення .shtml можна написати .html або .phtml. Головне, щоб вибране розширення було ідентичне розширенню, яке використовує для позначення SSI файлів провайдер.
І, природно, треба включити сам "механізм" вкладення, а для цього додати до команди Options слово Includes. Тоді рядок з командою Options може мати вид:
Options Indexes FollowSymLinks Includes Multiviews
У налаштуваннях Apache було вказане, що підтримка SSI використовується у файлах з розширеннями .shtm і .shtml. Ця технологія дозволяє створювати одну сторінку з декількох. Це зручно, коли у Вас є елементи, що повторюються, на декількох сторінках. Технологія SSI дозволяє відмовитися від використання фреймів, які часто лають через некоректну роботу
Змініть файл index.html таким чином:
<html>
<head><title>Тест сервера</title></head>
<body>
<h2>Проверка поддержки SSI</h2>
<!--#include virtual="test_ssi.shtml" -->
</body>
</html>
Збережіть цей файл з розширенням .shtml
Потім створіть в директорії localhost файл test_ssi.shtml, що має наступний зміст :
<H3><I>Данный текст был добавлен в файл index.shtml по средствам технологии SSI</I></H3>
Запустити браузер и наберіть http://localhost/:
Тестування SSI
Скопіюйте два файли (отримані вище), видаливши при цьому файл index.html, в теку mysite\html і перевірте працездатність для адреси http://mysite.ru/:
Тестування SSI (тека - mysite.ru)
Створить файл test_php.php в теці localhost. Зміст файлу test_php.php:
<?php
phpinfo();
?>
В браузері и наберіть наступний адрес:
http://localhost/test_php.php
Результат роботи скрипта:
Тестування PHP
Можна проглянути налаштування PHP і дізнатися, які модулі підключені
Функція phpinfo() відображає детальну інформацію про інтерпретатор:
версію РНР;
версію операційної системи;
параметри, задані при складанні РНР;
дату складання інтерпретатора;
відомості про додаткові модулі;
змінне оточення - основні і локальні налаштування інтерпретатора;
заголовки http;
ліцензію РНР.
Як правило, ця функція використовується один-єдиний раз: при установці інтерпретатора для перевірки його працездатності
До інформаційних функцій відносяться три функції: phpinfo(); phpversion(); getlastmod().
Функція phpversion() просто відображає версію інтерпретатора. Наприклад: PHP Version 5.3.2
Функція getlastmod() дуже корисна - відображає час останньої зміни сценарію. Використати її можна приблизно так:echo date ("d.m.Y", getlastmodO).
Для зручної роботи з MySQL створений спеціальний набір скриптів під назвою PhpMyAdmin (є російська версія). Це застосування, написане на PHP, може повністю управляти як цілим сервером MySQL, так і окремою базою даних або таблицею, швидко і легко здійснювати різноманітні запити. Причому для роботи з MySQL не потрібно навіть знання SQL. Останню версію PhpMyAdmin можна завантажити з офіційного сайту цього веб-додаток за адресою:
http://www.phpmyadmin.net/home_page/dowloads.php
Створить файл test_mysql.php:
<?
if (!mysql_connect("localhost","root",""))
{
echo "Не удалось соединиться с сервером\n";
echo mysql_error();
exit;
}
echo "MySQL сервер работает!"
?>
В браузері и наберіть наступний адрес: http://localhost/test_mysql.php:
Тестування MySQL
Можна провести детальніше тестування роботи MySQL. Створіть PHP- сценарій з ім'ям mysql.php в каталозі D :\home\localhost\
<?php ## Скрипт для проверки работоспособности MySQL.
echo "<pre>";
//Открываем соединение с СУБД MySQL:
//пользователь: root, пароль: пустой.
@mysql_connect("localhost", "root", "")
or die(mysql_error() ) ;
//Будем работать с базой данных mysql которая существует по
// умолчанию и хранит конфигурацию сервера MySQL.
@mysql_select_db("mysql")
or die(mysql_error());
// Выбираем все записи из таблицы users БД mysql.
$r = @mysql_query("SELECT * FROM user")
or die(mysql_error());
//В цикле печатаем каждую найденную строку,
while ($row = mysql_fetch_assoc($r))
{
print_r ($row) ;
}
?>
Запустіть сервери(Apache і MySQL) і наберіть у браузері адресу: http://localhost/mysql.php
Зверніть увагу, що СУБД MySQL працює на даній машині, тобто для з'єднання з нею треба вказувати адресу сервера localhost. Ми конфігурували СУБД так, щоб вона приймала запити тільки з поточної машини. Користувач root існує відразу ж після інсталяції і дістає необмежений доступ до усіх таблиць і баз даних. При установці MySQL користувачеві root не призначається пароль, так що в якості останнього параметра функції mysql _ connect() передається порожній рядок.
Для роботи з MySQL в РНР 5 потрібне підключення бібліотеки розширення php _ mysql.dll. У РНР 4 функції для роботи з цією СУБД вбудовані в ядро
Якщо все зконфігуровано правильно, Ви отримаєте декілька десятків рядків виведення у браузері без повідомлень про помилки. Цей скрипт роздруковує усю інформацію про користувачів MySQL, яка зберігається в таблиці user бази даних з ім'ям MySQL
В межах СУБД зазвичай існує декілька іменованих баз даних, кожною з яких можна призначити окремого користувача з відповідними правами доступу
У лістингу config.php представлений код файлу, що містить параметри з'єднання з базою даних, скрипт встановлення з'єднання і функцію puterror, призначену для висновку повідомлень про помилки з'єднання у браузер. Цей код рекомендується включати в початок кожного файлу, в якому відбувається звернення до бази даних. З його допомогою здійснюється з'єднання з базою даних (include "config.php"):
<?
//листинг config.php - код файла, содержащего параметры соединения с базой данных
//предназначен для вывода сообщений об ошибках соединения в браузер
$dblocation = "localhost"; //Имя сервера
$dbname = "auth"; //Имя базы данных
$dbuser = "root"; //Имя пользователя базы данных
$dbpasswd = ""; //Пароль
//Осуществляем соединение с сервером базы данных
//Подавляем вывод ошибок символом @ перед вызовом функции
$dbcnx=@mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo("<p> В настоящее время сервер базы данных не доступен,поэтому корректное отображение страницы невозможною</p>");
exit();
}
//Осуществляем выбор базы данных
//Подавляем вывод ошибок символом @ перед вызовом функции
if(!@mysql_select_db($dbname,$dbcnx))
{
echo("<p> В настоящее время база данных не доступена,поэтому корректное отображение страницы невозможною</p>");
exit();
}
//Небольшая вспомогательная функция,которая выводит сообщение
//об ошибке в случае ошибки запроса к базе данных
function puterror($message)
{
echo("<p>$message</p>");
exit();
}
?>
Цей файл містить конфігураційну інформацію про з'єднання з базою даних. Перша змінна - $dblocation - включає ім'я сервера MySQL. У лістингу config.php значення цієї змінної виставлене для локального хоста. Якщо ви збираєтеся розташувати проект на іншому хостингу, змінній $dblocation слід присвоїти адресу сервера бази даних цього хостингу. Змінна $dbname містить ім'я бази даних, $dbuser - ім'я користувача, $dbpasswd - пароль. Якщо ви розміщуватимете проект на хостингу, необхідно змінити усі ці змінні відповідно до інформації, що надаєтьсяхост-провайдером, .
Контрольні запитання