Установка Radiant CMS

Radiant CMS - это система управления контентом написанная на Ruby и Ruby On Rails. Хорошо подходит для сайтов визиток и достаточно гибкая в плане расширения функциональности. Домашний сайт проекта Radiant CMS - http://radiantcms.org/ (на сайте доступна живая демонстрация работы системы).

Как не сложно заметить, от CMS Radiant я отказался. Всё-таки функциональность и удобство WordPress оказались выше моих религиозно-прагматических предпочтений и технической красоты Radiant. Но пост про установку последней я решил всё-таки оставить (немного подправив и обрезав): мало ли кому пригодится.

Прежде всего хочу предостеречь. Не используйте Ruby 1.8.7 вместе с Radiant CMS. Он содержит баги, о чем говорится на странице http://www.rubyonrails.org/down :

Quote:
We recommend Ruby 1.8.6 for use with Rails. Ruby 1.8.7, 1.8.5, 1.8.4 and 1.8.2 are still usable too, but version 1.8.3 is not. Ruby 1.8.7 still has some bugs to straighten out.

Я этого не знал и две недели ковырялся с радиантом и рельсами, пытаясь выяснить, почему вместо некоторых элементов он выводит: undefined method `[]‘ for #.

Решение как откатить ruby с версии 1.8.7 до 1.8.6 в Debian я нашел на ruby-forum.com: http://www.ruby-forum.com/topic/156621#689955

Поскольку уже был установлен MySQL server, особо над выбором СУБД я не думал. Хотя, Sqlite радианту почему-то нравится больше: только с ним он сам может создавать базы данных.

Итак, создаю новый аккаунт в базе дынных MySQL для radiant:

# mysql -u root -p mysql
mysql> CREATE USER ‘radiant’@'localhost’ IDENTIFIED BY ‘password_for_user_radiant’;

Вместо password_for_user_radiant, само собой, надо ввести пароль для нового пользователя.

Теперь создаю базу данных с аналогичным названием (вообще, названия можно указать любые):

mysql> CREATE DATABASE radiant;

Вручаю новосозданному пользователю привелегии на работу с новосозданной базой данных и выхожу из mysql:

mysql> GRANT ALL PRIVILEGES ON radiant.* TO radiant@localhost IDENTIFIED BY ‘password_for_user_radiant’;
mysql> quit

Базу данных подготовил, можно установить сам radiant.
Я делал это с помощью gem:

# gem install radiant

Иду в директорию установленого пакета. У меня gem складывает всё в /var/lib/gems/1.8/gems/:

# cd /var/lib/gems/1.8/gems/radiant-0.6.9/

В директории bin находится скрипт, предназначенный для установки рабочей копии cms в директорию web-сервера. Запускать его надо с параметром –database, задающим тип используемой СУБД и путем к директории, в которую будет устанавливаться рабочая копия:

# bin/radiant –database=mysql /home/www/radiant

Перехожу в эту директорию:

# cd /home/www/radiant/

Приложения “на рельсах” использют концепцию т.н. окружений (environments) для разделения версий на “тестовые” (testing), “в разработке” (development) и как бы “готовый продукт” (production). В файле config/database.yml есть три соответствующих блока. Поскольку я планировал установку cms для использования как готового проекта, отредактировал только параметры после метки “production:”. Почему-то по-умолчанию в этом файле нет параметра “socket:”. Я добавил его сам. Без него radiant жаловался, что не может найти файл mysql.sock.

Вот что у меня получилось:

production:
 adapter: mysql
 database: radiant
 username: radiant
 password: password_for_user_radiant
 host: localhost
 socket: /var/run/mysqld/mysqld.sock

Базу данных создал, cms на её использование настроил, теперь можно заполнить её данными:

# rake production db:bootstrap

В моём случае первый параметр - production, а вообще это должно быть название окружения. Команда выполняется в интеративном режиме. То есть в процессе её выполнения задаются вопросы, на которые нужно отвечать:

This task will destroy any data in the database. Are you sure you want to continue? [yn] y
Create the admin user (press enter for defaults).
Name (Administrator): Spoofy
Username (admin): admin
Password (radiant):
Initializing configuration………OK
Select a database template:
1. Empty
2. Simple Blog
3. Styled Blog
[1-3]: 3
Creating Snippets….OK
Creating Pages….OK
Creating Layouts….OK
Creating Page parts….OK
Finished.

Radiant CMS может работать через CGI, FastCGI и через mod_rails (Phusion Passenger). Последний я посчитал более предпочтительным по ряду причин (см. google).

Устанавливливаю passenger через, опять же, gem:

# gem install passenger

Установщик модуля “пассажира” отличается особой понятностью, поэтому особо расписывать этот этап не буду, просто внимательно читайте вывод скрипта установки:

# /var/lib/gems/1.8/gems/passenger-2.0.3/bin/passenger-install-apache2-module

После выполнения указаний по конфигурированию apache удалил на всякий случай файлы public/dispatch.*cgi в рабочей директории радианта:

# rm ~www/radiant/public/dispatch.*cgi

Затем на основе уже существующего эталонного файла конфигурации виртуального хоста apach’а я создал /etc/apache2/sites-available/radiant и немного подправил его.
Получилось вот что:

<virtualhost *:80="">
       ServerAdmin webmaster@localhost
       DocumentRoot /home/www/radiant/public
       ErrorLog /var/log/apache2/error.log
       LogLevel warn
       CustomLog /var/log/apache2/access.log combined
</virtualhost>

После запускаю a2ensite radiant, чтобы apache видел новый конфиг и перезапускаю сам apache.

Вот, собственно, и всё. Установка завершена. Вход в интерфейс администратора - http://127.0.0.1/admin

Замечу, инструкции, описанные выше, не претендуют на звание эталонных, я лишь описал свои действия для реализации поставленной задачи. Обоснованная критика приветствуется.

Источник spoofy.ru

Вход для пользователей