Sourcefabric Manuals

 English |  Español |  Français |  Italiano |  Português |  Русский |  Shqip

Booktype 1.6 для авторов и издателей

Установка на GNU/Linux

В зависимости от того, насколько свежей сборкой GNU/Linux вы пользуетесь, вам, возможно, придется установить некоторые из новейших Python зависимостей, используя easy_install (http://pypi.python.org/pypi/setuptools) или pip (http://pypi.python.org/pypi/pip). Дело в том, что некоторые сборки GNU/Linux не могут удовлетворить потребности Booktype.

Во-первых, установите инструментальные пакеты и Redis сервер (http://redis.io/). На Debian или Ubuntu это можно сделать в терминале при помощи команды apt-get:

sudo apt-get install git-core python-dev python-setuptools python-pip libxml2-dev libxslt-dev redis-server

Далее установите оставшиеся зависимости. Следующие пакеты были протестированы на Ubuntu Lucid 10.04. Другие сборки могут содержать достаточно свежие версии, доступные через apt-get.

Django, минимально возможная версия 1.2 (http://www.djangoproject.com/)

sudo easy_install django

SimpleJSON (http://pypi.python.org/pypi/simplejson/)

sudo easy_install simplejson

South (http://south.aeracode.org/)

sudo easy_install South

lxml (http://codespeak.net/lxml/)

sudo easy_install lxml

Unidecode (http://pypi.python.org/pypi/Unidecode)

sudo pip install unidecode

Установка из репозитория git

Репозиторий git это сервер для онлайн-сотрудничества, на котором находится самая последняя версия Booktype.

1. Создайте папку для установки Booktype типа /var/www/mybooktype с пользователем www-data:

sudo mkdir /var/www/mybooktype/
sudo chown www-data:www-data /var/www/mybooktype/

Сборки кроме Debian/Ubuntu могут иметь сервер под другим именем, например, httpd.

2. Загрузите копию Booktype из репозитория git в папку /usr/local/src/:

cd /usr/local/src/
sudo git clone https://github.com/sourcefabric/Booktype.git

3. Измените на папку Booktype/scripts:

cd Booktype/scripts  

4. Переключите на пользователя www-data для завершения процесса:

sudo su www-data

5. Создайте копию Booktype:

./createbooki --check-versions --database postgresql /var/www/mybooktype/

Сервер ответит:

+ Trying to import Django.   [OK]
+ Trying to import booki.   [OK]
+ Trying to import lxml.   [OK]
+ Trying to import Python Imaging Library (PIL).   [OK]
+ Trying to import Redis module.   [OK]
+ Trying to import South module.   [OK]
+ Trying to import Unidecode module.   [OK]

Project directory does exist [/var/www/mybooktype]. Directory might be already created by administrator and you just need to populate it with booki project files...
 * If that is the case, type 'yes'.
 * If you are not sure, type 'no'.
Proceed anyway [yes/no] ? : yes

После ответа yes и нажатия клавиши Enter установка продолжится:

+ Creating data directory.   [OK]
+ Creating logs directory.   [OK]
+ Creating static directory.   [OK]
+ Creating templates directory.   [OK]
+ Creating lib directory.   [OK]
+ Creating locale directory.   [OK]
+ Creating data/books directory.   [OK]
+ Creating data/profile_images directory.   [OK]
+ Creating data/cover_images directory.   [OK]
+ Creating booki.env file.   [OK]
+ Creating __init__.py file.   [OK]
+ Creating settings.py file.   [OK]
+ Creating booki.wsgi file.   [OK]
+ Creating wsgi.apache file.   [OK]
+ Creating gunicorn.nginx file.   [OK]
+ Creating factcgi.nginx file.   [OK]

Check [/var/www/mybooktype] directory for config files:
   booki.env      -  Environment variables
   booki.wsgi     -  WSGI file for Apache
   wsgi.apache    -  Apache config file
   gunicorn.nginx -  Nginx config file
   fastcgi.nginx  -  Nginx config file
   settings.py    -  Booki settings file

   templates/     -  Local Booki template files
   locale/        -  Local directory with translations
   static/        -  Local web files
   lib/           -  Local python libraries
   data/          -  Place for attachments

For further instructions read INSTALL file.

6. Измените на папку установки:

cd /var/www/mybooktype/

5. Отредактируйте файл settings.py:

nano settings.py  

В этом файле несколько разделов, которые нуждаются в редактировании, чтобы соответствовать вашей установке. Во-первых, установите имя и email системного администратора:

# DJANGO ADMIN
ADMINS = (
    # ('Your Name', 'your_email@example.com'),
)

Введите имя и домен вашего сервера Booktype:

# BOOKI
BOOKI_MAINTENANCE_MODE = False

BOOKI_NAME = 'My Booktype site'
THIS_BOOKI_SERVER = 'booktype.example.com'

Введите email и выходные данные почтового сервера:

# E-MAIL OPTIONS
REPORT_EMAIL_USER = 'booktype@example.com'

EMAIL_HOST = 'localhost'
EMAIL_PORT = 25

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

# DATABASE STUFF
DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2',
                         'NAME': 'booktype-db',
                         'USER': 'booktype-user',
                         'PASSWORD': 'booktype-password',
                         'HOST': 'localhost',
                         'PORT': ''
                        }
            }

где booktype-password это тот самый пароль, который вы определили для booktype-user при создании базы данных booktype-db в PostgreSQL.

Если у вас более одного приложения, использующего местный сервер Redis, вам, возможно, нужно будет изменить значение REDIS_DB на число отличное от нуля:

# REDIS STUFF
REDIS_HOST = 'localhost'
REDIS_PORT = 6379
REDIS_DB = 0
REDIS_PASSWORD = None

Наконец, установите местный часовой пояс и соответствующий языковой код для вашей инсталляции:

# DJANGO STUFF

AUTH_PROFILE_MODULE='account.UserProfile'

TIME_ZONE = 'Europe/London'

LANGUAGE_CODE = 'en-gb'

Нажмите Ctrl+O для сохранения файла и Ctrl+X, чтобы dqnb из редактора nano.

6. Загрузите переменные среды:

. ./booki.env

7. Инициализируйте базу данных:

django-admin.py syncdb --noinput

Ответ сервера должен быть следующим:

Syncing...
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log
Creating table south_migrationhistory
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

Synced:
 > django.contrib.auth
 > django.contrib.contenttypes
 > django.contrib.sessions
 > django.contrib.sites
 > django.contrib.admin
 > django.contrib.messages
 > south
 > booki.reader
 > booki.portal

Not synced (use migrations):
 - booki.editor
 - booki.account
 - booki.messaging
 - booktypecontrol
(use ./manage.py migrate to migrate these)

8. Как предлагается выше, перенесите оставшиеся части базы данных:

django-admin.py migrate

Ответ сервера должен быть следующим:

Running migrations for editor:
 - Migrating forwards to 0007_auto__add_unique_publishwizzard_book_user_wizz_type.
 > editor:0001_initial
 > editor:0002_auto__add_field_book_hidden
 > editor:0003_attributionexclude
 > editor:0004_book_permission
 > editor:0005_auto__add_field_book_cover__add_field_book_description
 > editor:0006_auto__add_publishwizzard
 > editor:0007_auto__add_unique_publishwizzard_book_user_wizz_type
 - Loading initial data for editor.
Installed 0 object(s) from 0 fixture(s)
Running migrations for account:
 - Migrating forwards to 0001_initial.
 > account:0001_initial
 - Loading initial data for account.
Installed 0 object(s) from 0 fixture(s)
Running migrations for messaging:
 - Migrating forwards to 0003_auto__add_endpointconfig__add_field_endpoint_config.
 > messaging:0001_initial
 > messaging:0002_auto__add_field_post_snippet__add_field_post_context_url
 > messaging:0003_auto__add_endpointconfig__add_field_endpoint_config
 - Loading initial data for messaging.
Installed 0 object(s) from 0 fixture(s)
Running migrations for booktypecontrol:
 - Migrating forwards to 0002_static_user_css.
 > booktypecontrol:0001_initial
 > booktypecontrol:0002_static_user_css
 - Loading initial data for booktypecontrol.
Installed 0 object(s) from 0 fixture(s)

9. Создайте учетную запись супер-пользователя для администратора Booktype:

django-admin.py createsuperuser

Введите требуемую информацию:

Username (leave blank to use 'www-data'): admin
E-mail address: your_email@example.com
Password:
Password (again):
Superuser created successfully.

10. Запустите тестовую копию Booktype на неиспользуемом порту вашего сервера, например, 8005:

django-admin.py runserver 0.0.0.0:8005

11. Пусть терминал работает. Откройте веб-браузер на указанном порту по localhost IP адресу 127.0.0.1, например, http://127.0.0.1:8005/

В качестве альтернативы, если Booktype работает на виртуальной машине типа VirtualBox, то вы должны использовать IP-адрес виртуального сервер GNU/Linux. Вы можете применить режим моста в настройках сети VirtualBox, чтобы получить реальный адрес в местной сети для виртуальной машины.

Если все в порядке, вы увидите страницу Sign in Booktype в вашем браузере. Вы можете войти, используя данные супер-пользователя, которые вы создали ранее.


Убедившись, что Booktype установлен правильно, вы можете нажать Ctrl+C для закрытия тестовой копии. Затем вернитесь к обычному пользовательскому интерфейсу командой:

exit

чтобы не вводить команды от имени www-data пользователя.

Конфигурация Apache

Стандартный веб-сервер Apache можно использовать для предоставления доступа к вашей копии Booktype другим авторам или соавторам в интернете или в местной сети. Чтобы использовать Booktype с Apache, вам нужно установить модуль для WSGI (Web Server Gateway Interface). Подробнее об этом можно узнать из документации Django здесь  
http://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/.

1. Установите сервер Apache (рекомендуемая версия Prefork MPM) и модуль WSGI:

sudo apt-get install apache2-mpm-prefork libapache2-mod-wsgi

2. Копируйте файл wsgi.apache, созданный во время установки Booktype в конфигурационную папку Apache для виртуальных машин:

sudo cp /var/www/mybooktype/wsgi.apache /etc/apache2/sites-available/booktype

3. Редактируйте конфигурационный файл для вашей системы:

sudo nano /etc/apache2/sites-available/booktype

Вы должны изменить хотя бы значения ServerName, ServerAdmin и SetEnv HTTP_HOST для соответствия с доменным именем, созданным для сервера.

<VirtualHost *:80>

     # CHANGE THIS
     ServerName booktype.example.com
     ServerAdmin admin@example.com
     SetEnv HTTP_HOST "booktype.example.com"

Нажмите Ctrl+O,чтобы сохранить файл и Ctrl+X, чтобы выйти из nano редактора.

4. Запустите виртуальный хост Booktype при помощи команды:

sudo a2ensite booktype

5. Перезапустите веб-сервер Apache командой:

sudo invoke-rc.d apache2 restart

У вас должна появиться возможность  просматривать ваш Booktype по URL, определенному в конфигурации VirtualHost configuration, как, например,  http://booktype.example.com/.

Установка подкаталога

Возможно использовать Booktype по URL типа http://www.example.com/booktype/ или похожему. Вам нужно будет назначить значение THIS_BOOKI_SERVER в файле settings.py вашего проекта и настроить конфигурационный файл Apache так, чтобы он указывал на этот подкаталог.

Распределенная установка

На своем сервере вы можете установить несколько копий Booktype. Для этого создайте несколько проектов Booktype с различающимися именами пути, например, /var/www/mybooktype2, /var/www/mybooktype3 и так далее. Затем скопируйте конфигурацию Apache2 из каждого проекта Booktype в конфигурационный каталог Apache configuration /etc/apache2/sites-available/ под разными именами, редактируя значения ServerName и SetEnv HTTP_HOST для каждого файла. Вам нужно будет убедиться, что новые доменные имена, которые вы выбрали, корректно сконфигурированы в DNS. Наконец, запустите каждую копию командой a2ensite и перезагрузите сервер Apache.

There has been error in communication with Booktype server. Not sure right now where is the problem.

You should refresh this page.