5 декабря 2010 г.

Развертывание сайтов на Joomla!



Первый вопрос, который возникает у пользователя, желающего разместить домашнюю страничку в интернете или открыть небольшой сайт своей компании, - это вопрос выбора инструментария для создания сайта.
Как правило требуется система, которая позволяет создавать и поддерживать сайт и при этом требует минимум знаний в программировании. Такими характеристиками обладают достаточно распространенные системы управления контентом (CMS), как коммерческие, так и свободные.
В случае использования коммерческих систем пользователь зависит от отдельной закрытой разработки, при этом, если пользователю требуется исправление ошибок или расширение функциональности этой разработки, скорее всего придется затрачивать дополнительные средства и время. При использовании свободных систем всегда есть возможность выбора необходимого решения из нескольких. При этом качество свободных систем не уступает, а часто превосходит качество коммерческих.
В данной статье будут рассмотрены аспекты, касающиеся развертывания системы на домашнем компьютере разработчика или в сети.
Требования к системе
Joomla! написана на языке PHP, следовательно для ее запуска нужен веб-сервер, настроенный на работу с PHP. Для работы требуется наличие следующих компонентов:
  • веб-сервер с поддержкой PHP (может быть любой, но рекомендуется Apache версии не ниже 1.13.19 или Microsoft IIS);
  • язык сценариев PHP версии не ниже 4.3 с включенной поддержкой Zlib (работа с zip-файлами) и MySQL (работа с базами данных MySQL);
  • система управления базами данных MySQL версии не ниже 3.23.x (рекомендуется 4.1.x или выше).

Установка Joomla! достаточно проста и мало отличается для локального и удаленного компьютеров.
Первым делом необходимо скачать последнюю стабильную версию Joomla! с сайта разработчика. На момент написания статьи это версия 1.5.15. Можно также воспользоваться русскоязычным порталом, где находится последняя на данный момент версия 1.5.14 с поддержкой русского языка для разработчика, однако я бы рекомендовал пользоваться оригинальной версией. Этому есть несколько причин: во-первых новые версии часто содержат исправления критических, с точки зрения безопасности, ошибок, а русские версии выходят с достаточно большой задержкой, во-вторых разработчики расширений не всегда поддерживают русский язык, поэтому очень часто можно наблюдать смесь русского и английского языка в интерфейсе, что не всегда приятно. Кроме того, отсутствие русификации административной части никак не влияет на поддержку русского языка непосредственно для сайта.
После загрузки последней версии системы с сайта, необходимо ее распаковать в папку, подготовленную для нового сайта или в каталог public_html на удаленном хостинге. В нашем случае это будет папка /usr/share/joomlatest:
$ cd ~/
$ sudo unzip Joomla_1.5.15_Stable_Full_Package.zip -d /usr/shared/joomlatest

После распаковки запускаем процесс установки. Для этого на удаленном хостинге необходимо при помощи браузера зайти на вашу страничку, а при размещении на локальном компьютере – на страничку http://localhost/joomlatest . Если веб-сервер настроен правильно, появится страница первого шага установки Joomla!
Инсталляция Joomla! состоит из семи шагов.
Шаг первый. Выбор языка установки.
На данном шаге предлагается выбрать язык, на котором будет происходить установка. Интересен тот факт, что оригинальная версия поддерживает огромное число языков для установки, среди которых есть и русский.

Выбор языка установки
Выбор языка установки
Шаг второй. Проверка системы на соответствие настроек требованиям
При помощи этой проверки можно узнать, соответствуют ли ваша система требованиям, необходимым для работы Joomla! Настройки системы разделены на две части. В верхней части страницы отображаются требования, необходимые для функционирования системы. Если какой-то из результатов проверки отмечен красным, то на это стоит обратить внимание и исправить. Единственное, что можно проигнорировать – права доступа на запись файла конфигурации configuration.php. Правда, если таких прав нет, программа установки не сможет записать данный файл и будет предложено это сделать вручную. Если какая-то настройка не удовлетворяла требованиям, но была исправлена, то необходимо нажать кнопку “Повторить проверку”.
В нижней части страницы расположены рекомендуемые требования. Если какое-то из этих требований отмечено красным, то установка может быть продолжена, но система может функционировать не оптимально или неполноценно.

