これを行うにはさまざまな方法があることは承知していますが、「最善の」方法が私の特定の状況に適しているかどうかはわかりません。
私が最初に考えたのは、mod_fcgi
を使用することでした。これは、これまで使用した共有サーバー環境の一部で通常行われている方法だと思うからです。もちろん私はこの設定をグーグルで検索しましたが、私が見つけたガイドのほとんどはランダムなブログ投稿でした。私が欲しいのは、もう少し信頼性のあるものです(VPS会社のハウツーKBやディストリビューションウィキなど)。このようにして、管理者に一般的なガイドとしてそれを示すことができます。これにより、管理者はこの特定のサーバーのセットアップ方法に確実に適応できます。
これが信頼できるソースからきちんと書かれていることに気付くとは思えません。
あなたの見出しの質問に対する答えは、 suPHP を見てみることだと思います。残念ながら、ドキュメントはかなりまばらです。
箱から出して、suPHPはパラノイドモードでコンパイルされます。つまり、仮想ホストごとにsuPHP_UserGroup
ディレクティブと同様に実行するPHP)ユーザーとグループを設定する必要があります。 (グローバルデフォルトも設定できます)各仮想ホストは次のようになります
<VirtualHost *:80>
suPHP_Engine on
ServerName hostname.tld
DocumentRoot /home/websites/hostname.tld
suPHP_UserGroup hostname hostgroup
</VirtualHost>
多数のvhostがある(またはあると予想される)場合、上記の方法の管理が困難になる可能性があります。 suPHPを自分でコンパイルして、paranoid
モードをowner
モードに変更できます。これにより、スクリプトが.phpファイルの所有者/グループとして実行され、Apache2のVirtualDocumentRoot
ディレクティブを利用できるようになり、仮想ホストの構成が大幅に簡素化されます。
<VirtualHost *:80>
suPHP_Engine on
ServerName something.tld
ServerAlias *
VirtualDocumentRoot /home/websites/%1/public_html
</VirtualHost>
後者の構成を機能させるには、suphp.confでcheck_vhost_docroot
を無効にする必要があります
;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=false
上記を実行すると、Apacheはアカウントのユーザー/グループとしてサイトを「実行」できます。
残りのポイントは、管理者が知っておくべき基本的な管理です。