LoginSignup
4
5

More than 5 years have passed since last update.

Plone 4 をデプロイする方法

Last updated at Posted at 2015-01-31

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 
4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5