Проверка настроек системы
Проверка настроек системы
Шаг третий. Лицензионное соглашение
Joomla! распространяется на основе лицензии GNU/GPL v2. На данном шаге необходимо прочитать лицензию и согласиться с ней.
Шаг четвертый. Конфигурирование базы данных
На данном шаге необходимо выбрать тип базы данных для работы Joomla! Обычно это mysql. Далее нужно вести адрес компьютера, где расположен сервер баз данных. В большинстве случаев сервер баз данных расположен на том же компьютере, что и веб-сервер, поэтому в это поле вводится localhost (при установке на удаленном хостинге рекомендуется уточнить этот момент у хостера).
В поля 'Имя пользователя' и 'Пароль' вводится информация о пользователе баз данных. Если установка происходит на локальный компьютер, то вы сами задавали эти значения при установке сервера MySQL, в случае удаленного хостинга, данные предоставляются поставщиком услуг.
Поле 'Имя базы данных' заполняется именем базы данных, где будут расположены таблицы Joomla! На локальном компьютере, как правило, ограничений на количество баз данных нет. Для удаленного хостинга чаще всего приходится пользоваться уже созданной базой данных, имя которой и необходимо ввести.
В разделе 'Расширенные настройки' предлагается решение в случае, если имена создаваемых таблиц уже существуют в базе данных (такое может произойти, если вы уже устанавливали Joomla! в этой базе данных). Существующие таблицы могут быть уничтожены или переименованы.
Поле 'Префикс таблиц' очень полезно тогда, когда на одном хостинге устанавливаются несколько сайтов на основе Joomla! Для того, чтобы имена таблиц не совпадали, в начале каждого имени будет добавлен заданный префикс. Например, для одного сайта таблицы будут начинаться на jos_, а для другого - на jos2_.

Конфигурация базы данных
Конфигурация базы данных
Шаг пятый. Конфигурация FTP
Для решения проблем с правами доступа к файлам и папкам, есть возможность использования FTP функций РНР для загрузки и обработки файлов. В случае локальной установки в этом нет необходимости, так как вы являетесь пользователем системы и можете назначить права файлам так, как вам угодно. Но при установке Joomla! на удаленном хостинге это не так, поэтому укажите здесь полученные от поставщика услуги параметры.

Конфигурация FTP
Конфигурация FTP
Шаг шестой. Основные параметры конфигурации
На данном шаге устанавливаются параметры, относящиеся непосредственно к сайту. Страница параметров состоит из трех частей.
В первой части необходимо ввести название сайта, которое будет отображаться в заголовке браузера.
Во второй части вводится адрес электронной почты администратора сайта, а также пароль администратора. На начальном этапе в системе создается единственный пользователь с именем admin и заданным паролем.
В третьей части предлагается установить демо-данные или запустить скрипт миграции.
Установка демо-данных нужна в случае знакомства с системой. Для этого необходимо нажать кнопку 'Установить демо-данные', при этом будут сформированы демонстрационные страницы сайта.
Запуск скрипта миграции необходим при переносе сайта с одного хостинга на другой.

Основные параметры конфигурации
Основные параметры конфигурации
Шаг седьмой. Завершение установки
На заключительном шаге мы получаем поздравления от разработчиков и последние рекомендации. В частности для дальнейшей работы необходимо удалить папку installation, а также, если прав на запись файла configuration.php у системы нет, необходимо скопировать со страницы содержимое этого файла и создать его вручную.

Завершение установки
Завершение установки
Операции после установки
Для нормальной работы системы необходимо совершить еще ряд операций.
  1. Записать файл configuration.php в каталог сайта. Для этого в пользовательском каталоге создаем в текстовом редакторе файл configuration.php и вставляем в него содержимое, скопированное на последнем шаге установки.
    Копируем файл:
    $ sudo cp ~/configuration.php /usr/share/joomlatest/
  2. Удалить папку installation:
    $ sudo rm -r /usr/share/joomlatest/installation/
  3. В случае локальной установки назначить права 777 папкам, куда будут записываться файлы конфигурации или сторонние расширения. Список папок:
    administrator/backups/
    administrator/cache/
    administrator/components/
    administrator/modules
    administrator/templates/
    cache/
    components/
    images/
    images/banners/
    images/stories/
    language/
    language/en-GB/
    language/ru-RU/
    media/
    modules/
    plugins/
    plugins/content/
    plugins/search/
    plugins/system/
    templates/
