ミドルウェアの設定

WIKIPLUSで使用するミドルウェアを設定し、起動します。ここではWIKIPLUSの動作に必須なミドルウェアの設定のみをご案内しています。FTPの有効化やMemcachedによる高速化などはカスタマイズマニュアルをご覧ください。

目次

PostgreSQLの設定

WIKIPLUS用のデータベースとユーザーを作成します。WIKIPLUSとPostgreSQLサーバーを別で構築する場合は、データベースサーバーにログインして操作します。

ここでは、PostgreSQL 9.4がインストールされた直後の状態を例として、初期設定を含めてご案内します。

データベースクラスタの初期化

# /etc/init.d/postgresql-9.4 initdb

設定ファイルの編集

/var/lib/pgsql/9.4/data/pg_hba.conf

以下はIPv4のみを設定した際の一例です。サーバーの設計やポリシーにより変更してください。

WIKIPLUSでは、全体で1つのデータベースを使用します。

local   all         postgres                                    trust
host    all         postgres            127.0.0.1/32            trust
host    sameuser        all             127.0.0.1/32            password
local   sameuser        all                                     password
/var/lib/pgsql/9.4/data/postgresql.conf

TCPリスニングの設定を行います。

また、動作するApache / PHPのインスタンスの数に余裕を加えてmax_connectionの数を設定する必要があります。

...
listen_addresses = '127.0.0.1'    # what IP address(es) to listen on;
                                  # comma-separated list of addresses;
                                  # defaults to 'localhost'; use '*' for all
                                  # (change requires restart)
port = 5432                       # (change requires restart)
max_connections = 100             # (change requires restart)
...

PostgreSQLサーバーの起動と、データベース・ユーザーの作成

PostgreSQLを起動し、WIKIPLUS用のユーザーとデータベースを作成します。これは、/opt/JPC/wikiplus/conf/server-config.ymlで設定したものです。ここでは、例として「wikiplus」というユーザーと同名のデータベースを作成します。

# service postgresql-9.4 start
# chkconfig postgresql-9.4 on 
$ /usr/pgsql-9.4/bin/createuser -e -h localhost -U postgres -D -E -P -R -S wikiplus
$ /usr/pgsql-9.4/bin/createdb -e -h localhost -U postgres -E UTF8 -O wikiplus -T template0 wikiplus

接続の確認

WIKIPLUSサーバーからデータベースに接続できるかを確認します。

# /usr/pgsql-9.4/bin/psql -h 127.0.0.1 -U wikiplus -W
ユーザ wikiplus のパスワード: 
psql (9.4.5)
"help" でヘルプを表示します.

wikiplus=> \q

PHPの設定

WIKIPLUS 4.0より、PHP 5.5が標準となりました。php.iniを編集し、設定を変更します。規模や設計により最適な値は異なります。

Red Hat Enterprise Linux 6の場合
/etc/php.ini
Oracle Solaris 11の場合
/etc/php/5.5/php.ini

以下の項目の編集が必須です。

upload_max_sizeアップロードできるファイルの最大値を指定します。21M以上で設定してください。
post_max_sizePOSTできる最大値の指定をします。upload_max_filesizeよりも大きくなくてはいけませんので、22M以上に設定します。
memory_limitPHPが使うメモリの最大値を指定します。WIKIPLUSの最低必須メモリは24Mです。
date.timezone適したタイムゾーンを設定します。(例: Asia/Tokyo)

Apacheの設定

WIKIPLUS 4.0より、ApacheとPHPは以下の動作モードが標準となりました。

  • worker MPM + FastCGI

ここでは、Apacheの基本的な設定は完了しているとしてご案内します。また、Apacheは2.2系を例としています。

fcgid.confの設定

Red Hat Enterprise Linux 6の場合
/etc/httpd/conf.d/fcgid.conf
Oracle Solaris 11の場合
/etc/apache2/2.2/conf.d/fcgid.conf

以下はサンプルです。環境や設計により最適な設定は異なります。

LoadModule fcgid_module modules/mod_fcgid.so

FcgidIPCDir /var/run/mod_fcgid
FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm

