Ставим easy_install:
apt-get install -y python-setuptools python-virtualenv
Создаем и переходим в виртуальную среду для установки Zope (чтобы не повредить существующую систему, а также не повредить библиотекам самого Zope):
virtualenv /opt/zope212
cd /opt/zope212
source bin/activate
Ставим зависимости:
apt-get install -y gcc python-dev
Запускаем установку:
bin/easy_install zope2
Создаем instance Zope приложения:
bin/mkzopeinstance
Please choose a directory in which you'd like to install
Zope "instance home" files such as database files, configuration
files, etc.
Directory: /opt/zopeinstance
Please choose a username and password for the initial user.
These will be the credentials you use to initially manage
your new Zope instance.
Username: admin
Password:
Verify password:
Переходим в папку инстанса Zope:
cd /opt/zopeinstance/
Создаем юзера для Zope:
useradd zope
Открываем конфиг инстанса:
vi etc/zope.conf
И добавляем в самый низ имя юзера:
effective-user zope
А теперь делаем владельцем всех файлов юзера Zope:
chown zope:zope -R /opt/zopeinstance
Запускаем во отладочном режиме:
bin/zopectl fg
.
daemon process started, pid=1831
Либо запускаем в продакшен-режиме:
bin/zopectl start
Открываем веб-консоль администрирования и логинимся в нее с ранее заданными логином и паролем:
http://xx.xx.xx.xx:8080/manage
Если же Вы хотите поставить Zeo инстанс (распределенная версия хранилища с возможностью конкурентного доступа к ней), то используйте следующий мануал: http://docs.zope.org/zope2/zope2book/ZEO.html
Создаем Zeo инстанс:
bin/mkzeoinstance /opt/zeoinstance
Переходим в соотвествующую папку:
cd /opt/zeoinstance
Пробуем запустить:
bin/zeoctl start
Если в ответ получаем:
Error: /opt/zope212/lib/python2.5/site-packages/ZODB3-3.10.0a1-py2.5-linux-x86_64.egg/zdaemon/zdrun.py is not an existing path
(line 41 in file:///opt/zeoinstance/etc/zeo.conf)
For help, use /opt/zope212/lib/python2.5/site-packages/ZODB3-3.10.0a1-py2.5-linux-x86_64.egg/ZEO/zeoctl.py -h
То надо скорректировать путь:
vi etc/zeo.conf
И корректируем строку zdrun следующим образом:
zdrun /opt/zope212/lib/python2.5/site-packages/zdaemon-2.0.4-py2.5.egg/zdaemon/zdrun.py
И после этого повторяем попытку запустить Zeo. В итоге он должен заработать примерно так:
lsof | grep zeo
python 15416 root cwd DIR 0,202 4096 28034842 /opt/zeoinstance
python 15416 root 3w REG 0,202 656 28034853 /opt/zeoinstance/log/zeo.log
python 15416 root 4u unix 0xffff81011d31a080 425909697 /opt/zeoinstance/etc/zeo.zdsock.15415
python 15418 root cwd DIR 0,202 4096 28034842 /opt/zeoinstance
python 15418 root 3w REG 0,202 656 28034853 /opt/zeoinstance/log/zeo.log
python 15418 root 4u REG 0,202 7 28034859 /opt/zeoinstance/var/Data.fs.lock
python 15418 root 5u REG 0,202 0 28034860 /opt/zeoinstance/var/Data.fs.tmp
python 15418 root 6u REG 0,202 4 28034861 /opt/zeoinstance/var/Data.fs
lsof 15455 root cwd DIR 0,202 4096 28034842 /opt/zeoinstance
grep 15456 root cwd DIR 0,202 4096 28034842 /opt/zeoinstance
lsof 15457 root cwd DIR 0,202 4096 28034842 /opt/zeoinstance
bash 19864 root cwd DIR 0,202 4096 28034842 /opt/zeoinstance
Теперь проверим, какое хранилище использует наш Zope инстанс, это файловое хранилище:
lsof | grep zope -i | grep Data.fs
runzope 21553 zope 7u REG 0,202 7 28034847 /opt/zopeinstance/var/Data.fs.lock
runzope 21553 zope 10u REG 0,202 0 28034848 /opt/zopeinstance/var/Data.fs.tmp
runzope 21553 zope 11u REG 0,202 1040426 28034849 /opt/zopeinstance/var/Data.fs
runzope 21553 zope 12r REG 0,202 1040426 28034849 /opt/zopeinstance/var/Data.fs
Теперь необходимо Zope инстанс переключить на Zeo:
cd /opt/zopeinstance/
vi etc/zope.conf
Находим и комментируем диезами (#) там блок:
<zodb_db main>
# Main FileStorage database
</zodb_db>
Чуть ниже находим аналогичный закомментированый блок zodb_db main со вложенным блоком zeoclient и раскомментируем его.
Перезапускаем инстанс:
bin/zopectl restart
Убаеждаемся, что законнектились на Zeo инстанс:
bin/zopectl logtail
------
2010-03-16T02:13:06 INFO ZEO.zrpc.Connection(C) (localhost:8100) received handshake 'Z310'
------
2010-03-16T02:13:06 INFO ZEO.ClientStorage zeostorage Server authentication protocol None
------
2010-03-16T02:13:06 INFO ZEO.ClientStorage zeostorage Connected to storage: ('localhost.localdomain', 8100)
------
2010-03-16T02:13:06 INFO ZEO.ClientStorage zeostorage No verification necessary -- empty cache
------
2010-03-16T02:13:17 INFO Zope Ready to handle requests
Ну и все, теперь у нас есть сторадж Zeo инстанс с поддержкой множественных Zope инстансов :) Также, как вариант, мы можем подключаться к Zeo из своих пользовательских многопоточных приложений.
Выходим из virtualenv:
deactivate
No comments :
Post a Comment
Note: only a member of this blog may post a comment.