【Apache】httpd.confの設定と基本的な使い方(IfModule、セクション、Directory、Alias)
Apacheに関する設定はhttpd.confファイルに設定します。
httpd.confの基本的な使い方(IfModule、セクション、Directory、Alias)も含めてhttpd.confの基本的な設定を紹介します。
Apacheについては、Apache(アパッチ)の基礎(Apacheとは,Apacheの設定方法)を参考にしてみてください。
httpd.confの場所
httpd.confを確認するには、ドキュメントルートのファイルを開きます。
MAMPなどを使っている場合は、MAMP/conf/apache/httpd.confでファイルを確認することができます。
構文をハイライトする(VS Code)
VS Codeなら Apache Confという拡張機能があるので、それをいれるだけでシンタックス(構文)が色分けでハイライトされます。
httpd.confの基本
#でコメントとなります。
ServerRoot "/Applications/MAMP/Library"
上の場合、ServerRootは、ディレクティブのことです。
そのレィレクティブのとなりにパスを書いて値をディレクティブに渡しています。
Listen 80
も同様でListenはポートを表すディレクティブで80という値を渡していますということになります。
LoadModuleというのは、モジュールの一つです。
<IfModule !mpm_netware_module>
User ss
Group #-1
</IfModule>
上のように先頭にビックリマーク(!)で否定の意味になります。
つまり、mpm_netware_moduleというのが読み込まれていないとき、という意味になります。
ServerAdmin you@example.com
ServerAdminは管理者のアドレスです。
ServerName localhost:80
ServerNameはドメインのことと考えていいです。
自動的に設定されますが、必要に応じて記載します。
DocumentRoot "/Applications/MAMP/htdocs/lravelapp/public"
DocumentRootというのが公開用のルートディレクトリです。
上の場合、publicフォルダに置いたものがApache Webサーバー上で動くことになります。
セクションについて
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
このDirectoryというのがセクションのことです。
Directoryに続けてDirectoryまでのパス(上の場合/)を記述することで、
そのパスとパスのサブディレクトリに対して上のDirectoryが設定されます。
<Directory "/Applications/MAMP/htdocs">
Options All
AllowOverride All
Order allow,deny
Allow from all
</Directory>
上の場合であれば、公開ディレクトリパスに設定するDerectoryの内容ということです。
Aliasの使い方
Alias URLパス ディレクトリ|ファイルパス
上記の順番で指定します。
Aliasを使うことで、ある特定のパスをディレクトリやファイルに別名として紐付けることができます。
# Windows
# Alias /alias C:/ファイル/への/パス/
#
# Unix系 (Mac, Linux)
# Alias /alias /ファイル/への/パス/
windowsの場合はドライブ名から始まります。
MacなどのUnix系は/、つまりルートディレクトリから始まります。
パスを表す場合は、Windowsの場合はバックスラッシュでもできますが、正規表現を使うときにややこしくなったり、エラーの原因になるため、基本的にパスはスラッシュで統一します。
Aliasを設定する
Alias /apache /Applications/MAMP_2021-07-10_04-27-16/htdocs/sample_directory
Alias /apache "/Applications/MAMP_2021-07-10_04-27-16/htdocs/日本語の場合ダブルクオーテーションが囲む"
terminalなどにファイルをドラッグ・アンド・ドロップしてパスを取得します。
そして、上のように、そのパスを配置します。
そして、apacheを再起動します。
すると、Aliasが反映されます。
sample_derectoryというディレクトリまでを/apacheとしているので、domain/apacheにアクセスすると、上のディレクトリを表示することができます。
Aliasを使ってディレクトリを指定する場合は、パスの末尾はスラッシュで終えるようにします。
別名部分(上の/apache)は、末尾にはスラッシュはつけません。もしつけてしまうと、スラッシュありでしかマッチングしないようになってしまうためです。