LXF120:network

Материал из Linuxformat.

Версия от 08: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

PHP

Большинство web-приложений написано на PHP, и Apache обычно справляется с PHP-страницами и без дополнительных настроек. Однако в некоторых дистрибутивах PHP разбит на отдельные пакеты – например, в Debian нужно установить libapache-mod-php5.

Для определения подходящих пакетов и их статуса наберите «apache php» в строке поиска менеджера пакетов. Вы должны понимать, что если PHP в Apache сконфигурирован неправильно, то могут возникнуть проблемы, хотя установка из пакетного менеджера должна позаботиться о соответствующих настройках. Если при попытке открыть PHP-страницу Apache показывает ее код, измените параметры. Один из файлов в каталоге /etc/apache должен быть похож на этот:

<IfModule mod_php5.c>
AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps
</IfModule>

Может также потребоваться изменить директиву DirectoryIndex в настройках Apache. Она перечисляет файлы, которые попытается отобразить сервер, получив запрос на обработку каталога. Каждый из них пробуется по порядку, пока не будет найден подходящий – обычно это нечто вроде DirectoryIndex index.php index.html возможно, и с другими вариантами.

Информацию о картинках 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-файл содержит каталоги, для каждого из них будет создано по альбому.

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию