ウェブサーバーへの手動設定追加【ADVANCE/EXPERT/Plesk8】

本ガイドはADVANCE、EXPERT、およびPlesk8.Xを搭載のEX-SCALEプランの場合、Apacheの設定を追加、上書きするための手順となりますが、サポート対象外の説明を含む内容となります。参考情報としてお読みいただき、お客様のご判断でご利用ください。

下記はPlesk管理画面上で設定追加のできない、各バーチャルホストごとのウェブサーバ設定を、コマンドライン上で追加する例について解説しています。
管理画面から設定可能なものはできるかぎり、Pleskからの設定をしていただきますが、ウェブサービスに関するいくつかの項目については、追加的に別ファイルを用意いただき、root権限にて、設定を適応いただく必要がございます。

このガイドの中で登場する”vhost.conf”については、Pleskのマニュアルサイトでも確認してください。
Plesk 8.4 Webサーバ設定ファイルへのディレクティブのインクルード

STEP 1別の設定ファイルvhost.confを用意

まず、対象サーバにSSHログインし、rootに昇格していただきます。
各メインのドメイン設定は「/var/www/vhosts/[ドメイン名]/conf/」以下に格納されている”httpd.include”のファイルですが、このファイルを直接編集すると、Pleskで設定を変更した際に上書きされてしまいます。

Pleskの仕様では、メインドメインへの追加設定の際、既存のhttpd.includeと同じ階層に別ファイル「vhost.conf」を用意します。
サブドメイン扱いのサイトに対しての追加設定の際は httpd.includeよりさらに階層が深いパス(「/var/www/vhosts/[ドメイン名]/conf/subdomains/[サブドメイン名]/conf」以下)に「vhost.conf」を用意いただく必要があります。

# cd /var/www/vhosts/[ドメイン名]/conf/
メインドメイン、およびサブドメインの設定ファイルはこのディレクトリ以下の「httpd.include」ファイルに集約されています。
# ls 
 httpd.include 
念のため、日付名などでバックアップしたい方は下記。
# cp -pi httpd.include http.include.YYYYMMDD

メインドメインへの設定追加の場合は、同一ディレクトリ以下でファイルを作成します。
# vi vhost.conf
sslのサイトの再設定の場合は、”vhost_ssl.conf”で作成します。
サブドメインに対しての設定追加を行う場合は、/var/www/vhosts/[ドメイン名]/conf/subdomains/[サブドメイン名]/conf以下に移動した後、vhost.confを作成ください。

viコマンドの使用方法についてはコメントしませんが、編集済みのテキストファイルを、設定ファイルディレクトリに既定ファイル名で置く、 という作業が必要です。

STEP 2websrvmngのインクルード用コマンドを発行

下記のコマンドを発行します。
websrvmngコマンドについては付録を参照し、コマンドの概要を理解した上で作業してください。
# /usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=[ドメイン名(※)] 

このコマンドを発行すると 該当ドメインのhttpd.includeファイルが更新されますが、
「vhost.conf」「vhost_ssl.conf」のファイル名や、格納場所を間違えてしまうと設定追加が行われないので、注意してください。 
(※)サブドメイン用にvhost.confを追加作成した場合も上記コマンド「ドメイン名」はメインドメイン名でご指定ください。

STEP 3Apacheの再起動

Apache設定ファイルの文法をチェックします 
# /usr/sbin/httpd -S 
出力結果の最後に 
Syntax OK 
と表示されることを確認します。

Apacheを再起動します 
# /etc/init.d/httpd restart

付録

websrvmngのコマンドヘルプ

コマンドのオプション、詳細については下記でご確認ください。(英語)
 # /usr/local/psa/admin/sbin/websrvmng --help

~上記の例以外に時々使われるwebsrvmng例~
websrvmng -v -a
手動で httpd.incldeを編集した後、Apacheで再起動を試みた際、再起動に失敗する、というケースがあります。
Plesk保有のデータベースから、すべてのバーチャルホストドメインのhttpd.includeの再生成をおこなう、コマンドがあります。
※上述ののvhost.conf等での追加設定は、Plesk上で管理可能な httpd.includeファイルを用意し、ウェブサーバの再起動ができることを確認できてから、作業する必要があります。下準備として下記コマンドが使えるケースがあります。

次のコマンドは下記のファイル群すべて上書きの対象となりますので、必要に応じて バックアップを取ってください。
/etc/httpd/conf.d/zz010_psa_httpd.conf
/var/www/vhosts/[すべてのドメイン名]/conf/httpd.include 
# /usr/local/psa/admin/sbin/websrvmng -a -v

