27
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Apacheの設定

Last updated at Posted at 2019-01-07

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 になっている。
htdocspublic_html の場合もある。

デフォルトは / 以下をアクセス不可にしてある。

httpd.conf
<Directory />
    AllowOverride none
    Require all denied
</Directory>

例えば、/var/www/localhost をドキュメントルートにしたい場合は、以下のようにアクセス許可を追加する。

httpd.conf
<Directory "/var/www/localhost">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

任意の設定ファイルの読み込み方法

追加の設定は、なるべく http.conf に追記せず、別のファイルに分けた方が管理しやすい。
設定項目のサンプルファイルは /etc/apache2/extra/ などにある。
任意のファイルをロードしたい場合は httpd.conf に追記する。

httpd.conf
Include /etc/apache2/extra/httpd-vhosts.conf

ワイルドカードを使うこともできる。

httpd.conf
Include /etc/apache2/extra/*.conf

この方法は、拡張子で、ロード・非ロードを設定できるのでお勧めである。

仮想ホストの設定

仮想ホストを使うと、1つのサーバーで、複数のドメインを運用することが可能になる。
ポイントは、最低2つ以上の仮想ホストが必要な事だ。

httpd-vhosts.conf
<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
パッケージでインストールした場合は、適切に設定されていることが多い。

  1. PHPモジュールの読み込み場所(パス)の設定
  2. PHPを実行する拡張子の設定

1. PHPモジュールの読み込み場所(パス)の設定

httpd.confLoadModule php_module lib/apache2/modules/mod_php74.so というモジュールを読み込む記載があるか確認する。もし無ければ追記する。

http.conf
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 が作成されているはずなので、これを読み込めば良い。

httpd.conf
Include /etc/apache2/extra/mod_php74.conf

もし作成されていなければ、追記する。

httpd.conf
AddType  application/x-httpd-php         .php
AddType  application/x-httpd-php-source  .phps
  1. PHPの動作には、Apacheのモジュールとして実行するモジュール版と、CGIとして動作させるPHP-FPM(FastCGI Process Manager)版がある。要望があれば記事を書きます。

27
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?