Edited at

httpd.confで行うPHPの設定について

最近行った設定をメモしておきます。


PHPのバージョンが、php -vとphpinfo(ブラウザ表示)でそれぞれ違う

phpinfo(ブラウザ表示)はApacheのPHPモジュールを参照しています。

httpd.confで読み込んでいるPHPのモジュールが古かったので、現在のPHPバージョンに合わせたモジュールをセットしました。(Homebrewを使用しています。)


httpd.conf

# 旧PHPモジュール

# LoadModule php7_module /usr/libexec/apache2/libphp7.so

# 新PHPモジュール
LoadModule php7_module /usr/local/Cellar/php@7.2/7.2.17_1/lib/httpd/modules/libphp7.so



HTML内でPHPを使いたい

動作が1ファイルで完結するので、学習などで軽く使いたい時に便利です。


httpd.conf

# html内でphpを使用する

<IfModule mime_module>
AddType application/x-httpd-php .html
</IfModule>

このような感じで利用します。(うまく表示されていませんが、動きます・・・)


test.html

<?php $fruits = array('apple', 'orange', 'peach') ?>

<?php foreach ($fruits as $key => $val) : ?>
<?php echo $val; ?>
<?php endforeach; ?>

ブラウザで確認する時は、Apacheを起動してからサーバへアクセスして確認します。

誤ってfile:///で確認しないように・・・(この場合、PHP部分は自動的にコメントアウトされます。)

httpd.confを編集した後は、Apacheの再起動を忘れずに行ってください〜


参考記事

phpinfoとphp -vのバージョンが違う

htmlファイルでphpを動かす 〜httpd.confの設定〜

PHPのforeachで配列処理(HTML埋め込みでもスッキリな書き方も)