php、open_basedirの追加設定の例

たとえば、各ドメインの/privateディレクトリ以下に open_basedirを設定したい場合、vhost.confに記入する例は下記になります。
【vhost.conf open_basedir追加例1】

< Directory /var/www/vhosts/[ドメイン名]/httpdocs>
< IfModule sapi_apache2.c>
php_admin_flag engine on 
php_admin_flag safe_mode off 
php_admin_value open_basedir "/var/www/vhosts/[ドメイン名]/httpdocs:/var/www/vhosts/[ドメイン名]/private:/tmp" 
< /IfModule>
< IfModule mod_php5.c>
php_admin_flag engine on 
php_admin_flag safe_mode off 
php_admin_value open_basedir "/var/www/vhosts/[ドメイン名]/httpdocs:/var/www/vhosts/[ドメイン名]/private:/tmp" 
< /IfModule>
< /Directory>

このようなvhost.confファイルが用意できた後、STEP2でファイルのインクルード(読み込み)、STEP3で文法チェック、Apacheの再起動を行います。
open_basedirの設定の場所によっては、パーミッションやオーナーの調整も必要になります。

下記は、読み込み用ファイルを 各ドメインのprivate 以下に設置するコマンド例です。
# touch /var/www/vhosts/[ドメイン名]/private/[ファイル名] 
# chmod 705 /var/www/vhosts/[ドメイン名]/private 
# chmod 604 /var/www/vhosts/[ドメイン名]/private/[ファイル名] 
# chown [ftpuser名]:psacln /var/www/vhosts/[ドメイン名]/private/[ファイル名]

また PEAR プログラム用のvhost.conf設定例は以下のようなものになります。ファイルを用意後、STEP2でファイルのインクルード(読み込み)、STEP3で文法チェック、Apacheの再起動を行います
【vhost.conf open_basedir追加例2 PEARプログラムの利用】

< Directory /var/www/vhosts/[ドメイン名]/httpdocs>
< IfModule sapi_apache2.c>
php_admin_flag engine on 
php_admin_flag safe_mode off 
php_value include_path .:/usr/share/pear
php_admin_value open_basedir "/var/www/vhosts/[ドメイン名]/httpdocs:/usr/share/pear:/tmp" 
< /IfModule>
< IfModule mod_php5.c>
php_admin_flag engine on 
php_admin_flag safe_mode off 
php_value include_path .:/usr/share/pear
php_admin_value open_basedir "/var/www/vhosts/[ドメイン名]/httpdocs:/usr/share/pear:/tmp" 
< /IfModule>
< /Directory> 

mod_jkの追加設定の例

こちらのご案内はADVANCE・EXPERTプランにて、Tomcatのプロセスを起動していて、”jsp-examples”というアプリケーションにアクセスできる状態にしている方、例えば
http://【ご契約サーバ名】:(TOMCAT接続ポート番号)/jsp-examples/
というURLが有効な状態になっている方が、
以下のような通常の80番ポートで以下のURLも同様に有効にしたい場合、
http://example.org/jsp-examples/
という場合に、有効な設定の例です。

規定値のApacheの設定では以下のようなモジュールはロードされている状態です。

LoadModule jk_module /usr/lib/httpd/modules/mod_jk.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

また、サーバにインストール済みのTomcatの設定ファイルでは、AJP13コネクションハン ドラが設定されている状態です。たとえば vhost.conf ファイルには以下のような記述を追加します。

JkMount /jsp-examples ajp13
JkMount /jsp-examples/* ajp13

上述のファイルを準備した後、STEP2でファイルのインクルード(読み込み)、STEP3で文法チェック、Apacheの再起動を行います。
なお上記例以外にも記述方法はあるかとは存じますが、専門書籍等をご参照のうえご対応ください。またTomcatプロセスとApacheプロセスが連携するプロセスであるため、相互の影響が生じます。運用の際は十分ご留意の上、プロセス管理いただきますようお願い申し上げます。

Webユーザ用URLを他のURLで見せる例

Webユーザ機能で追加したFTPアカウントとは
http://example.org/~Webユーザ名/という”~(チルダ)”のついたURLで公開設定されます。
http://example.org/~Webユーザ名/というURLを残しつつ、同じ画面を
「~(チルダ)」のつかない別のURL
http://example.org/別名パス/
でも表示させるvhost.conf の記述例は以下になります。

Alias /別名パス /var/www/vhosts/【対象ドメイン名】/web_users/【ユーザ名】