Plone

Plone 4 をデプロイする方法

More than 3 years have passed since last update.

Ploneをサービスとして公開する方法を書きます。

実運用に合わせて各種設定を調整する必要はありますが、最低限の方法として以下のとおりです。


前提

以下の環境とする


  • OS: CentOS 6.0 / RHEL 6.0

  • Plone 4.3.4

  • Unified Installer を用いて、サービスとしてインストール(sudoしてインストール)

  • Plone のインスタンス(Zope上のルートフォルダのPloneオブジェクト)の名前を Plone とする


Plone の設定


概要

Ploneの設定には、 buildout.cfg にて行います。

Plone 2のころは、 etc/zope.conf に書いていた起動設定やプロダクトの導入などすべてを、 buildout.cfg または base.cfg に設定を記載します。

buildout.cfg を書き換えたら、 buildout コマンドで設定を反映させます。


重要な設定項目


zserver-threads の変更

同時にアクセスが多い場合、thread数の変更を行います。

base.cfgの[instance_base] セクションに追記


base.cfg

zserver-threads = 10



プロダクトのインストール


buildout.cfg

eggs = 

...
PACKAGE_NAME


独自プロダクトのインストール

egg形式のパッケージをインストールします。


  • zinstance/src 以下にパッケージを設置します。


  • 設定を書きます。



buildout.cfg

eggs = 

...
YOUR_PACKAGE
...
develop =
...
src/YOUR_PACKAGE


必要に応じて変更する設定項目


起動ユーザの変更

デフォルトでPloneユーザになっているはずです。


buildout.cfg

effective-user = plone



ポート番号の変更


buildout.cfg

http-address = 8080



設定変更の反映コマンド

$ cd /usr/local/Plone/zinstance

$ sudo vi buildout.cfg # ここで設定を記載

$ sudo ./bin/buildout -N

これで、 zope.conf が、一旦削除され、新規に作成されます。同時に必要なモジュールのインストールなども行われます。

-N オプションは、必要以上に新バージョンのモジュールをインストールしないというオプションです。


Plone の起動方法


単独で起動

起動コマンド

$ cd /usr/local/Plone/zinstance

$ ./bin/plonectl start

停止コマンド

$ cd /usr/local/Plone/zinstance

$ ./bin/plonectl stop


サービスの登録


起動スクリプトの設置

Unified Installerを解凍したフォルダ内に init_scripts/RedHat-FedoraCore/plone-standalone がある。

plone-standalone ファイルを plone というファイル名で /etc/init.d/ に配置。

その後、chkconfigでサービスへの登録

具体的な方法

$ sudo cp plone-standalone /etc/rc.d/init.d/plone

$ sudo chmod 755 /etc/rc.d/init.d/plone
$ sudo /sbin/chkconfig --add plone

起動

$ sudo service plone start


HTTP(S) ポートでのサービス

Ploneは標準で、8080番ポートで立ち上がるアプリケーションです。

HTTP(S) つまり、80番ポート / 443番ポートでサービスを行うために、フロントのHTTPサーバと組合せます。


HTTPサーバの種類

以下の2つで使いやすい方を選べば良いです。


Apache

多くのサービスで使われているHTTPサーバ。多くの機能を持つ物。

以下に設定の例を示します。詳しくはApacheのドキュメントを確認ください。


plone.conf

<VirtualHost *:80>

ServerName www.example.com
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/http/%{SERVER_NAME}:80/Plone/VirtualHostRoot/$1 [L,P]
</IfModule>
</VirtualHost>

再起動

$ sudo service httpd restart 


nginx

高速に動作するHTTPサーバ。静的コンテンツとリバースプロキシーに特化した物。設定ファイルを簡潔に記載できる。

以下に設定の例を示します。詳しくはnginxのドキュメントを確認ください。


plone.conf

server {

listen 80;
server_name www.example.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8080/VirtualHostBase/http/www.example.com:80/Plone/VirtualHostRoot/;
}
}


再起動

$ sudo service nginx restart