Apache | PHPを使用するための設定 | モジュール(php7_module)の追加と拡張子(.php)の登録

Apache経由でPHPを使用するために必要なモジュール(php7_module)の追加と、拡張子(.php)を登録する方法について説明する。

モジュールの追加

まず、PHPを使用するためのモジュールを追加する必要がある。Apache設定ファイルであるApache24/conf/httpd.confをテキストエディタで開き、Dynamic Shared Object (DSO) Supportを検索すると、次のような内容が見つかる。

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
#LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so

.. (中略) ..

#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule xml2enc_module modules/mod_xml2enc.so

動的に追加するモジュールが記述されている。Apache 2.4を利用している場合は、このブロックの末尾に次の行を追加する。これはPHP 7を利用する場合の例である。

#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule xml2enc_module modules/mod_xml2enc.so
LoadModule php7_module C:/apache/php-7.4.0-Win32-vc15-x64/php7apache2_4.dll

追加するDLLファイルのパスは、PHPをインストールした各自の環境に合わせて変更する。

PHPをインストールしたディレクトリを確認すると、先ほどのDLLファイルが存在することを確認できる。

C:\apache\php-7.4.0-Win32-vc15-x64>dir
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 4E53-ECB8

 C:\apache\php-7.4.0-Win32-vc15-x64 디렉터리

2019-12-05  오후 11:06    <DIR>          .
2019-12-05  오후 11:06    <DIR>          ..
2019-11-27  오후 08:24           119,808 deplister.exe
2019-12-05  오후 11:06    <DIR>          dev
2019-12-05  오후 11:06    <DIR>          ext
2019-12-05  오후 11:06    <DIR>          extras
2019-11-27  오후 08:24         1,374,720 glib-2.dll
2019-11-27  오후 08:24            18,432 gmodule-2.dll
2019-11-27  오후 08:24        27,980,288 icudt65.dll
2019-11-27  오후 08:24         2,632,192 icuin65.dll
2019-11-27  오후 08:24            61,440 icuio65.dll
2019-11-27  오후 08:24         1,890,304 icuuc65.dll
2019-12-05  오후 11:06    <DIR>          lib
2019-11-27  오후 08:24         3,422,208 libcrypto-1_1-x64.dll
2019-11-27  오후 08:24            47,616 libenchant.dll
2019-11-27  오후 08:24           282,624 libpq.dll
2019-11-27  오후 08:24           108,544 libsasl.dll
2019-11-27  오후 08:24           300,544 libsodium.dll
2019-11-27  오후 08:24         1,301,504 libsqlite3.dll
2019-11-27  오후 08:24           225,792 libssh2.dll
2019-11-27  오후 08:24           679,424 libssl-1_1-x64.dll
2019-11-27  오후 08:24             3,272 license.txt
2019-11-27  오후 08:24            18,782 news.txt
2019-11-27  오후 08:24           197,120 nghttp2.dll
2019-11-27  오후 08:30                43 phar.phar.bat
2019-11-27  오후 08:30            53,231 pharcommand.phar
2019-11-27  오후 08:24            72,704 php-cgi.exe
2019-11-27  오후 08:24            36,864 php-win.exe
2019-11-27  오후 08:24           128,512 php.exe
2019-11-27  오후 08:24            74,599 php.ini-development
2019-11-27  오후 08:24            74,904 php.ini-production
2019-11-27  오후 08:24            35,840 php7apache2_4.dll <------------ 여기 있다.
2019-11-27  오후 08:24           890,770 php7embed.lib
2019-11-27  오후 08:24           344,064 php7phpdbg.dll
2019-11-27  오후 08:24         9,496,064 php7ts.dll
2019-11-27  오후 08:24           346,112 phpdbg.exe
2019-11-27  오후 08:24            30,257 readme-redist-bins.txt
2019-11-27  오후 08:24             4,846 README.md
2019-12-05  오후 11:06    <DIR>          sasl2
2019-11-27  오후 08:24             2,224 snapshot.txt
              33개 파일          52,255,648 바이트
               7개 디렉터리  450,575,360,000 바이트 남음

C:\apache\php-7.4.0-Win32-vc15-x64>

これでApache起動時にPHPモジュールが追加で読み込まれる。

拡張子(.php)の登録

PHPで使用する拡張子(.php)とPHPを関連付ける。登録することで、拡張子(.php)のファイルにアクセスがあったとき、PHPを使用して実行された結果がクライアントへ返される。httpd.confファイルの最下部に次のように記述する。

<FilesMatch "\.php$">
  AddHandler php7-script .php
  AddType application/x-httpd-php .php
</FilesMatch>

これで拡張子が登録された。

php.iniの場所指定(PHPIniDir)

PHP設定ファイルであるphp.iniがインストールされているパスを指定する。httpd.confファイルを開き、今回は末尾に次のように記述する。

PHPIniDir "C:/apache/php-7.4.0-Win32-vc15-x64"

上記は、php.iniファイルがC:/apache/php-7.4.0-Win32-vc15-x64ディレクトリにインストールされている場合である。自分の環境に合わせて変更する。初回インストール後にphp.iniが存在しない場合は、php.ini-developmentファイルまたはphp.ini-productionファイルをコピーし、拡張子をiniに変更する。

これで指定した場所にあるphp.iniファイルを参照できる。

httpd.confファイルを変更したら、Apacheを再起動して新しい設定を反映する。