XG-LAMP

Материал из Xgu.ru

Перейти к: навигация, поиск

Построение приложений с Web-интерфейсом на базе OpenSource-систем, таких как:

  • Операционной системы Linux (или FreeBSD)
  • Web-сервера Apache
  • СУБД MySQL
  • Языков программирования PHP/Perl/Python

Курс посвящён изучению вопросов совместного использования этих продуктов. В нем также рассматриваются другие программы и технологии, которые могут быть полезны ....

Курс находится на стадии разработки. Первое чтение курса запланировано на сентябрь 2006 года.



Содержание

[править] Список рассматриваемых тем

[править] Общее:

  1. Обзор

[править] Linux/FreeBSD:

  • Тонкая настройка операционной системы для работы с MySQL
  • Тонкая настройка операционной системы для работы с Apache

[править] Apache:

  • первоначальная поверхностная настройка
    • запускаем web-сервер (первый сексуальный опыт:)
  • создание виртуальных хостов, переадресация тощо...

Лабораторная работа "создание статической страницы + соответствующие настройки сервера, виртуальные хосты"

  • разрешения, табу (чего не стоит позволять окружающим)

Лабораторная работа "виртуальные хосты и разрешения, или запрещаем все, что можем, а то, что не можем - прячем :)"

  • настройка журналов событий
    • История и хронография или о том, как вести log
    • Анализ log'ов

Лабораторная работа "ведение и анализ log'ов или история о том "кто сидел на моем стуле? Кто лежал на моей кровати и кто сьел всю мою КАШУ...""

  • Соответствующие изменения связанные с использованием перечисленных средств
    • настройка CGI и все что с этим связанно
    • настройка Embedded Perl
    • настройка mod_Perl
    • настройка Mason
    • настройка mod_python
    • настройка PHP
    • настройка mod_PHP
  • данные темы будут отражены в лабораторных работах, названных ниже.
  • вопросы безопасности (более детально)
    • Apache-SSL
    • mod_SSL

Лабораторная работа "работа с SSL"

[править] MySQL:

  • примеры построения и оптимизации "больших" БД.
    • Структура и возможности MySQL
    • Типы таблиц и транзакции
    • Вставка, удаление и обновление данных
    • Запросы MySQL

лабораторная работа "первое поверхностное знакомство с MySQL"

  • Администрирование MySQL
    • Управление правами пользователей
    • Защита MySQL

лабораторная работа "Общие проблемы защиты и система привилегий доступа MySQL"

  • Конфигурация БД
  • Резервирование и восстановление данных

лабораторная работа "Предотвращение повреждений и ремонтно-восстановительные работы"

  • Репликация баз данных

лабораторная работа "репликация в МySQL"

  • Оптимизация MySQL

лабораторная работа "оптимизация MySQL"

[править] PHP:

  • Обзор языка PHP

лабораторная работа "PHP-script, с чего стоит начать..."

  • работа с БД MySQL

лабораторная работа "работа с таблицей БД"

  • примеры построения проектов

лабораторная работа "для чего нам все это нужно... ( о том, как работает более сложный проект)"

  • Модуль Apache mod_php

лабораторная работа "как работает mod_PHP...?"

  • PHP c поддержкой SSL

лабораторная работа "и еще раз SSL"

[править] Perl:

  • Обзор языка Perl
  • Интерпретатор Perl
  • работа с БД MySQL

Лабораторная работа "первый опыт работы с perl, создание и заполнение БД"

  • Использование Perl-скриптов с помощью CGI

лабораторная работа "создание cgi силами Perl"

  • Модуль Apache mod_perl

лабораторная работа "создание cgi силами mod_Perl" (сравнение быстродействия)

  • что же такое Embedded Perl...? (Emb_perl и Mason настройка и использование)

лабораторная работа "работа с Emb_perl"

[править] Python:

  • Обзор языка Python
  • Инетпретатор Python
  • работа с БД MySQL

лабораторная работа "создание cgi-script'а силами python"

  • Модуль Apache mod_python

лабораторная работа "создание cgi-script'а силами mod_python"

[править] На каждый элемент отводится времени:

  • Linux/FreeBSD - 10% - 4 часа
  • Apache - 15% - 6 часов
  • MySQL - 30% - 12 часов
  • PHP - 25% - 6 часов
  • Perl - 10% - 8 часов
  • Python - 10% - 4 часа

структурная схема связей (очень приблизительная) [схема [1]]


[править] Лабораторные работы

  1. Apache. создание статической страницы + соответствующие настройки сервера, виртуальные хосты"
  2. Apache. Организация виртуальных хостов на Web-сервере Apache
  3. Apache. Журналы web-сервера Apache. Анализ журналов Web-сервера с помощью программ Webalizer и AWStats
  4. Apache. Построение защищённого Web-сервера. Особенности использования протокола HTTPS при доступе к Web-серверу.
  5. MySQL. "первое поверхностное знакомство с MySQL"
  6. MySQL. "Общие проблемы защиты и система привилегий доступа MySQL"
  7. MySQL. "Предотвращение повреждений и ремонтно-восстановительные работы"
  8. MySQL. "репликация в МySQL"
  9. MySQL. "оптимизация MySQL"
  10. PHP. "PHP-script, с чего стоит начать..."
  11. PHP. "работа с таблицей БД"
  12. PHP. "для чего нам все это нужно... ( о том, как работает более сложный проект)"
  13. PHP. "как работает mod_PHP...?"
  14. PHP. "и еще раз SSL"
  15. Perl. "первый опыт работы с perl, создание и заполнение БД"
  16. Perl. "создание cgi силами Perl"
  17. Perl. "создание cgi силами mod_Perl" (сравнение быстродействия)
  18. Perl. "работа с Emb_perl"
  19. Python. "создание cgi-script'а силами python"
  20. Python. "создание cgi-script'а силами mod_python"


Ещё интересные вопросы для рассмотрения:

  • Развёртывание готовых проектов (в особенности, если они написаны с ошибками - неверные пути, неверные адреса и т.п.)
  • Безопасность web-приложений

[править] Пособие

Пособие содержит теоретические сведения по курсу и детальное описание всех лабораторных работ.

Электронная версия пособия: XG-LAMP/Пособие

[править] Начальная подготовка слушателей

  • Базовые знания об аппаратном обеспечении
  • Базовые навыки программирования
  • Знание английского языка достаточное для чтения технической документации (желательно)
  • Знание операционной системы Linux или FreeBSD на уровне курсов NT-LAdm + NT-LNet или NT-BSDAdm + NT-BSDNet

[править] Продолжительность курса

Продолжительность курса 40 часов.

Занятия проводятся полный день, ежедневно, в соответствии с расписанием.

[править] Программное обеспечение

Основное программное обеспечение:

  • Web-сервер Apache
  • PHP
  • Perl
  • Python
  • MySQL

Вспомогательное программное обеспечение:

[править] Дополнительная информация

[править] Книги

  • Professional LAMP: Linux, Apache, MySQL and PHP5 Web Development; WIley; 2006; ISBN-10: 0-7645-9723-X
  • Open Source Web Development with LAMP: Using Linux, Apache, MySQL, Perl, and PHP by James Lee and Brent Ware; Addison Wesley; 2002; ISBN: 0-201-77061-X

[править] Интернет-ресурсы

Инсталляция связки LAMP:

Linux:

Apache:

MySQL:

PHP:

[править] Тренинги

Linux:

Apache:

MySQL:

PHP:

[править] Сертификация

Сертификация специалистов по Web-серверу Apache в настоящее время отсутствует

Источник — «http://xgu.ru:81/wiki/XG-LAMP»