公開日:2026/1/25 0:00:00

AlmaLinux 10.1 セットアップメモ

Section 5.2 Webサーバー(apache)構築編 AppStream PHP

About

apache に PHP(https://www.php.net/) をセットアップしていきます。

環境は、Section 5.1を行った直後の状態からとなります。

パッケージの確認

リポジトリに登録されているものからパッケージ名とバージョンを指定してインストールすることになります。 まずは、提供されているかどうかを調べます。

[root@localhost ~]# dnf search php
============================================= Name & Summary Matched: php ==============================================
php.x86_64 : PHP scripting language for creating dynamic web sites
(略)
[root@localhost ~]# dnf repoquery php
php-0:8.3.19-1.el10_0.x86_64
php-0:8.3.26-1.el10_1.x86_64
[root@localhost ~]#

PHP8.3 は、2025年12月 で Active Support が終わって 2027年12月までのセキュリティサポートっぽいけれど……RHEL9のPHP8.3は2029年5月までサポートってなっているから、バックポートしてパッチは当たるとは思うけれど新しいものを使おうと思ったら remi を頼るとかになるのかなぁ?(参考 https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle )

とはいえ、PHP 8.3 しかなさそうなので、これをインストールしていきます。

インストール

php本体となにかと使うモジュールをインストールします。不要なモジュールは入れないのが基本です。DBを使う場合でも使うDBに関連するモジュール以外は入れないように気を付けてください。今回は、mariadb を使いたいのでそのモジュールを入れます。(PostgreSQLを使う場合は php-pgsql を入れる)

php が入ってないんですが……という話になりそうなパッケージの指定となっています。 php パッケージは構成定期に飾りになっているので、指定する必要はありません。 php-fpm があれば足りるのと、コマンドライン実行はphp-cliがあれば足りるので外しています。

[root@localhost ~]# dnf -y install php-cli php-common php-fpm \
php-gd php-mbstring php-xml php-intl \
php-pdo php-mysqlnd \
php-pecl-apcu php-opcache \
php-dbg php-pecl-xdebug3

Dependencies resolved.
========================================================================================================================
 Package                               Architecture       Version                           Repository             Size
========================================================================================================================
Installing:
 php-cli                               x86_64             8.3.26-1.el10_1                   appstream             2.2 M
 php-common                            x86_64             8.3.26-1.el10_1                   appstream             704 k
 php-dbg                               x86_64             8.3.26-1.el10_1                   appstream             1.9 M
 php-fpm                               x86_64             8.3.26-1.el10_1                   appstream             1.9 M
 php-gd                                x86_64             8.3.26-1.el10_1                   appstream              39 k
 php-intl                              x86_64             8.3.26-1.el10_1                   appstream             163 k
 php-mbstring                          x86_64             8.3.26-1.el10_1                   appstream             522 k
 php-mysqlnd                           x86_64             8.3.26-1.el10_1                   appstream             137 k
 php-opcache                           x86_64             8.3.26-1.el10_1                   appstream             364 k
 php-pdo                               x86_64             8.3.26-1.el10_1                   appstream              85 k
 php-pecl-apcu                         x86_64             5.1.23-5.el10                     appstream              60 k
 php-pecl-xdebug3                      x86_64             3.3.1-6.el10                      appstream             209 k
 php-xml                               x86_64             8.3.26-1.el10_1                   appstream             146 k
Installing dependencies:
 capstone                              x86_64             5.0.1-6.el10                      appstream             1.0 M
 default-fonts-core-sans               noarch             4.1-3.el10                        baseos                 34 k
 fontconfig                            x86_64             2.15.0-7.el10                     appstream             273 k
 fonts-filesystem                      noarch             1:2.0.5-18.el10                   baseos                7.7 k
 freetype                              x86_64             2.13.2-8.el10                     baseos                412 k
 gd                                    x86_64             2.3.3-20.el10_0                   appstream             133 k
 google-noto-fonts-common              noarch             20240401-5.el10                   baseos                 17 k
 google-noto-sans-vf-fonts             noarch             20240401-5.el10                   baseos                593 k
 graphite2                             x86_64             1.3.14-17.el10                    baseos                 95 k
 harfbuzz                              x86_64             8.4.0-6.el10                      baseos                1.0 M
 jbigkit-libs                          x86_64             2.1-31.el10                       appstream              53 k
 libX11                                x86_64             1.8.10-1.el10                     appstream             652 k
 libX11-common                         noarch             1.8.10-1.el10                     appstream             189 k
 libXau                                x86_64             1.0.11-8.el10                     appstream              32 k
 libXpm                                x86_64             3.5.17-5.el10                     appstream              66 k
 libicu                                x86_64             74.2-5.el10_0                     baseos                 10 M
 libjpeg-turbo                         x86_64             3.0.2-4.el10                      appstream             253 k
 liblerc                               x86_64             4.0.0-8.el10                      appstream             215 k
 libpng                                x86_64             2:1.6.40-8.el10_1.1               baseos                119 k
 libtiff                               x86_64             4.6.0-6.el10_1.1                  appstream             212 k
 libwebp                               x86_64             1.3.2-8.el10                      appstream             288 k
 libxcb                                x86_64             1.17.0-3.el10                     appstream             238 k
 libxslt                               x86_64             1.1.39-8.el10_0                   appstream             188 k
 nginx-filesystem                      noarch             2:1.26.3-1.el10                   appstream              11 k
 redhat-text-vf-fonts                  noarch             4.1.0-1.el10                      baseos                353 k
 xml-common                            noarch             0.6.3-65.el10                     appstream              31 k

Transaction Summary
========================================================================================================================
Install  39 Packages

(中略)

Complete!
[root@localhost ~]#

これでインストールできたので設定を変えます。

PHPの設定

そのままの設定では日本語などの扱いに問題が出るので設定を変更します。

主に変更する内容は下記の表の通り。

オプション名uncomment元の内容変更後の内容
realpath_cache_size4096k4096k
expose_phpOnOff
memory_limit128M192M
error_reportingE_ALL & ~E_DEPRECATED & ~E_STRICTE_ALL
display_errorsOffOn
post_max_size8M32M
upload_max_filesize2M20M
date.timezone”Asia/Tokyo”
mbstring.languageJapanese

説明も大変なのでsedコマンドを使って一気に書き換えます。

[root@localhost ~]# cp --preserve=contex /etc/php.ini /etc/php.ini.org
[root@localhost ~]# cat /etc/php.ini.org \
| sed -E "s/;(realpath_cache_size =)(.*$)/\1 4096k/" \
| sed -E "s/(expose_php =)(.*$)/\1 Off/" \
| sed -E "s/(memory_limit =)(.*$)/\1 192M/" \
| sed -E "s/^(error_reporting =)(.*$)/\1 E_ALL/" \
| sed -E "s/(display_errors =)(.*$)/\1 On/" \
| sed -E "s/(post_max_size =)(.*$)/\1 32M/" \
| sed -E "s/(upload_max_filesize =)(.*$)/\1 20M/" \
| sed -E "s/;(date.timezone =)(.*$)/\1 \"Asia\/Tokyo\"/" \
| sed -E "s/;(mbstring.language .*)$/\1/" \
 > /etc/php.ini

どのように書き換わったかは、diffを見てください。

[root@localhost ~]# diff -cT /etc/php.ini.org /etc/php.ini

PHP-FPM の設定

このままだとphp-fpmが起動するプロセス数がここで使用している仮想マシンの使用用途から考えると多すぎるので設定を修正します。

主に変更する内容は下記の表の通り。

オプション名uncomment元の内容変更後の内容
pm.max_children5010
pm.max_requests500100
pm.max_spare_servers3510

上からプロセスの最大起動数プロセスを再起動する処理リクエスト数アイドル状態のプロセス最大起動数になります。「php-fpm 設定」とかで検索すれば、場面に応じた設定が出てくると思うのでそれはそれで参考にしてください。

これもsedコマンドを使って一気に書き換えます。

[root@localhost ~]# cp --preserve=contex /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.org
[root@localhost ~]# cat /etc/php-fpm.d/www.conf.org \
| sed -E "s/(pm.max_children =)(.*$)/\1 10/" \
| sed -E "s/;(pm.max_requests =)(.*$)/\1 100/" \
| sed -E "s/(pm.max_spare_servers =)(.*$)/\1 10/" \
 > /etc/php-fpm.d/www.conf
[root@localhost ~]# diff -cT /etc/php-fpm.d/www.conf.org /etc/php-fpm.d/www.conf

サービスの起動

php-fpmはサービスの一つとして常駐するようなものとなるので、サービスに登録して起動する必要があります。設定変更時にも、サービスを再起動する必要が出てくるので忘れずに。

まずは登録。

[root@localhost ~]# systemctl enable php-fpm

そのあとは、起動しつつ、nginxも再起動します。

[root@localhost ~]# systemctl start php-fpm
[root@localhost ~]# systemctl restart httpd

動作確認

phpinfo() を表示するページを準備してアクセスしてみましょう。

[root@localhost ~]# echo "<?php phpinfo();" > /var/www/html/phpinfo.php

これで、ネットワーク的に問題が無ければブラウザでアクセスすれば、phpinfoが表示されます。

今回はここまで。