Plamo-5.2/apacheその他の設定userdir、FastCGI(完了)

Plamo-5.2/apacheその他の設定userdir、FastCGI(完了)

チルダなしhttp://サーバアドレス/ユーザ名/でアクセス

これで、WordPressやJoomlaなどCMSをインストールする環境は整ったのですが、apache のデフォルト設定のままですと、ドキュメントルートの所有者が管理者になっていますので、ftpでのファイルアップロードなど何かと面倒です。

DocumentRoot の所有者を一般ユーザに変更したり、httpd.conf で DocumentRoot を変更するなどの方法があるのですが、今回は、一般ユーザがウェブサイトを公開できるようにしてみようと思います。

これもデフォルトでは無効になっているようですので、httpd.conf の二ヶ所

LoadModule userdir_module lib/httpd/modules/mod_userdir.so

# User home directories
Include /etc/httpd/extra/httpd-userdir.conf

のコメントアウトをはずし、apache をリスタートでOKです。

ただ、このままですと、アドレスが http://サイト名/~ユーザ/となってしまいますので、httpd-userdir.conf の UserDir の下辺りに

AliasMatch ^/([^/]+)/(.*) /home/$1/public_html/$2

 を追加して、チルダなしでアクセスできるようにしておきます。

あら!?

 # apachectl restart
AH00671: The ScriptAlias directive in /etc/httpd/httpd.conf at line 511 will probably never match because it overlaps an earlier AliasMatch.

511行のScriptAliasディレクティブは、それよりも前にあるAliasMatchとかぶってるよ

ってことですか? 511行ってのは、

Plamo5-2/apache+phpをCGIで動かすの ScriptAlias /local-bin/ “/usr/bin/” なんですが、この /local-bin/ が httpd-userdir.conf の正規表現にマッチし、ユーザディレクトリと判断されてしまうということのようです。httpd-userdir.conf の組み込みを最下行にして、前後入れ替えましょう。

 後は、DirectoryIndex に index.php を追加しておきます。ついでに、index.htm も入れておいた方がいいですね。

DirectoryIndex index.html index.htm index.php

phpをFastCGIで動作させる

phpinfo で FastCGI と表示されるのは、php が FastCGI に対応しているよという意味で、それで動いているということではないようです。

Server API CGI/FastCGI

apache に FastCGI を導入してみようと思います。

ソースからコンパイルしてインストールします。

# wget http://ftp.tsukuba.wide.ad.jp/software/apache//httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz
解凍してディレクトリ移動
# ./configure.apxs
# make
# make install

これで、httpd.conf に以下が追記されまので、

LoadModule fcgid_module lib/httpd/modules/mod_fcgid.so

後は、必要なディレクトリに

Options ExecCGI
AddHandler fcgid-script .php
FCGIWrapper /usr/bin/php-cgi .php

を追加すればいいようです。