FcgidMaxRequestLen 20971520
FcgidMaxRequestInMem 131072
FcgidMaxProcesses 300
FcgidMaxRequestsPerProcess 128
FcgidIOTimeout 60

php.conf

Red Hat Enterprise Linux 6の場合
/etc/httpd/conf.d/php.conf
Oracle Solaris 11の場合
/etc/apache2/2.2/conf.d/php.conf

fcgid.confに沿った内容で作成または変更が必要です。以下はサンプルです。

<IfModule !mod_php5.c>
<IfModule mod_fcgid.c>
FcgidWrapper "/usr/bin/php-cgi" .php
FcgidWrapper "/usr/bin/php-cgi" .php5
FcgidCmdOptions /usr/bin/php-cgi \
  InitialEnv PHP_FCGI_MAX_REQUESTS=10000 \
  InitialEnv PHP_FCGI_CHILDREN=0 \
  MaxRequestsPerProcess 128 \
  IOTimeout 1800

<Directory /var/www >
<FilesMatch "\.php5?$">
  SetHandler fcgid-script
  Options +ExecCGI
</FilesMatch>
</Directory>

<Directory /opt/JPC/wikiplus/var/www >
<FilesMatch "\.php5?$">
  SetHandler fcgid-script
  Options +ExecCGI
</FilesMatch>
</Directory>

<Directory /opt/JPC/wikiplus/libexec/program/whm >
<FilesMatch "\.php5?$">
  SetHandler fcgid-script
  Options +ExecCGI
</FilesMatch>
</Directory>

DirectoryIndex index.php
DirectoryIndex index.php5
</IfModule>
</IfModule>

MPMの切り替え

Red Hat Enterprise Linux 6の場合

/etc/sysconfig/httpdを編集し、以下の行のコメントアウトを外します。

HTTPD=/usr/sbin/httpd.worker
Oracle Solaris 11の場合

svccfgコマンド・svcadmコマンドで変更します。こちらに操作例をご紹介しています。

WIKIPLUSの設定ファイルの書き出しとインクルード

Apacheで読み込む必要があるWIKIPLUSの設定ファイルは以下です。

wikiplus_open_http.confインスタンスの公開側URL(HTTP)用設定ファイルです。WIKIPLUSのパッケージで管理されます。
wikiplus_open_https.confインスタンスの公開側URL(HTTPS)用設定ファイルです。WIKIPLUSのパッケージで管理されます。
ssl_settings_open_https.confインスタンスの公開側URL(HTTPS)で利用するSSLの設定が入ったファイルです。テンプレートから書き出したあと、サーバーにインストールしたSSL証明書の設定を記述する必要があります。
edit.confWIKIPLUSの編集側URL用設定ファイルです。テンプレートから書きだしたあと、環境に合わせて設定を記述する必要があります。
whm.conf廃止されたWPADMINに代わる新管理システム「WHM(WIKIPLUS Hosting Manager)」用の設定ファイルです。テンプレートから書きだしたあと、環境に合わせて設定を記述する必要があります。
wikiplus.conf上記のファイル群をまとめてインクルードするための設定ファイルです。テンプレートから書き出したあと、ファイル名を書きだした上記のファイル群に合わせて変更する必要があります。
ssl_settings_open_https.conf

テンプレートから設定ファイルを書き出します。ファイル名は任意で変更しても構いません。

# /opt/JPC/wikiplus/bin/wp_tf -t /opt/JPC/wikiplus/template/http/ssl_settings_open_https.conf.tmpl > /opt/JPC/wikiplus/conf/httpd/conf/ssl_settings_open_https.conf

書き出したファイルを編集し、公開側URL(HTTPS)のSSL証明書情報を記述します。

edit.conf

テンプレートから設定ファイルを書き出します。ファイル名は任意で変更しても構いません。

# /opt/JPC/wikiplus/bin/wp_tf -t /opt/JPC/wikiplus/template/http/httpd_edit.conf.tmpl > /opt/JPC/wikiplus/conf/httpd/conf/edit.conf

書き出したファイルを編集します。

