PHPを使えるように設定する

環境

今回、設定を行った環境は、以下の通りです。

 

httpdphpのインストールは以下を参照ください。

http://tech-wiki.pomme-verte.net/?p=5

http://tech-wiki.pomme-verte.net/?p=350

環境確認

PHPコンパイルする際に「--with-apxs2=/usr/local/apache2/bin/apxs」などと付けておくと、httpd で使うPHPモジュールが 「(prefix)/modules」ディレクトリに配置されます。

実際に確認してみました。

[bash]

ls -l /usr/local/apache2/modules/ | grep php

-rwxr-xr-x 1 root root 41637384 Dec 25 08:28 libphp7.so [/bash]

libphp7.so というファイルがありました。

httpd.confの設定

モジュールが存在していることを確認したら、httpd.confにPHPの動作に必要な設定を追加します。

設定内容

モジュールの読み込み

まずは、libphp7.soを読み込ませる設定です。 以下のような記述となります。

[bash] LoadModule php7_module modules/libphp7.so [/bash]

私の場合、この設定はすでにhttpd.confに書かれていました。 PHPインストール時に追加されたのだと思います。

ファイルタイプの追加

.phpファイルのファイルタイプも追加します。 以下のような感じです。

[bash] <FilesMatch .php$> SetHandler application/x-httpd-php </FilesMatch> [/bash]

設定ファイル

設定ファイルの書き方は自由に書いて問題ないと思いますが、今回はPHP用の設定ファイルをextraディレクトリに配置して、httpd.conf に Includeする形にしました。

httpd-php.confの作成

PHP用の設定だけを記載した設定ファイルを作成します。

[bash]

cd /usr/local/apache2/conf/extra

vi httpd-php.conf

~~~設定ファイルの内容~~~ LoadModule php7_module modules/libphp7.so

<FilesMatch .php$> SetHandler application/x-httpd-php </FilesMatch>

<IfModule php7_module> PHPINIDir /usr/local/php/lib </IfModule> ~~~ここまで~~~

(保存してviを終了) [/bash]

httpd.confへInclude

作成したhttpd-php.confファイルを、httpd.confへIncludeします。

[bash]

cd /usr/local/apache2/conf

vi httpd.conf

~~~httpd.confの末尾に以下を追加~~~

PHP settings

Include conf/extra/httpd-php.conf ~~~ここまで~~~

(保存してviを終了) [/bash]

httpdの再起動

設定が完了したら、httpdを再起動して設定を読み込ませましょう。

[bash]

/usr/local/apache2/bin/apachectl configtest

Syntax OK

systemctl restart httpd

ps -ef | grep httpd | grep -v httpd

root 12988 1 2 10:21 ? 00:00:00 /usr/local/apache2/bin/httpd apache 12989 12988 0 10:21 ? 00:00:00 /usr/local/apache2/bin/httpd apache 12990 12988 0 10:21 ? 00:00:00 /usr/local/apache2/bin/httpd apache 12991 12988 0 10:21 ? 00:00:00 /usr/local/apache2/bin/httpd apache 12992 12988 0 10:21 ? 00:00:00 /usr/local/apache2/bin/httpd apache 12993 12988 0 10:21 ? 00:00:00 /usr/local/apache2/bin/httpd [/bash]

動作確認

設定を読み込ませたら、PHPが動作するか確認してみましょう。

httpdのドキュメントルートに以下の内容が書かれたファイルを配置します。

[bash] <?php phpinfo(); ?> [/bash]

こんな感じで作成するといいかと思います。

[bash] echo "<?php phpinfo(); ?>" > /usr/local/apache2/htdocs/phpinfo.php [/bash]