Apache2.4の設定
Apacheは、2.2 と 2.4 で設定項目が微妙に異なるので注意する事。
ServerName
ServerNameを設定しないと、Configファイルのロード時に以下のようなエラーが表示される。
httpd: Could not reliably determine the server's fully qualified domain name, using (ホスト名). Set the 'ServerName' directive globally to suppress this message
これは、ServerNameが空のため。以下のように設定する。
ServerName example.com:80
任意のディレクトリをドキュメントルートにする
ドキュメントルート とは、サイトのルート(ドメイン直下)のディレクトリの事。
https://example.com/index.html
↑ここ!!この`/`になるディレクトのことをドキュメントルートという
多くのディストリビューションでは /var/www/html
になっている。
htdocs
や public_html
の場合もある。
デフォルトは /
以下をアクセス不可にしてある。
<Directory />
AllowOverride none
Require all denied
</Directory>
例えば、/var/www/localhost
をドキュメントルートにしたい場合は、以下のようにアクセス許可を追加する。
<Directory "/var/www/localhost">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
任意の設定ファイルの読み込み方法
追加の設定は、なるべく http.conf
に追記せず、別のファイルに分けた方が管理しやすい。
設定項目のサンプルファイルは /etc/apache2/extra/
などにある。
任意のファイルをロードしたい場合は httpd.conf
に追記する。
Include /etc/apache2/extra/httpd-vhosts.conf
ワイルドカードを使うこともできる。
Include /etc/apache2/extra/*.conf
この方法は、拡張子で、ロード・非ロードを設定できるのでお勧めである。
仮想ホストの設定
仮想ホストを使うと、1つのサーバーで、複数のドメインを運用することが可能になる。
ポイントは、最低2つ以上の仮想ホストが必要な事だ。
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/var/www/localhost"
ErrorLog "/var/log/apache2/localhost.log"
CustomLog "/var/log/apache2/localhost-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/var/www/example/com"
ErrorLog "/var/log/apache2/example.com.log"
CustomLog "/var/log/apache2/example.com-access.log" common
</VirtualHost>
PHP
PHPのインストール
最近のパッケージソフトは、PHPの CLI版 と Apacheモジュール版 を別にしていることが多い。
これはパッケージシステムの思想なので、ケースバイケースである。(自由度優先・作業効率優先など)
ちなみに、技術力のある者にとって、一番優秀だと感じるのはMacPortsだ!
yumでPHPをインストールする方法
yumは、CLI版 と Apacheモジュール版 が分かれていない。
CLI版 と Apacheモジュール版 は同時にインストールされる。
sudo yum install php
MacPortsでPHPをインストールする方法
MacPortsは、自由度が極限まで高いので、CLI版 と Apacheモジュール版 が分離されている。
CLI版 をインストールしても Apacheモジュール版 はインストールされない。
また、バージョンを明示的に指定してインストールする。
余談だが、PHP-FPMもバージョン毎にインストールできるので、5.2〜7.4まで同時にインストールできる。
ポートを、5.2なら9052、7.4なら9074とすればとても分かりやすいのでお勧めである。
sudo port install php74-apache2handler
PHPの設定
PHPを実行するためには、以下の2つの設定が必要になる。1
パッケージでインストールした場合は、適切に設定されていることが多い。
- PHPモジュールの読み込み場所(パス)の設定
- PHPを実行する拡張子の設定
1. PHPモジュールの読み込み場所(パス)の設定
httpd.conf
に LoadModule php_module lib/apache2/modules/mod_php74.so
というモジュールを読み込む記載があるか確認する。もし無ければ追記する。
cat /etc/apache2/httpd.conf | grep php
LoadModule
は、モジュールをロードする命令。
php_module
は、ロードしたモジュールのラベル。<IfModule php_module>
と利用する。
lib/apache2/modules/mod_php74.so
は、モジュールのファイルパス。
2. PHPを実行する拡張子の設定
/etc/apache2/extra/mod_php74.conf
が作成されているはずなので、これを読み込めば良い。
Include /etc/apache2/extra/mod_php74.conf
もし作成されていなければ、追記する。
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
-
PHPの動作には、Apacheのモジュールとして実行するモジュール版と、CGIとして動作させるPHP-FPM(FastCGI Process Manager)版がある。要望があれば記事を書きます。 ↩