
- •Лабораторная работа 1 Использование сетевых утилит (маленькая…)
- •Лабораторная работа 2 Программное обеспечение для организации «виртуальных машин» - vMware Player.
- •5 Основных причин внедрить по виртуализации
- •Лабораторная работа 3 Установка FreeBsd 9.0 на «виртуальную машину» на базе vMware Player. Первоначальная настройка сервера на основе FreeBsd 9.0.
- •Лабораторная работа 4 Установка Windows Server 2008 r2 Core на «виртуальную машину» на базе vMware Player. Первоначальная настройка сервера.
- •Лабораторная работа 5 Установка и настройка Web-сервера (Apache, MySql, php).
- •Приложение 1 Команды FreeBsd
Лабораторная работа 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).
Имеет собственный язык конфигурационных файлов, основанный на блоках директив.
Выполнение
Откройте сеанс под учетной записью Student.
Выполните инсталляцию web-сервера Apache22 с диска (смотрим в секции www).
Посмотрите, какие дополнительные пакеты были установлены (pkg_info).
Выполним минимальную начальную настройку. Редактируем файл (/usr/local/etc/apache22/httpd.conf
директива Listen – если сервер имеет несколько сетевых интерфейсов, то можно указать Apache «слушать» запросы только на определенном порту и по определенному IP адресу
оставляем без изменений
директива ServerName – устанавливает полное доменное имя с использованием, которого производится обращение к web-серверу.
указываем – www.Server_FreeBSD.MyCompany.ru
Работая в хостовой ОС, проверяем доступность сервера 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
Скорректируем файл /etc/rc.conf, что бы web-сервер запускался автоматически при старте системы, добавим строчку:
apache22_enable="YES"
В файле /etc/hosts прописываем соответствие IP адреса и символьного имени (указываем имя хоста, которое задавали при установке)
192.168.180.2 FreeBSD_Srv.MyCompany.ru
Запускаем 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
Перед запуском web-сервера можно было выполнить проверку корректности конфигурационного файла с помощью команды apachectl configtest.
Проверяем, работает ли web-сервер с помощью команды ps или sockstat (вспоминаем как).
Переходим в каталог /usr/local/www/apache22/data и исправляем файл index.html, фразу «It works!» заменяем на фразу «Ура заработало!!!».
На базовой рабочей машине открываем любой браузер, пытаемся открыть сайт по адресу www.server_freebsd.mycompany.ru. Скорее всего вы увидите абракозябры, т.к. автоматически не определилась кодировка, а у нас на сервере как помним KOI8-R. Поменяйте кодировку на странице.
Обновляем порты, последовательно выполняем команды
portsnap fetch
portsnap extract
portsnap update
Устанавливаем MySQL. Выполните команды:
cd /usr/ports/databases/mysql56-server/
make install clean
Создаем системные таблицы и устанавливаем на них права:
/usr/local/bin/mysql_install_db
chown –R mysql:mysql /var/db/mysql
Создаем файл для логов и устанвливаеме пара на него:
touch /var/log/mysql.log
chown mysql:mysql /var/log/mysql.log
Если при выполнении пунктов 22 и 23 возникает ошибка:
FATAL ERROR: Could not find ./bin/my_print_defaults
Выполняем команды:
cd /usr/local mysql_install_db --user=mysql --ldata=/var/db/mysql
Для запуска MySql при загрузки системы необходимо в файл /etc/rc.conf добавить:
mysql_enable=”YES”
Стартуем сервер MySQL:
/usr/loca/etc/rc.d/mysql-server start
Запускаем скрипт для указания пароля администратора и настроек безопасности:
cd /usr/local/
mysql_secure_installation
Создаем файл минимальный конфигурации /usr/local/etc/my.cfg
[mysql]
log=/var/log/mysql.log
Установливаем PHP (при конфигурации укажите поддержку MYSQL и Apache):
cd /usr/ports/lang/php5
make install clean
В файл http.conf добавляем в секцию <Directory> в атрибут DirectoryIndex index.php
Выполним настройку соотнесение MIME: в http.conf в блок <IfModule mime_module> добавляем строки:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .php
Создаем файл конфигурации php.ini на основе файла /usr/local/etc/php.ini-production (просто удаляем из него все комментарии):
cd /usr/local/etc/
cat php.ini-production | grep –v “;” > php.ini
Добавляем в него параметры временной зоны:
[Date]
date.timezone=Europe/Moscow
Перезапускаем Apache
apachectl restart
Создаем файл /usr/local/www/apache22/data/index.php, в который помещаем простой php код
<?php
phpinfo();
?>
Устанавливаем phpMyAdmin из портов:
cd /usr/ports/databases/phpmuadmin/
make install clean
Изменяем конфигурацию 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>
Изменяем файл конфигурации 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'; // Любая фраза
?>
Проверяем, что получилось. На базовой ОС в браузере открываем страницу:
http://www.Server_FreeBSD.MyCompany.ru/phpmyadmin
В низу страницы будет надпись приблизительно следующего содержания «Дополнительные возможности phpMyAdmin не настроены. Нажмите здесь». Делаем, что говорят и внимательно читаем, чего еще не хватает.
Устраняем недостатки. Создаем таблицы с помощью скрипта 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
Обновляем страницу в браузере. Добавляем нового пользователя в интерфейсе phpMyAdmin. См. меню Пользователи, Добавить нового пользователя.
Имя пользователя: pma
Хост: localhost
Пароль: 123
Открываем список пользователей и редактируем привилегии для pma. В разделе Привилегии уровня базы выбираем базу phpmyadmin и в разделе Глобальные привилегии выбираем опции SELECT, INSERT, UPDATE, DELETE и нажимаем ОК.
Правим файл /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';
И последние штрихи : устанавливаем права на файл 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>
Вот какие мы молодцы – Все сделали!