PerlさんPerlくん
[Apache]PLESK環境でhttpd.confをいじる
最終更新:
atwikimyj
-
view
httpd.confの内容を書き換えることはPLESK環境では
あまりよろしくない。本来はドメインごとに割り当てられて
いる設定ファイルを変更することしかできない。
しかしその場合、設定できる範囲が限定的であり、時々
困る。
あまりよろしくない。本来はドメインごとに割り当てられて
いる設定ファイルを変更することしかできない。
しかしその場合、設定できる範囲が限定的であり、時々
困る。
PLESKでは1サーバでバーチャルドメインの設定が可能で
あるが、この管理はPLESKが行っている。そのため、手動で
設定ファイルを変えてもどうせあとでpleskが勝手に上書き
してしまう(知らない間にこれをやられると非常に混乱する)
あるが、この管理はPLESKが行っている。そのため、手動で
設定ファイルを変えてもどうせあとでpleskが勝手に上書き
してしまう(知らない間にこれをやられると非常に混乱する)
- ということで、うまいことドメインごとに、さらに自由度
の高い設定をやる方法を調査、実行した。
ほぼ、使えるネットユーザフォーラムの内容をそのままやった。
http://forum.tsukaeru.net/viewtopic.php?t=3415
http://forum.tsukaeru.net/viewtopic.php?t=3415
(1)rstファイルを作成
/var/www/vhosts/DOMAIN-A.COM/conf/httpd.include
ファイルをコピーし、
/var/www/vhosts/DOMAIN-A.COM/conf/httpd.include.rst
と名称変更。
ファイルをコピーし、
/var/www/vhosts/DOMAIN-A.COM/conf/httpd.include.rst
と名称変更。
(2)startup.plを作成
以下の内容でstartup.plを作成してアップ
#!/usr/bin/perl
use Apache2::compat;
use Apache2::Const -compile => 'OK';
1;
(3)perl.confを書き換えて保存
/etc/httpd/conf.d/perl.confを開き、末尾に以下の行を追加
PerlRequire conf/startup.pl
PerlRequire conf/startup.pl
(4)httpd.confを書き換えて保存
/etc/httpd/conf/httpd.confの中の
Include /etc/httpd/conf/httpd.include
という記述を探し、その前にある設定文を記述するのだが、
PLESK環境だからか、存在しない。
という記述を探し、その前にある設定文を記述するのだが、
PLESK環境だからか、存在しない。
いろいろと確認すると、
Include conf.d/*.conf
という行が存在する。ここで示されているディレクトリは
/etc/httpd/conf/conf.d/*.conf
のこと。これらの設定ファイルをすべて読み込むということ
なのです。
Include conf.d/*.conf
という行が存在する。ここで示されているディレクトリは
/etc/httpd/conf/conf.d/*.conf
のこと。これらの設定ファイルをすべて読み込むということ
なのです。
ということで、
/etc/httpd/conf/httpd.confの中の
Include /etc/httpd/conf/httpd.include
の行の前の部分に以下の内容を記述。
<Perl>
use File::Copy;
foreach (split /\n/, <<'EOM'
FLIER.NET
EOM
) {
my @from2 = split;
if (scalar(@from2) == 1) {
if ($from2[0] =~ m|^(.*/[^/]+)\.rst$|i && $1 !~ m|/\.+$|) { $from2[1] = $1; }
elsif ($from2[0] =~ m|^[^/]+$|)
{ $from2[1] = "/var/www/vhosts/$&/conf/httpd.include"; $from2[0] = "$from2[1].rst"; }
}
unless (scalar(@from2) == 2) { die "Invalid param - $_\n"; }
copy @from2 or die "$! - $_\n";
print STDERR 'copy ' . join(' => ', @from2) . " OK\n";
}
</Perl>
(5)Apacheの再起動
apachectl configtest
apachectl graceful
apachectl graceful
これで(おそらく)
/var/www/vhosts/DOMAIN-A.COM/conf/httpd.include.rst
の内容を反映した状態でApacheが起動します。
/var/www/vhosts/DOMAIN-A.COM/conf/httpd.include.rst
の内容を反映した状態でApacheが起動します。