В целях безопасности после установки необходимых расширений и шаблонов права на все папки, кроме папок:
administrator/backups/
administrator/cache/
cache/
images/
images/banners/
images/stories/

необходимо вернуть права 755.
Для всех файлов в корне сайта, кроме sitemap.xml рекомендуется поставить права 444.

Перенос сайта с машины разработчика на хостинг
Рассмотрим ситуацию, когда сайт расположен на одном хостинге (например, на компьютере разработчика), а его необходимо перенести на другой.
Всю операцию можно совершить за три шага.
Шаг первый. Перенос сайта с одного хостинга на другой
На данном шаге все файлы, расположенные на одном хостинге (в нашем случае это – содержимое каталога /usr/share/joomlatest) необходимо перенести на удаленный хостинг (в большинстве случаев в папку public_html). Как правило хостеры открывают доступ по FTP, поэтому для переноса файлов можно воспользоваться FTP-клиентом.
Шаг второй. Перенос содержимого базы данных
Обычно на хостинге доступна какая-либо утилита для работы с базами данных. В большинстве случаев это phpMyAdmin или подобный инструмент. На локальном компьютере также возможно (а порой необходима) установка подобных утилит.
Перенос базы данных заключается в экспортировании всех таблиц базы (в нашем случае joomladb) в файл при помощи phpMyAdmin. После чего создаем базу данных на удаленном компьютере (или запоминаем имя существующей, если создание новой невозможно). Затем при помощи удаленного phpMyAdmin (или другого инструмента) импортируем таблицы в удаленную базу.
Шаг третий. Изменение настроек
На заключительном этапе необходимо отредактировать файл configuration.php, изменив в нем значения переменных:
Переменные, отвечающие за работу с базой данных:
$host – удаленный адрес сервера баз данных (часто localhost);
$user – имя пользователя базы данных;
$password – пароль пользователя базы данных;
$db – имя базы данных.
$log_path – абсолютный путь к папке журнала (этот параметр необходимо уточнить у службы поддержки хостера);
$tmp_path – абсолютный путь для размещения временных файлов (этот параметр необходимо уточнить у службы поддержки хостера);
Если все шаги выполнены правильно, перенесенный сайт становится полностью работоспособным.

Обновление Joomla! версии 1.0.x до версии 1.5.x
Если у вас уже есть сайт, основанный на базе более старой версии Joomla! 1.0.x, то рано или поздно возникнет мысль о переходе на более новую версию 1.5.x.
Основной проблемой при это становится то, что версия 1.5.x была достаточно сильно переработана, в результате чего таблицы баз данных не всегда совместимы между собой.
Возможны два пути перевода сайта на новую версию. Один из них заключается в экспортировании таблиц из старой версии, приведение их в соответствие с требованиями новой версии вручную и последующий импорт в новую версию. Второй путь – использование сторонних компонентов. Данный путь существенно проще, именно его мы и рассмотрим.
Одним из самых лучших инструментов для миграции является компонент Migrator, последняя версия которого 1.5 доступна для загрузки с сайта Pasamio Project's FRS site.
Этот компонент устанавливается в Joomla! версии 1.0.x, после чего в меню Components в администраторской части появляется пункт Migrator.
Внимание! Перед переносом сайта необходимо создать резервную копию файлов сайта и базы данных.
После создания резервной копии запускаем 'Create Migration SQL file' для создания миграционного скрипта. Данная процедура может быть достаточно длительной. После ее завершения будет доступен SQL-файл для переноса.
Устанавливать новую версию Joomla! поверх старой нельзя, поэтому нужно либо делать установку в другой каталог, либо удалить существующую установку.
Далее запускаем установку Joomla! 1.5.x, как это было описано в начале статьи. Папки tmp и installation/sql/migration должны иметь права 777, то есть быть доступными для записи.
Отличием при установке будет то, что на шестом шаге необходимо будет указать наличие скрипта миграции и выбрать созданный файл в качестве данного скрипта.
Следует отметить, что после завершения установки введенные данные администратора (пароль, адрес электронной почты) будут заменены данными со старого сайта и именно их необходимо использовать.

