alafin
Июнь 22, 2007 23:19:28
После прочтения документации по добавлению продуктов в Plone у меня возникли некоторые вопросы.
Для того чтобы установить продукт я должен узнать месторасположение продуктов в Zope чтобы затем новый продукт закинуть туда. Для этого я должен запустить сам Zope(не Plone). Правильно? А чтобы его запустить я должен сначала выполнить команду ./mkzopeinstance а затем ./runzope? Или как то по другому?
nss
Июнь 22, 2007 23:27:43
Не совсем. mkzopeinstance создает так называемый Zope Instance, то есть отдельный каталог, в котором есть все необходимое для функицонирования zope (файлы zodb, продукты, настройки и скрипты запуска). На одной тачке может быть несколько инстансов.
После создания инстанса запустиать Zope можно с помощью ${ZOPE_INSTANCE}/bin/zopectl start
продукты устанавливаются предельно просто – нужно просто скопировать директорию с продуктом в ${ZOPE_INSTANCE}/Products, и перезапустить зоп. ${ZOPE_INSTANCE}/bin/zopectl restart
Если продукт плоновский, то необходимо его установить еще и в плоновском инсталлере (через веб-интерфейс зайти в Site Setup (ссылка в правом верхнем углу портала), там есть пункт Add/remove products.
alafin
Июнь 22, 2007 23:42:13
После того как я установил Plone у меня автоматом вместе с ним установился и Zope.
У меня сейчас на машине так:
/opt/Plone-2.5.3
/opt/Zope-3.3.0
Причем структура каталогов Zope выглядит так:
build install.py Makefile.in README.txt test.py
configure LICENSES.txt MANIFEST setup.cfg Zope
Dependencies Makefile Modules Support ZopePublicLicense.txt
Так вот вопрос в следующем. Куда мне скидывать продукты если как такового каталога Product не наблюдается?
nss
Июнь 22, 2007 23:46:00
это не инстанс :(
Во-вторых, для плона 2.5.x нужен зоп 2.9.x (2.10.x – для плона 3.0.x, но он пока еще не вышел).
Когда скачаете исходники зопа, то просто делаете ./configure –with-python=/path/to/python (поддерживает только версия 2.4, 2.5 не работает)
make && make install
потом /usr/local/bin/mkzopeinstance.py (интерактивный скрипт создания инстанса).
потом нужно содержимое архива с плоном скопировать в Products инстанса.
alafin
Июнь 23, 2007 17:25:43
nss
После создания инстанса запустиать Zope можно с помощью ${ZOPE_INSTANCE}/bin/zopectl start
Странно у мен такая ситуация:
# ./zopectl start
. daemon process started, pid=15451
После этого при загрузки страницы
http://localhost:8080/manage страница не открывается. Что может быть?
nss
Июнь 23, 2007 22:57:48
Попробуйте посмотреть в log/event.log или запустить ./bin/zopectl stop && ./bin/zopectl debug
alafin
Июнь 23, 2007 23:14:27
Выдает следующее:
# ./zopectl
program: /root/Site/bin/runzope
daemon manager not running
zopectl> stop
daemon manager not running
zopectl> debug
Starting debugger (the name “app” is bound to the top-level Zope object)
2007-06-23 23:12:19 CRITICAL Zope A user was not specified to setuid to; fix this to start as root (change the effective-user directive in zope.conf)
Traceback (most recent call last):
File “<string>”, line 1, in ?
File “/opt/Plone-2.5.3/lib/python/Zope2/Startup/run.py”, line 34, in configure
starter.dropPrivileges()
File “/opt/Plone-2.5.3/lib/python/Zope2/Startup/__init__.py”, line 213, in dropPrivileges
return dropPrivileges(self.cfg)
File “/opt/Plone-2.5.3/lib/python/Zope2/Startup/__init__.py”, line 382, in dropPrivileges
raise ZConfig.ConfigurationError(msg)
ZConfig.ConfigurationError: A user was not specified to setuid to; fix this to start as root (change the effective-user directive in zope.conf)
Причем после этого пытался раскоментировать effective-user в zope.conf и подставить свой логин для входа в linux но все равно не дает результата.
nss
Июнь 23, 2007 23:20:47
если вы устанавливаете effective user, тоже zope нужно стартовать из-под рута (обычный юзер в линухе не может делать setuid).
Вы mkzopeinstance запускали из-под рута?
alafin
Июнь 23, 2007 23:25:30
nss
Вы mkzopeinstance запускали из-под рута?
Да. А нужно было из под обычного пользователя?
nss
Июнь 23, 2007 23:29:26
alafin
nss
Вы mkzopeinstance запускали из-под рута?
Да. А нужно было из под обычного пользователя?
Да, так проще. Или внимательно посмотрите чтоб права были правильные, но проще запустить mkzopeinstance из-под юзера.