手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 Apache Web サーバー構築 PHP 有効化

目次に戻る

Overview

Apache で PHP を有効化します。Ubuntu 22.04 では PHP 8.1 がインストールされます。

前提条件

  • こちらを参考に Apache をインストール済みであること。

インストール

PHP をインストールします。

パッケージリストの作成

指定するパッケージ数が多いので、パッケージリストを個別に作成しています。この PHP パッケージリストは PHP を使用する大抵のアプリケーションに対応すると思います。例えば、WordPress, Nextcloud, Roundcube などです。

myadmin@ubuntu:~$ tee php-pkg.list <<"EOF"
php
php-apcu
php-bcmath
php-bz2
php-cgi
php-curl
php-enchant
php-fpm
php-gd
php-gmp
php-imagick
php-intl
php-mbstring
php-mysql
php-pear
php-redis
php-smbclient
php-zip
php8.1-opcache
EOF

パッケージリストを指定したインストール

パッケージリストを指定してインストールします。

myadmin@ubuntu:~$ sudo apt -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install $(cat php-pkg.list)

/etc/php/8.1/mods-available/my.php.ini

PHP の設定ファイルである php.ini は、apache2, cgi, cli のそれぞれのディレクトリに存在しています。本稿では php.ini は変更せずに個別の設定ファイルを作成して設定を追加する方法をとります。個別の設定ファイルは mods-available に配置します。既存の設定ファイルが存在する為、それらを参考に my.php.ini を作成します。ここでは最低限必須となる date.timezone のみを指定していますが、使用するアプリケーションにより適宜設定を追加します。コメント行の priority を指定しないと認識されません。

myadmin@ubuntu:~$ sudo tee /etc/php/8.1/mods-available/my.php.ini <<"EOF"
; configuration for php my.php module
; priority=90
date.timezone = "Asia/Tokyo"
EOF

設定の有効化

phpenmod コマンドで my.php を有効にします。この方法は Aapache の設定有効化と似た方式であり、phpdismod, phpenmod, phpquery があります。apache2, cgi, cli の conf.d で 90-my.php.ini が有効になっていることを確認できます。

myadmin@ubuntu:~$ sudo phpenmod my.php

下記のコマンドにより php8.1-cgi.conf がロードされ、Apache の設定ファイルとして PHP が有効になります。

myadmin@ubuntu:~$ sudo a2enconf php8.1-cgi

設定を有効化します。

myadmin@ubuntu:~$ sudo systemctl restart apache2.service && systemctl status apache2.service

正常性確認

下記の PHP スクリプトを作成します。ブラウザから Web サーバーにアクセス ( http://[ fqdn ]/info.php ) して意図したレスポンスがあることを確認します。WAF が有効の場合はブロックされます。

myadmin@ubuntu:~$ echo '<?php phpinfo(); ?>' | sudo tee /var/www/html/info.php

PHP スクリプトを削除します。

myadmin@ubuntu:~$ sudo rm -f /var/www/html/info.php

目次に戻る

Ubuntu 22.04 Apache Web サーバー構築 PHP 有効化

Ubuntu 22.04 Apache Web サーバー構築 PHP 有効化」への2件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る