Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2013-07-24

Plone 4.3 on CentOS 6.4

Сегодня я покажу как установить Plone 4.3 на оп.систему CentOS 6.4.
В Сети есть достаточно материалов на эту тему, но, как обычно, на текущий момент эти материалы несколько потеряли актуальность.

Почему CentOS? Ну, например, потому, что провайдеры хостинга VPS очень любят эту ОС. Или потому, что в ней firewall включен изначально. Или потому, что для Debian было бы проще, но мы трудностей не боимся.

Поехали.

Делай раз: установим CentOS в Virtualbox.

Скачиваем исошник системы куда-нибудь на хост, да хоть в папку Desktop:

Создаем вирмашину с 512 мегабайт оперативки, 2 ядра, диск 80 Гб. Сетевой интерфейс «bridged». Стартуем виртмашину с загрузкой из вышеупомянутого исошника, ставим систему.
По ходу выбираем «Installation Method: URL» и вписываем

После установки, свежую систему надо доточить напильником.
su -l
yum check-update
yum update
yum install nano
nano /etc/hostname
 deploy # для моего случая имя машины было «deploy.nhome.net»

nano /etc/hosts
 127.0.0.1 localhost deploy deploy.nhome.net

nano /etc/sysconfig/network
 HOSTNAME=deploy.nhome.net

# адрес брался из DHCP
nano /etc/sysconfig/network-scripts/ifcfg-eth0
 DHCP_HOSTNAME=”deploy”

service network restart

# непривилегированный пользователь, для одного из вариантов установки Plone и пр.
useradd valik
passwd valik

yum install dkms gcc make kernel-devel
mount /dev/cdrom /mnt 
pushd /mnt 
bash VBoxLinuxAdditions.run

# видно, что ssh доступен а более нет ничего
netstat -tulnpv

Система поставлена, обновлена, сеть настроена, Virtualbox GuestAdditions установлены, можно подключаться по ssh.

Чтобы упростить/защитить подключение по ssh, надо завязаться на ключи.
На своем хосте (_не_ в гостевой машине!) настраиваю ключи:
su -l valik
ssh-copy-id valik@deploy
nano ~/.ssh/config
    NoHostAuthenticationForLocalhost yes
    PubkeyAuthentication yes
    GSSAPIAuthentication no
    AddressFamily inet
# в качестве проверки замонтируем папочку
sshfs -o idmap=user -o follow_symlinks valik@deploy:/home/valik /home/valik/t
# и законнектимся
ssh -v valik@deploy
Беспарольный коннект по ssh работает.

На этом первичная настройка ОС закончена.

Делай два: поставим Plone.

возьмем свежайший дистр. Сейчас это 4.3.1
Заходим на гостевую машину (deploy) и заклинаем:
su -l
yum check-update
yum update
yum install wget

su -l valik
pushd /tmp
wget https://launchpad.net/plone/4.3/4.3.1/+download/Plone-4.3.1r1-UnifiedInstaller.tgz
tar zxf Plone-4.3.1r1-UnifiedInstaller.tgz
cd Plone-4.3.1r1-UnifiedInstaller
less README.TXT
Внимательно читаем README.TXT

Помимо разных деталей, из ридми нам понятно:
1 — какие библиотеки нужно установить перед установкой Plone;
2 — установить Плон можно «от рута» или «от нерута», на что это влияет;
3 — установить Плон можно standalone или ZEO, на что это влияет.
Ну, ZEO вариант мы сегодня ставить не будем, как нибудь потом. А рут/не рут разберем сегодня.

Сборка Plone от имени нерута — пользователя valik:
su -l valik
pushd /tmp/Plone-4.3.1r1-UnifiedInstaller
./install.sh --password=12345678 --build-python --static-lxml=yes standalone
Кто бы мог подумать — поначалу сборка обрывается с сообщениями об ошибках, ибо не хватает библиотек и пакетов :)

Поставим недостающие пакеты:
su -l
yum groupinstall "Development tools"
yum install gcc-c++ patch openssl-devel libjpeg-devel libxslt-devel readline-devel make which
Любопытно, dev tools требуют 222 Mb в распакованном виде.

Из ридми мы знаем, что
> Optional wv, poppler-utils May be installed after Plone install
для индексации файлов *.doc, *.pdf. Однако, они не совсем опциональны. Их отсутствие вызывает ошибки при работе сайта Plone. Поэтому, поставим их сразу.
Изучив текст по адресу http://repoforge.org/use/
заклинаю:
su -l
yum install poppler-utils
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
rpm -ivh rpmforge-release-0.5.3-1.el6.rf.i686.rpm
yum install --enablerepo=rpmforge-extras wv

Вот теперь можно повторить сборку Plone и, на этот раз, она пройдет без сучка и задоринки.

Делай три: запускай сайт Plone.

su -l valik
pushd ~/Plone/zinstance/ 
bin/plonectl start
 или
bin/instance fg
Что за нафиг, в браузере сайта не видать ни по каким адресам:

А это потому, что файрволл в CentOS по умолчанию разрешает только SSH

Открываем порт tcp 8080 путем использования управлятора файрволлом:
su -l
yum install system-config-firewall-tui
system-config-firewall-tui
service iptables restart
iptables -L
после чего сайт открылся. Кнопка «создать сайт Плон» работает, ZMI работает, все хорошо.

Вся система занимает сейчас 2.5 гигабайта. Значит, установка Плона потребовала 1 гигабайт диска, ибо свежеустановленная CentOS весила 1.5 гигабайта.

Для закрепления материала установим Plone от рута, как и положено в production:
su -l valik
rm -rf ~/Plone

su -l
pushd /tmp/Plone-4.3.1r1-UnifiedInstaller
./install.sh --password=12345678 --build-python --static-lxml=yes standalone

# запуск
sudo -u plone_daemon /usr/local/Plone/zinstance/bin/instance fg
# или
sudo -u plone_daemon /usr/local/Plone/zinstance/bin/plonectl start
Обновление билдаута требует правильной текущей директории:
su -l
pushd /usr/local/Plone/zinstance 
sudo -u plone_buildout /usr/local/Plone/zinstance/bin/buildout -nv 
Обратите внимание, запуск службы делается от имени «plone_daemon» а запуск билдаута от имени «plone_buildout» – и никак иначе.

В этой статье мы показали, какие действия надо предпринять, чтобы на «голую» CentOS 6.4 установить Plone 4.3.

В следующий раз, если захочется, поглядим как сделать production сервер на этой основе — как и какой frontend поставить, как сделать балансировку с использованием ZEO, как настроить автозапуск служб, ротацию логов, резервное копирование, etc.

original post http://vasnake.blogspot.com/2013/07/plone-43-on-centos-64.html

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)