自分のローカル環境は(無意味に)バーチャルホストで運用している。
プロジェクトを新しく作るごとにバーチャルホストを追加していけば便利だと思ったからだ(今は1つしかないけどな!)。
設定方法は、バーチャルホストでFuelPHPのpublicフォルダをドキュメントルートに設定[FuelPHP入門]を参照。
FuelPHP で「Not Found」が出たときに色々調べて、曖昧だったことがいくつか解決できた。
Apacheは調べるごとに新たな発見があるな・・・と前向きに思っておこう。
1.Apacheのディレクトリ構成
Apacheのディレクトリ構成がなかなかややこしい。
とくに最初は enableディレクトリと availableディレクトリの違いがわからなかった。
Apache関連のファイルディレクトリを列挙してみる。
apache2の設定用ファイル。
/etc/apache2/apache2.conf
ポートの設定を記述するファイル。
/etc/apache2/ports.conf
使用可能なモジュールファイルが置かれるディレクトリ(「available」・・・手に入れる、入手する)。
/etc/apache2/mods-available/
使用するモジュールの「リンクファイル」が置かれるディレクトリ(「enable」・・・可能にさせる、許可する)。
/etc/apache2/mods-enabled/
使用可能なバーチャルホスト設定ファイルが置かれるディレクトリ。
/etc/apache2/sites-available/
使用するバーチャルホスト設定ファイルの「リンクファイル」が置かれるディレクトリ。
/etc/apache2/sites-enabled/
2.バーチャルホストのディレクトリ構成
上記を参考に、バーチャルホストの設定ファイルがどうなっているかを考えよう。
Apacheの設定ファイル内に以下の記述がある。
意味は、/etc/apache2/sites-enabled/内のファイル全てを Inculudeする(ファイル名に.と#を含むファイルを除く)。
Include /etc/apache2/sites-enabled/[^.#]*
/etc/apache2/sites-enabled/ には使用するバーチャルホスト設定ファイルの「リンクファイル」が置かれている。
つまり、/etc/apache2/sites-available/default ファイルのシンボリックファイルが使われることになる。
このことから、バーチャルホストの設定を変更するには、sites-available/default ファイルを修正すれば良い。
なぜ、こんな(メンドクサイ)仕組みなっているのか。
それは、バーチャルホストの一つが不要になった場合、sites-enalbed/ のシンボリックを削除したらよく、必要になった際にシンボリックリンクを再度はれば簡単に復活するためである。
とても合理的な理由だった。
コメント