ServerName
編集用URLのFQDNを記述します。(例: edit.wp.example.jp)
ログファイル
サンプルとして、rotatelogsの場合とlogrotateの場合をコメントアウトで記載されています。サーバーの設計にあわせ、コメントアウトを外したり編集してください。
IP制限
編集用URLにアクセスを許可するIPアドレスをApacheのバージョンにあわせて記述してください。
SSL証明書情報
編集用URLのSSL証明書情報を「# Please modify paths」の下の項目に記述してください。

その他、待ち受けIPアドレスやSSLの設定等も設計やポリシーにあわせご変更ください。

whm.conf

テンプレートから設定ファイルを書き出します。ファイル名は任意で変更しても構いません。

# /opt/JPC/wikiplus/bin/wp_tf -t /opt/JPC/wikiplus/template/http/httpd_whm.conf.tmpl > /opt/JPC/wikiplus/conf/httpd/conf/whm.conf

書き出したファイルを編集します。

ServerName
WHM用URLのFQDNを記述します。(例: whm.wp.example.jp)
ログファイル
サンプルとして、rotatelogsの場合とlogrotateの場合をコメントアウトで記載されています。サーバーの設計にあわせ、コメントアウトを外したり編集してください。
IP制限
編集用URLにアクセスを許可するIPアドレスをApacheのバージョンにあわせて記述してください。

その他、待ち受けIPアドレス等も設計やポリシーにあわせご変更ください。

wikiplus.conf

テンプレートから設定ファイルを書き出します。このファイルは、上記で書き出したファイルをインクルードするもののため、Apacheのconf.d下に書き出します。ファイル名は任意で変更しても構いません。

Red Hat Enterprise Linux 6の場合
/etc/httpd/conf.d/wikiplus.conf
Oracle Solaris 11の場合
/etc/apache2/2.2/conf.d/wikiplus.conf
# /opt/JPC/wikiplus/bin/wp_tf -t /opt/JPC/wikiplus/template/http/httpd_wikiplus.conf.tmpl > /etc/httpd/conf.d/wikiplus.conf

書き出したファイルを編集します。標準では、以下のようなファイルが書き出されます。

NameVirtualHost *:80
NameVirtualHost 192.0.2.1:443

Include /opt/JPC/wikiplus/conf/httpd/conf/00_default-server.conf
Include /opt/JPC/wikiplus/conf/httpd/conf/00_default-server.ssl.conf
Include /opt/JPC/wikiplus/conf/httpd/conf/edit.conf
Include /opt/JPC/wikiplus/conf/httpd/conf/whm.conf

Include /opt/JPC/wikiplus/libexec/httpd/conf/wikiplus_open_http.conf
Include /opt/JPC/wikiplus/libexec/httpd/conf/wikiplus_open_https.conf

このうち、「00_default-server.conf」と「00_default-server.ssl.conf」は、存在しないVirtualHostにアクセスがあった場合に、どのVirtualHostを表示するかを設定する項目で、オプションとしてテンプレートを提供しています。

収容するサイトが1つしかなかったり、DNSのAレコードに*(アスタリスク)を使わない場合は特に必要ありません。不要な場合は、この2行をコメントアウトしてください。

詳しくはカスタマイズマニュアルにてご案内します。

コンフィグテストと起動

Apacheの設定に問題がないかを確認し、起動します。

Red Hat Enterprise Linux 6の場合
service httpd configtest
Oracle Solaris 11の場合
/usr/apache2/2.2/bin/64/apachectl configtest

(実行例)

# service httpd configtest
[Wed Nov 25 14:55:50 2015] [warn] NameVirtualHost *:80 has no VirtualHosts
[Wed Nov 25 14:55:50 2015] [warn] NameVirtualHost *:80 has no VirtualHosts
Syntax OK

ここでは、Warningが表示されていますが、この動作は正常です。

問題がなければApacheを起動します。

Red Hat Enterprise Linux 6の場合
# service httpd start
# chkconfig httpd on
Oracle Solaris 11の場合
# svcadm enable svc:/network/http:apache22