Журнал LinuxFormat - перейти на главную

LXF120:network

Материал из Linuxformat
Версия от 11:37, 10 июня 2010; Crazy Rebel (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Сети Свяжем ваши Linux-ПК, и пускай они вас обслуживают

Содержание

Web-приложения: Рулим контентом

Часть 5: Нейл Ботвик узнает, что с настроенным и запущенным web-сервером Apache можно добраться до приложений из любой точки земного шара.

Мы начали эту серию уроков (давным-давно, в LXF113/114, если вы его пропустили) с установки и настройки мощного web-сервера Apache. Но в текущем состоянии эта служба может только раздавать статические web-страницы или, максимум, выполнять какие-нибудь доморощенные скрипты. Однако возможности Apache, особенно вместе с PHP, гораздо шире.

Видите ли, мы еще не приспособили Apache для запуска скриптов, встраиваемых в web-страницы. Скрипты можно писать на разных языках, но PHP – один из самых популярных. Это значит, что найдутся готовые сценарии для чего угодно, от простеньких встроенных функций до полноценных web-приложений. Если вы не знакомы с данной концепцией, то по своим возможностям они похожи на настольные приложения, только доступ к ним осуществляется через браузер. А зачем нам браузер вместо обычной программы?

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

Кроме PHP, имеется еще один компонент, используемый многими web-приложениями – сервер баз данных MySQL. Вместе эти элементы образуют классическую платформу LAMP (Linux, Apache, MySQL, PHP), ставшую стандартом для предоставления динамического содержимого. Вероятно, пакетный менеджер вашего дистрибутива добавил PHP заодно с Apache, но на всякий случай убедитесь в этом, прежде чем двинуться дальше. Ну, а MySQL – это пакет типа «поставил и забыл»: данные в нем хранят различные приложения, но базовая настройка выполняется при инсталляции, а затем каждый отдельный пакет выполняет собственные настройки с помощью установочных скриптов.

Подготовив платформу LAMP, установим два приложения. Первое – SquirrelMail, популярный почтовый web-клиент, а второе– Gallery, онлайн- фотогалерея; возможностей у нее столько, что и личной жизни не хватитвсе их перепробовать. Это типичные web-приложения, поэтому методы, используемые при работе с ними, справедливы и для многих других web-приложений.

Онлайн-фотогалерея

Фотогалерей в Интернете множество, ну и зачем создавать свою?

  • Чтобы хранить все в одном домене.
  • Чтобы хранить большие изображения, без ограничений на размер файлов.
  • Чтобы показывать фотографии без навязанной рекламы – или уж с рекламой, за которую платят вам.
  • А потому, что вам не слабо это сделать.

Как мы уже бегло упомянули, Gallery – это онлайн-фото-галерея с открытым исходным кодом, имеющая модульную архитектуру, что упрощает добавление нового функционала. Gallery написана на PHP, и можно установить ее прямо на web-сервер; а если сделать это с помощью менеджера пакетов, вы получите дополнительное преимущество в виде автоматических обновлений. Если так поступить нельзя (например, в качестве сервера используется компьютер в сети, а не ваш собственный, или нужна более свежая версия, чем та, что в дистрибутиве), то возьмите последний релиз с сайта http://gallery.menalto.com. На момент написания статьи это 2.3, хотя для любителей приключений есть и бета-релиз версии 3.0. Состав доступных пакетов различается. Как правило, достаточно версии Typical (обычная) – пакет содержит ядро программы и наиболее популярные темы и модули. Full (полная версия) включает все темы и модули, и это, наверное, перебор для новичков, если только вы не маньяк-настройщик. В версии Minimal есть только базовые компоненты, и она предназначена для тех, кто хочет установить остальное выборочно. Впрочем, с этим лучше не связываться, пока вы не наберетесь опыта и не будете точно знать, чего хотите. То же касается и пакета Developer.

Ваш выбор гвоздями не прибит, и позже можно добавить и тем, и модулей. Также можно выбрать между сугубо английской и многоязычной версией. Английским, слава богу, у нас не мудрено блеснуть, но мы все-таки российский LXF – так что возьмем многоязычный пакет версии Typical: gallery-2.3‑typical.tar.gz.

Настройка MySQL

Информацию о картинках Gallery хранит в базе данных, и MySQL – лучший выбор. Если вы устанавливали Gallery через менеджер пакетов, он должен был уже настроить базу данных. Если нет, выполните команды

mysqladmin -uroot -p create gallery2
mysql gallery2 -uroot -p -e “GRANT ALL ON gallery2.*
To username@localhost IDENTIFIED BY ‘password’”

Обе команды запросят у вас пароль, который был задан для суперпользователя root при установке MySQL; он не обязан совпадать с паролем root для входа в систему. Если база данных была установлена без пароля (не очень хорошая идея), уберите ключ -p. Альтернатива – задать пароль root командой

mysql -u root -e “set password = PASSWORD(‘mynew password’)”

Во второй команде из нашего исходного набора создаваемому пользователю MySQL, который будет применяться Gallery для соединения с базой данных, назначаются имя и пароль. Пользователи MySQL не имеют ничего общего с пользователями на вашем компьютере. Если у вас удаленный сервер, то имя пользователя и пароль вам сообщат. Либо вы можете создать базу данных сами и установить права доступа с помощью phpMyAdmin, но такое уже за рамками нашего урока.

Запросы к каталогу

Теперь создадим каталог, где будут храниться фотографии; он не должен находиться в корневом каталоге web-сервера. В первой статье этой серии мы решили использовать в качестве корневого каталога (DocumentRoot) Apache директорию /var/www/[имя_хоста]/htdocs. Если вы последовали этому примеру, создайте рядом каталог для данных:

mkdir /var/www/localhost/gallery/g2data
chmod 777 /var/www/localhost/gallery/g2data

Таким образом, к фотографиям нельзя будет обратиться напрямую по URL: это нарушило бы требования безопасности Gallery. Распакуйте скачанный архив и скопируйте получившийся каталог gallery2 в каталог htdocs web-сервера. Покончив с подготовительными шагами по настройке базы данных и каталогов, запустите установку Gallery, открыв в браузере адрес http://ваш.хост/gallery2/install. Вы пройдете через несколько страниц с настройками, на каждой из которых будет собственная справка и возможность прервать установку. Главное решение, которое нужно принять – это выбор между стандартной и многосайтовой установкой. В последнем случае на один сервер можно установить несколько экземпляров Gallery, что удобно, если нужно получить несколько независимых галерей. Это также отлично подходит для создания многопользовательской системы, поскольку в одной Gallery может быть несколько отдельных альбомов с собственными правами доступа. Сейчас мы воспользуемся стандартной установкой.

Дойдя до страницы с настройками базы данных, введите имя пользователя и пароль, заданные вами ранее. Не поддавайтесь искушению отделаться пользователем root и его паролем, даже если установщик предлагает их по умолчанию, потому что у этого пользователя есть права на изменение всех таблиц. Создание отдельного пользователя – не только хорошая привычка, но и мера, позволяющая ограничить возможный ущерб в будущем, если в Gallery будут найдены уязвимости.

Пользователь-администратор, имя и пароль которого у вас также запросят, отличается от пользователя базы данных, имя и пароль которого мы только что ввели. В Gallery есть учетные записи (с паролями), определяющие, кому что разрешено делать в каждом альбоме. Администратор может делать все, и, конечно, будет лучше использовать для него менее очевидное имя, чем «admin» (по умолчанию). Завершив эту скучную часть, выбирайте модули для установки. Если места на диске хватает, можно добавить их все. (А если места мало, то куда вы денете фотографии?) Модули и подключаются, и отключаются в административной панели Gallery, поэтому в излишках нет ничего страшного: наоборот, с ними будет немного проще экспериментировать. Можно активировать все установленные модули, но если вы инсталлировали все подряд, то лучше активировать их по мере необходимости. Если Gallery будет доступна через Интернет, почитайте руководство по безопасности и только потом завершите установку.

Добавим фотографии

Пора загружать фотографии. Можно сделать это с ходу, но, наверное, лучше сначала раскидать снимки по альбомам. Для этого кликните по ссылке Add Album [Добавить альбом] и задайте путь и имя (остальные настройки можно не трогать, если вам не терпится), затем кликните по ссылке Add Item [Добавить фотографию]. Здесь можно столкнуться с парой ограничений: может появиться предупреждение о невозможности создания миниатюр, или что максимальный размер загружаемого файла – 2 МБ. Чтобы исправить первое, кликните по ссылке Site Admin [Администрирование сайта] и затем выберите Plugins [Модули]. Для создания миниатюр из фотографий Gallery использует стороннюю утилиту, и лучший выбор – ImageMagick. Кликните на ссылке Install [Установить], чтобы она заработала (это не совсем точное название: пакет-то уже установлен, просто не активирован).

Максимальный размер загружаемого файла – это настройка PHP, и, таким образом, исправить ситуацию можно по-разному. Если вы передаете файл через Интернет на удаленный сервер, то, наверное, лучше изменить размер изображения до его выгрузки. Если сервер локальный, просто увеличьте максимальный размер файла: найдите файл php.ini где-то в /etc (обычно в /etc/php/apache/) и измените параметр upload_max_filesize на более подходящее значение, скажем, 5 МБ. После этого потребуется перезапустить Apache. Есть и третий вариант: выбрать другой метод загрузки. Это может быть особенно кстати, если у вас много фотографий.

Если вы включили модуль Archive Upload [Загрузка архива], то сможете загружать zip-архив с изображениями вместо одной картинки. Выберите zip-файл, как если бы это была одна фотография, Gallery распакует его и добавит содержимое в текущий альбом. Если zip-файл содержит каталоги, для каждого из них будет создано по альбому.

Персональные инструменты
купить
подписаться
Яндекс.Метрика