ApacheにPHP7.4.7を導入する方法

投稿者: | 2020-06-14

今回はソースインストールしたApacheにPHP7.4.7を導入し、phpinfoの画面を表示するまでの手順について説明します。

実施環境

OS CentOS 8 最小限のインストール
Apache 2.4.43
PHP 7.4.7

Apacheのインストールについて

今回はソースインストールしたApacheを使用します。以下のページでApacheのインストールを行った前提で進めるため、まだ完了していない方は以下のリンクからApacheをインストールしてください。

・CentOS8にApache2.4.43をソースインストールする方法

https://www.kdkwakaba.com/archives/735

事前準備

初めに、PHPのコンパイル等に必要なものをインストールします。PHP7.4系列からonigurumaが必要となっているため、oniguruma関連もインストールします。

・PHPのコンパイルに必要なものをインストールする
# dnf install libxml2-devel bzip2-devel curl-devel zlib-devel libjpeg-devel libXpm-devel.x86_64 freetype-devel.x86_64 oniguruma libzip-devel sqlite sqlite-devel libvirt-devel 
# dnf --enablerepo=PowerTools install oniguruma-devel

PHPのインストール

PHPのコンパイル等に必要なものをインストール後、PHP公式から最新のソースファイルをダウンロードします。

・PHP7.4.7のソースファイルをダウンロードする
# wget https://www.php.net/distributions/php-7.4.7.tar.gz
# tar zxf php-7.4.7.tar.gz
# cd php-7.4.7

ソースファイルのダウンロード後、コンパイルを行いインストールします。

・PHP7.4.7をコンパイル、インストールする。
# ./configure \
    --with-apxs2=/usr/local/apache2/bin/apxs \
    --with-bz2 \
    --enable-calendar \
    --enable-ftp \
    --enable-mysqlnd \
    --with-mysqli=mysqlnd \
    --with-pdo-mysql=mysqlnd \
    --with-zlib --disable-posix \
    --with-curl \
    --enable-exif \
    --enable-mbstring \
    --with-zip \
    --with-jpeg \
    --enable-gd \
    --enable-fpm 
# make && make install

php.ini、httpd.confの設定

PHPの設定ファイルはPHPのソースファイルの中にひな形があるため、PHPのインストール後にコピーします。

・php.iniをコピーする
# cp /usr/local/src/php-7.4.7/php.ini-development /usr/local/php/php.ini

php.iniのコピー後、php.iniの設定をします。

・php.iniを編集する
# vi /usr/local/php/php.ini

■php.ini
-----------------------------------------------------------
# 文字コードの設定
default_charset = "UTF-8"

# mbstringの言語設定
mbstring.language = Japanese

# 文字コード検出の優先順位を設定
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII

# タイムゾーンの設定
date.timezone = Asia/Tokyo

# PHPのバージョンの隠蔽
expose_php = Off

# POSTリクエストのデータの最大サイズを設定
post_max_size = 128M

# ファイルアップロード時の最大サイズの指定
upload_max_filesize = 128M
-----------------------------------------------------------

php.iniの設定後、Apacheのhttpd.confにPHPを有効化する設定を追加します。

・httpd.confでPHPを有効化する
# vi /usr/local/apache2/conf/httpd.conf

■httpd.conf
-----------------------------------------------------------
<IfModule mime_module>
    # PHPを有効化する
    AddHandler php7-script .php
</IfModule>

<IfModule dir_module>
    # ディレクトリの指定のみでindex.phpを表示させる
    DirectoryIndex index.php index.html
</IfModule>
-----------------------------------------------------------

phpinfo用のファイルの作成

php.ini、httpd.confの設定後、phpinfoを表示させるためのPHPファイルを作成します。今回はDocumentRootが/usr/local/apache2/htdocsに設定されている状態とします。

・phpinfo()のファイルを作成する
# vi /usr/local/apache2/htdocs/index.php

■index.php
-----------------------------------------------------------
<?php phpinfo(); ?>
-----------------------------------------------------------

ファイル作成後、Apacheを再起動します。

・Apacheを再起動する
# systemctl restart httpd

動作確認

Apacheの再起動後、ブラウザを開き「http://<サーバのIPアドレス>/index.php」にアクセスします。phpinfoの画面が表示されれば成功です。

※注意
phpinfoはサーバのPHPの情報を確認できるページです。phpinfoを公開したままでは、他のユーザーにサーバのPHPの情報を見られる危険性があるため、実環境では動作確認後にファイルを削除する、拡張子を変更する、等を行ってください。