すべてのセットアップは異なります。私にとっては、それぞれがウェブサイトをホストするサーバー上に多くのユーザーがいます。あなたにとっては、おそらくシステム上に複数のユーザーを作成する必要はないでしょう。ただし、このサーバーで複数のWebサイトを管理する場合、このセットアップは、標準のLAMPセットアップよりも簡単に各ドメインを管理、構成、およびデバッグするのに役立ちます。そのためには、Apacheのいくつかのデバイスを使用して、許可エラーを回避します。
まず、これは私が使用するドキュメント構造です。
/home/[USER]/domains/[DOMAIN]/html
/home/[USER]/domains/[DOMAIN]/logs
各ユーザーは、ドメインフォルダーを持つ独自のアカウントを持っています(追加された/etc/skel
ため、毎回作成されます。各ドメインには、domains
フォルダーを持つhtml
フォルダー内に独自のフォルダーがあります(主に、ドメインが外部にWebファイルを持つことができるように、パブリックレルムの))。この構造全体を自由に変更できます。必要に応じて、この投稿全体でこれらの変更を伝えることを忘れないでください。
次に、多くのPHPサイトをホストしているため、構成でsuPHPを使用します。デフォルトでは、標準アーカイブパッケージでは適切なコンパイルフラグが有効になっていないため、suPHPのセキュリティが低下します。サーバーで使用する独自のsuPHPパッケージを作成しました。インストール手順は次のとおりです。suPHPでは、PHPスクリプトをどのユーザーとして実行するかを定義できます(他にも、各サイトのカスタムphp.iniなど)。また、ApacheのsuExecを有効にします-さらに、www-dataユーザー(私が軽deするユーザー)の所有権を持つ必要性を取り除きます。
最初に、Apacheと他のすべてのサービスがサーバーにインストールされていることを確認します。少なくとも機能していることを確認してください。その後、suphp-commonと必要なlibapache2-mod-suphpモジュールをインストールすることをお勧めします(詳細:PPAとは何ですか、またどのように使用しますか?)。次に、それらをインストールした後、suPHPとsuexecを使用してアクティベートしますa2enmod
sudo a2enmod suphp
sudo a2enmod suexec
sudo a2dismod php5
sudo /etc/init.d/apache restart
次は設定ファイルです。新しいサイトを追加するたびに構成ファイルを自動的に生成するさまざまなツールを作成しました。ただし、私が使用する基本的なテンプレートは次のとおりです。
<VirtualHost *:80>
ServerAdmin [EMAIL]
ServerName [DOMAIN]
ServerAlias www.[DOMAIN] [DOMAIN]
DocumentRoot /home/[USER]/domains/[DOMAIN]/html
<Directory /home/[USER]/domains/[DOMAIN]>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
</Directory>
ErrorLog /home/[USER]/domains/[DOMAIN]/logs/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /home/[USER]/domains/[DOMAIN]/logs/access.log combined
SuexecUserGroup [USER] [USER]
suPHP_UserGroup [USER] [USER]
suPHP_ConfigPath /home/[USER]/etc
</VirtualHost>
これにより、そのドメイン、ドキュメントルート、およびドメインが動作するための他のすべての基本的な必要事項のログが設定されます。これらのファイルを/etc/apache2/sites-available/
通常の名前で配置し[USER]-[DOMAIN]
、次のように有効/無効にしますa2ensite
:
sudo a2ensite [USER]-[DOMAIN]
sudo a2dissite [USER]-[DOMAIN]
設定ファイルを変更するたびに、Apacheをリロードする必要があります
sudo /etc/init.d/apache reload
獲得した柔軟性の量をセットアップすることは多くのように思えるかもしれませんが、私の意見では、セットアップ時間をはるかに上回っています。必要なのはシングルユーザーWebサーバーだけですが、将来的にシングルユーザーWebサーバー以外のものが必要になった場合は、そのためにさらにアクションを実行する(またはセキュリティをまとめて削除する)必要があります。