Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка. Лабораторные работы. Web мастеринг.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
4.87 Mб
Скачать

Лабораторная работа 5 Установка и настройка Web-сервера (Apache, MySql, php).

Цель

Изучить основные этапы установки и настройки web-сервера Apache на платформе FreeBSD. Освоить этапы установки и настройки СУБД MySQL, PHP и консоли управления phpMyAdmin.

Теоретические сведения

Apache HTTP сервер

Это свободно распространяемый веб-сервер, является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare.

Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т.д. Поддерживает IPv6.

Система конфигурации Apache основана на текстовых конфигурационных файлах. Имеет три условных уровня конфигурации:

  • Конфигурация сервера (/usr/local/etc/apache22/httpd.conf).

  • Конфигурация виртуального хоста (/usr/local/etc/apache22/httpd.conf c версии 2.2).

  • Конфигурация уровня директории (.htaccess).

Имеет собственный язык конфигурационных файлов, основанный на блоках директив.

Выполнение

  1. Откройте сеанс под учетной записью Student.

  2. Выполните инсталляцию web-сервера Apache22 с диска (смотрим в секции www).

  3. Посмотрите, какие дополнительные пакеты были установлены (pkg_info).

  4. Выполним минимальную начальную настройку. Редактируем файл (/usr/local/etc/apache22/httpd.conf

директива Listenесли сервер имеет несколько сетевых интерфейсов, то можно указать Apache «слушать» запросы только на определенном порту и по определенному IP адресу

оставляем без изменений

директива ServerName – устанавливает полное доменное имя с использованием, которого производится обращение к web-серверу.

указываем – www.Server_FreeBSD.MyCompany.ru

  1. Работая в хостовой ОС, проверяем доступность сервера FreeBSВ по IP-адресу (192.168.180.2), а затем по имени www.Server_FreeBSD.MyCompany.ru с помощью команды ping. Если сервер не доступен по IP-адресу, то проверяем настройки сетевых подключений. Если не доступен по имени, то в файле hosts (для Windows XP – C:\WINDOWS\system32\drivers\etc\hosts) укажите соответствие IP адреса и имени

192.168.180.2 www.Server_FreeBSD.MyCompany.ru

  1. Скорректируем файл /etc/rc.conf, что бы web-сервер запускался автоматически при старте системы, добавим строчку:

apache22_enable="YES"

  1. В файле /etc/hosts прописываем соответствие IP адреса и символьного имени (указываем имя хоста, которое задавали при установке)

192.168.180.2 FreeBSD_Srv.MyCompany.ru

  1. Запускаем Apache командой apachectl start. Если не получается и выдается сообщение об ошибки Failed to enable the ‘httpready’ Accept Filter, то необходимо выполнить следующие действия:

в файл /boot/loader.conf добавить строчку

accf_http_load="YES"

и перезагрузить систему

или

в файле httpd.conf добавить строчки (невозможно будет использовать фильтр)

AcceptFilter http none

AcceptFilter https none

  1. Перед запуском web-сервера можно было выполнить проверку корректности конфигурационного файла с помощью команды apachectl configtest.

  2. Проверяем, работает ли web-сервер с помощью команды ps или sockstat (вспоминаем как).

  3. Переходим в каталог /usr/local/www/apache22/data и исправляем файл index.html, фразу «It works заменяем на фразу «Ура заработало!!!».

  4. На базовой рабочей машине открываем любой браузер, пытаемся открыть сайт по адресу www.server_freebsd.mycompany.ru. Скорее всего вы увидите абракозябры, т.к. автоматически не определилась кодировка, а у нас на сервере как помним KOI8-R. Поменяйте кодировку на странице.

  5. Обновляем порты, последовательно выполняем команды

portsnap fetch

portsnap extract

portsnap update

  1. Устанавливаем MySQL. Выполните команды:

cd /usr/ports/databases/mysql56-server/

make install clean

  1. Создаем системные таблицы и устанавливаем на них права:

/usr/local/bin/mysql_install_db

chown –R mysql:mysql /var/db/mysql

  1. Создаем файл для логов и устанвливаеме пара на него:

touch /var/log/mysql.log

chown mysql:mysql /var/log/mysql.log

  1. Если при выполнении пунктов 22 и 23 возникает ошибка:

FATAL ERROR: Could not find ./bin/my_print_defaults

Выполняем команды:

cd /usr/local  mysql_install_db --user=mysql --ldata=/var/db/mysql

  1. Для запуска MySql при загрузки системы необходимо в файл /etc/rc.conf добавить:

mysql_enable=”YES”

  1. Стартуем сервер MySQL:

/usr/loca/etc/rc.d/mysql-server start

  1. Запускаем скрипт для указания пароля администратора и настроек безопасности:

cd /usr/local/

mysql_secure_installation

  1. Создаем файл минимальный конфигурации /usr/local/etc/my.cfg

[mysql]

log=/var/log/mysql.log

  1. Установливаем PHP (при конфигурации укажите поддержку MYSQL и Apache):

cd /usr/ports/lang/php5

make install clean

  1. В файл http.conf добавляем в секцию <Directory> в атрибут DirectoryIndex index.php

  2. Выполним настройку соотнесение MIME: в http.conf в блок <IfModule mime_module> добавляем строки:

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .php

  1. Создаем файл конфигурации php.ini на основе файла /usr/local/etc/php.ini-production (просто удаляем из него все комментарии):

cd /usr/local/etc/

cat php.ini-production | grep –v “;” > php.ini

  1. Добавляем в него параметры временной зоны:

[Date]

date.timezone=Europe/Moscow

  1. Перезапускаем Apache

apachectl restart

  1. Создаем файл /usr/local/www/apache22/data/index.php, в который помещаем простой php код

<?php

phpinfo();

?>

  1. Устанавливаем phpMyAdmin из портов:

cd /usr/ports/databases/phpmuadmin/

make install clean

  1. Изменяем конфигурацию Apache для возможности работы в phpMyAdmin (правим файл http.conf)

Alias /phpmyadmin "/usr/local/www/phpMyAdmin/"

<Directory "/usr/local/www/phpMyAdmin/">

DirectoryIndex index.php

Options none

AllowOverride Limit

Order Deny,Allow

Deny from all

Allow from 127.0.0.1 192.168.180.1 # Разрешаем только доверенным

</Directory>

  1. Изменяем файл конфигурации phpMyAdmin – /usr/local/www/phpMyAdmin/config.inc.php

<?php

$i = 0;

$i++;

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['extension'] = 'mysqli';

$cfg['Servers'][$i]['connect_type'] = 'tcp';

$cfg['Servers'][$i]['compress'] = false;

$cfg['Servers'][$i]['auth_type'] = 'config';

$cfg['Servers'][$i]['user'] = 'root';

$cfg['Servers'][$i]['password'] = '<пароль_root-а>';

$cfg['blowfish_secret']='gh7ThGrf6J'; // Любая фраза

?>

  1. Проверяем, что получилось. На базовой ОС в браузере открываем страницу:

http://www.Server_FreeBSD.MyCompany.ru/phpmyadmin

  1. В низу страницы будет надпись приблизительно следующего содержания «Дополнительные возможности phpMyAdmin не настроены. Нажмите здесь». Делаем, что говорят и внимательно читаем, чего еще не хватает.

  2. Устраняем недостатки. Создаем таблицы с помощью скрипта create_tables.sql и обновляем их структуры скриптом upgrade_tables_mysql_4_1_2+.sql

cd /usr/local/www/phpMyAdmin/examples

cat create_tables.sql upgrade_tables_mysql_4-1_2+.sql | mysql –u –p

  1. Обновляем страницу в браузере. Добавляем нового пользователя в интерфейсе phpMyAdmin. См. меню Пользователи, Добавить нового пользователя.

Имя пользователя: pma

Хост: localhost

Пароль: 123

  1. Открываем список пользователей и редактируем привилегии для pma. В разделе Привилегии уровня базы выбираем базу phpmyadmin и в разделе Глобальные привилегии выбираем опции SELECT, INSERT, UPDATE, DELETE и нажимаем ОК.

  2. Правим файл /usr/local/www/phpMyAdmin/config.inc.php, добавляем в него следующее:

$cfg['Servers'][$i]['controlhost'] = 'localhost';

$cfg['Servers'][$i]['controluser'] = 'pma';

$cfg['Servers'][$i]['controlpass'] = '<пароль_для_pma>';

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';

$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';

$cfg['Servers'][$i]['relation'] = 'pma__relation';

$cfg['Servers'][$i]['table_info'] = 'pma__table_info';

$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';

$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';

$cfg['Servers'][$i]['column_info'] = 'pma__column_info';

$cfg['Servers'][$i]['history'] = 'pma__history';

$cfg['Servers'][$i]['tracking'] = 'pma__tracking';

$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';

$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';

$cfg['Servers'][$i]['recent'] = 'pma__recent';

$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';

  1. И последние штрихи : устанавливаем права на файл config.inc.php (защищаем от изменений) и правим файл .htaccess (ограничиваем доступ к phpMyAdmin)

chmod 640 config.inc.php

ee /usr/local/www/phpMyAdmin/.htaccess

order deny,allow # разрешение доступа только с указанных IP

deny from all

allow from 192.168.180.1

<Files config.inc.php> # запрет доступа к config.inc.php

order deny,allow

deny from all

</Files>

  1. Вот какие мы молодцы – Все сделали!