Простейшие шаги для обеспечения безопасности сайта
Обеспечение безопасности сайта порой не менее трудная задача, чем его создание. Кроме установки прав доступа к файлам или использования стойких к взлому паролей, необходима правильная настройка веб-сервера и сервера баз данных.
Рассмотрим основные моменты, касающиеся безопасности.
Настройки Apache
Использование локального .htaccess файла
При помощи .htaccess файла возможно защитить часть каталогов паролем, ограничить к ним доступ, в том числе по IP-адресу.
В установке Joomla! существует уже сконфигурированный файл .htaccess, но по умолчанию его использование отключено. Файл называется htaccess.txt. Его необходимо переименовать в .htaccess и разместить в корневом каталоге сайта.
Настройки безопасности
Для обеспечения безопасности рекомендуется установить и настроить модули Apache mod_security и mod_rewrite.
Настройки MySQL
Сервер баз данных должен быть настроен таким образом, чтобы доступ из-вне был ограничен. К сожалению данные настройки можно сделать только для собственного сервера, так как хостеры самостоятельно настраивают сервера для хостинга.
Настройки PHP
Использование локальных php.ini
Редактирование файла настроек php.ini вряд ли будет разрешено хостером. Однако (при условии включения такой возможности со стороны хостера) возможно использование локальных файлов настройки. Для этого необходимо создать файл php.ini с собственными настройками и скопировать его во все каталоги, откуда могут загружаться файлы *.php. Для Joomla! 1.5 это два каталога: корневой каталог сайта и каталог administrator/.
Отключение небезопасных функций
Для отключения функций PHP, которые могут привести к атаке на сайт необходимо прописать в локальных php.ini:
disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, 
popen, proc_open

Использование open_basedir
Режим open_basedir должен быть включен и правильно сконфигурирован. Этот режим ограничивает набор файлов, открываемых при помощи PHP, определенными каталогами.
В качестве значения директивы open_basedir указывается префиксное значение, то есть, если указано /dir/incl, то разрешается открытие файлов из каталогов /dir/include, /dir/inclusion и т.д. В случае, если необходимо указать конкретный каталог, то его название надо завершить косой чертой.
Иногда это может привести к ошибкам при работе Joomla!, в частности, если каталог для временных файлов окажется вне доступа для PHP. В этом случае в список путей надо добавить несколько каталогов. Например:
open_basedir = /home/users/our_user/public_html : /tmp

Использование безопасного режима PHP
По возможности использование безопасного режима не рекомендуется.
safe_mode = 0

Использование register_globals
Автоматическая регистрация глобальных переменных используется очень часто. Включение данного режима позволяет видеть переменные, переданные при помощи POST или GET, как глобальные и непосредственно использовать их в программе.
Рекомендуется отключать данную возможность, так как ее включение крайне небезопасно.
register_globals = 0

Использование allow_url_fopen
Эта опция включает поддержку оберток (wrappers), которые позволяют работать с объектами URL, как с обычными файлами. Обертки, доступные по умолчанию, служат для работы с удаленными файлами по протоколу ftp или http.
Эта возможность включена по умолчанию и отключить ее можно только при помощи локального файла php.ini.
Для работы Joomla! Рекомендуется отключать данную опцию.
allow_url_open = 0


Заключение
Joomla! - решение, которое устроит большинство современных пользователей, так как она отлично удовлетворит потребности по созданию как домашней странички, так и современного портала корпоративного уровня. Возможности сайтов можно расширять практически неограниченно.
Существенный плюс системы в том, что она поддерживается огромным сообществом пользователей, создающих расширения на все случаи жизни.


Статья взята с сайта компаний IBM.

Комментариев нет:

Отправить комментарий