ウェブサーバーへの手動設定追加【Plesk11/Plesk12以降】

本ガイドはPlesk11 を搭載のroot権限付きプランの、Apacheの設定を追加、上書きするための手順となりますが、サポート対象外の説明を含む内容となります。参考情報としてお読みいただき、お客様のご判断でご利用ください。
またPlesk管理画面から設定可能なものはできるかぎり、あらかじめPleskからの設定をしていただくことが前提となります。

Plesk12以降についての手順は追って作成する予定ですが、以下の手順となります。
1.ウェブサイトとドメインの該当ドメインのメニュー内の「Apacheとnginxの設定」をクリック
2.既存メニューから調整可能なものは設定を入力いただきます。
既存メニュー内にないディレクティブについては
「HTTP 用追加ディレクティブ 」「HTTPS 用追加ディレクティブ」欄に追加記載します。
3.「OK」をクリックします。
本ページの手順のように、vhost.conf/vhost_ssl.confファイルを手動で作成したり、コマンド操作をしなくても、Pleskでの編集、設定更新が可能になっております。

  • vhost.conf(vhost_ssl.conf)を作成
  • httpdmngコマンドを実行、場合によってはApache再起動
  • 付録


    STEP 1vhost.conf(vhost_ssl.conf)を作成

    まず、対象サーバにSSHログインし、rootに昇格していただきます。

    各メインのドメイン設定は
    「/var/www/vhosts/[DOMAIN_NAME]/conf/」
    以下に格納されている”<バージョン名>_httpd.include”のファイルですが、このファイルを直接編集すると、Pleskで設定を変更した際に上書きされたり不整合を起こすため、編集はしないようにしてください。

    Pleskの自動出力の設定を上書きする手法ですが、
    既存のhttpd.includeと同じ階層に別ファイル「vhost.conf」(SSL用設定については vhost_ssl.conf )を用意し、特定コマンド発行後Apacheのリスタートという形で行います。

    # cd /var/www/vhosts/DOMAIN_NAME/conf
    # pwd
    /var/www/vhosts/DOMAIN_NAME/conf
    ★設定ディレクトリはドメイン毎に存在しますのでファイルの設置場所を間違えないようご注意ください。
    ★Plesk11.5 Plesk12 の場合は設定ファイル保管ディレクトリが異なります
    ★(⇒ /var/www/vhosts/system/DOMAIN_NAME/conf )
    
    # vi vhost.conf(SSL用の設定が要る時は vhost_ssl.conf)
    ★追加分の設定ファイルを編集します
    
    # grep Include *| grep vhost
    ★新規vhost.conf や vhost_ssl.conf を追加の場合は何も結果が出ない状態です

    設定ファイルについては別ページに参考案内を掲載しています。
    Apacheの設定ファイルの構成

    STEP 2httpdmngコマンドを実行 場合によってはApache再起動

    Plesk8の場合は「websrvmng」というコマンドでしたが「httpdmng」というコマンドが用意されています。

    #/usr/local/psa/admin/sbin/httpdmng --reconfigure-domain DOMAIN_NAME
    ★または
    #/usr/local/psa/admin/sbin/httpdmng --reconfigure-all
    ★上記の2つのコマンドは
    前者が「特定ドメインの設定ファイルについて更新を行う」
    後者が「全てのバーチャルホストに対して設定更新を行う」
    という意味で異なるものですが、「何故か前者だとエラーが出る」(後者だとうまくいく)というケースも実際に確認されています。
    エラーについては別項で案内をしています。
    
    上記の再構築コマンドを発行すると、
    1.「特定のドメインについてはvhost.conf およびvhot_ssl.confを読み込む必要がある」という事をPleskデータベース側でも認知し、
    2.該当ドメインのApache設定ファイルには 「Include 」行を含んだ行が生成されるようになり
    3.Apache(httpd)プロセスのリスタートが行われます。
    
    (Apache設定ファイル名についてはPleskバージョンにより命名規則が異なりますのでご了承ください)
    
    # ls -la 
    drwxr-x---. 2 root psaserv 4096 10月 22 12:21 2012 .
    drwxr-xr-x. 13 root root 4096 10月 17 11:59 2012 ..
    -rw-r-----. 1 root apache 7270 10月 17 11:59 2012 ppppppppp0.******0_httpd.include
    -rw-r-----. 1 root apache 7270 10月 22 11:35 2012 ooooooooo0.******0_httpd.include
    -rw-r-----. 1 root apache 7301 10月 22 12:01 2012 mmmmmmmmm0.******0_httpd.include
    -rw-r-----. 1 root nginx 2174 10月 22 12:01 2012 yyyyyyyyy0.******0_nginx.conf
    -rw-r-----. 1 root nginx 2174 10月 22 12:21 2012 xxxxxxxxx0.******00_nginx.conf
    -rw-r-----. 1 root apache 7367 10月 22 12:21 2012 nnnnnnnnn0.******00_httpd.include
    lrwxrwxrwx. 1 root root 34 10月 22 12:21 2012 last_httpd.include -> nnnnnnnnn0.******00_httpd.include
    lrwxrwxrwx. 1 root root 31 10月 22 12:21 2012 last_nginx.conf -> xxxxxxxxx0.******0_nginx.conf
    -rw-r--r--. 1 root root 281 10月 22 12:10 2012 vhost.conf
    ★ファイルの日付が更新されていることをご確認ください
    
    
    # grep Include *| grep vhost
    nnnnnnnnn0.******00_httpd_ip_default.include: Include "/var/www/vhosts/DOMAIN_NAME/conf/vhost.conf*"
    last_httpd_ip_default.include: Include "/var/www/vhosts/DOMAIN_NAME/conf/vhost.conf*"
    
    ★先ほどは確認できなかった Include行が確認されました。
    同ディレクトリ以下の last_httpd_ip_default.includeというファイルは
    「 nnnnnnnnn0.******00_httpd_ip_default.include」のシンボリックリンクであるため、
    実際には上記2行は同一のファイルとなります。
    
    
    vhost.conf や vhost_ssl.conf の内のApache記述式が間違っていると Apacheの再起動が失敗することがあります。
    その場合は再編集しファイルを保存し、もう一度再構築コマンドをお試しください。
    
    また、一度 Includeで読み込まれるようになった vhost.conf / vhost_ssl.confのあらたに修正した場合は、
    Apacheの記述文法をチェック後、Apacheの再起動をしてください。
    
    【文法チェック】
    # /etc/init.d/httpd configtest 
    Syntax OK
    ★設定チェックコマンドでOKとなることを確認します
     
    【Apache再起動】
    # /etc/init.d/httpd restart
    
    
    

    *nginx: configuration file /etc/nginx/nginx.conf test failedのエラー

    httpdmngコマンド発行時に以下のようなエラーが確認されることがあります。

    nginx: configuration file /etc/nginx/nginx.conf test failed

    同時に管理者メールアドレス宛(※)には以下のようなメッセージが送付されます。(※Plesk11の管理者メールアドレスはどこで確認できますか?)

    以下のエラーが原因で、ホスト <ホスト名> 上でウェブサーバ構成ファイルを生成できません。
    
    nginx: [emerg] a duplicate default server for 125.5.xxx.xxx:80 in /var/www/vhosts/ドメイン名t/conf/バージョン番号_nginx.conf:●●
    nginx: configuration file /etc/nginx/nginx.conf test failed
    
    ウェブサーバの構成テンプレートでエラーを修正し、ファイルを再生成してください。

    このエラーは

    • httpdmngコマンドを手動で発行した時
    • Plesk上でウェブサーバの設定を変更したが反映がうまくできていない時

    Apacheとnginxの設定の整合性が取れていないと出力されます。

    実際にはこのエラーが出ていてもPleskでの操作中にエラーが解消されるケースもあります。予定の設定は反映がされなかった場合は以下をお試しください。

    • Plesk管理画面上で設定を更新されている場合は、もう一度設定を読み込ませるための操作を行う
      (※)たとえば Plesk>ウェブサイトとドメイン>対象ドメイン名クリック>セキュリティ欄の「SSL サポートを有効にする 」のチェックについてこれまでと違う設定にしてから「OK」をクリック。その後もう一度同じ画面で元の設定に戻してから「OK」をクリックするなど
    • 上記でもエラーが解消できない場合はrootでサーバにsshログインし以下のコマンドを実行する
    # /usr/local/psa/bin/reconfigurator --autoconfigure
    ★公式案内においては設定再構成用のコマンドということですが、
    当社では上記コマンドの有効性については未確認です。エラーの
    原因によってはこのコマンドの発行が有効になる可能性があります。
    
    # /usr/local/psa/admin/sbin/httpdmng --reconfigure-all
    ★httpdmng コマンドでドメイン毎で指定するオプショ
    ンでうまく読み込めなかった場合に、またはPlesk上で設定を調整
    後に上述のメールメッセージを受信し、変更の反映が確認できな
    かったというような場合は、このオプションで指定しなおすとう
    まく設定ファイルを読み込めることがあります。
    # /etc/init.d/httpd configtest 
    Syntax OK
    # /etc/init.d/httpd restart
    

    *PHP open_basedir、Plesk8との違い

    Plesk11の場合、php open_basedirのデフォルト設定はウェブスペースディレクトリ全体を含みます。( /var/www/vhosts/[ウェブスペースドメイン名])。
    Plesk8ではさらに深い階層で「 /var/www/vhosts/[ドメイン名]/httpdocs 」がvhost.conf以外では既定値で変更することができませんでした。
    また、Plesk11ではウェブスペース毎に open_basedirの指定値を変更する管理画面も付帯しております。(参考:PHPの設定値の変更【Plesk11】
    ※ Plesk8で、vhost.confにてopen_basedirを/var/www/vhosts/[ウェブスペースドメイン名]/private等で設定されていた場合、Plesk11に移行後はvhost.conf設定が不要になる場合があります。