В зависимости от того, насколько свежей сборкой 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 это сервер для онлайн-сотрудничества, на котором находится самая последняя версия 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 можно использовать для предоставления доступа к вашей копии 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.