Amazon Linux 2023 Section 2 Apache + mariadb + PHP 構成
Section 2.4 SPAL phpMyAdmin
About
SPAL (Supplementary Packages for Amazon Linux) から phpMyAdmin をインストールします。 SPALとは何か?については Amazon Linux の補足パッケージを読んでください。 開発や検証用なので本番では使わないという前提で適応していきます。
そのついでに、PHPからDatabaseを使う場合のSELinux関連の設定についても行っておきます。
環境は、Section 2.3を行った直後の状態からとなります。
パッケージの確認
リポジトリに登録されているものからパッケージ名とバージョンを指定してインストールすることになります。 まずは、提供されているかどうかを調べます。
[root@localhost ~]# dnf search phpMyAdmin
一致する項目はありませんでした。
[root@localhost ~]#
SPAL リポジトリの設定をしていないとこうなります。
SPALの設定
Amaozn Linux 2023.9.20251117 以降なら使えるのでこのバージョン 2023.12 では問題ないのはわかっているので、dnfでリポジトリ設定をインストールします。
[root@localhost ~]# dnf -y install spal-release
依存関係が解決しました。
========================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
========================================================================================================================
インストール:
spal-release noarch 2023-5.amzn2023 amazonlinux 12 k
依存関係のインストール:
spal-repo-cdn noarch 2023-5.amzn2023 amazonlinux 9.5 k
トランザクションの概要
========================================================================================================================
インストール 2 パッケージ
(略)
完了しました!
[root@localhost ~]#
インストール中に、サポート要件が英語で表示されるので確認しておいてくださいと公式でも言っています。 SPAL経由で入れたものは、AWSとしては公式サポートしないとか、RHEL 9 の EPEL が更新しなければ何もしないよとかあるので、本番のものに適応するかは自己責任で……という感じです。
[root@localhost ~]# dnf repolist --all
repo id repo の名前 状態
amazonlinux Amazon Linux 2023 repository 有効化
amazonlinux-debuginfo Amazon Linux 2023 repository - Debug 無効化
amazonlinux-source Amazon Linux 2023 repository - Source packages 無効化
amazonlinux-spal Amazon Linux 2023 SPAL repository 有効化
amazonlinux-spal-debuginfo Amazon Linux 2023 SPAL repository - Debug 無効化
amazonlinux-spal-source Amazon Linux 2023 SPAL repository - Source packages 無効化
kernel-livepatch Amazon Linux 2023 Kernel Livepatch repository 有効化
kernel-livepatch-source Amazon Linux 2023 Kernel Livepatch repository - Source packages 無効化
[root@localhost ~]#
これで有効になったと思うので、phpMyAdminをインストールします。
インストール
パッケージの有無とバージョンを確認します。
[root@localhost ~]# dnf search phpMyAdmin
============================================== 名前 完全一致: phpMyAdmin ===============================================
phpMyAdmin.noarch : A web interface for MySQL and MariaDB
[root@localhost ~]# dnf repoquery phpMyAdmin
phpMyAdmin-0:5.2.3-1.1.spal2023.noarch
[root@localhost ~]#
バージョンを確認できたのでインストールします。
[root@localhost ~]# dnf -y install phpMyAdmin
依存関係が解決しました。
========================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
========================================================================================================================
インストール:
phpMyAdmin noarch 5.2.3-1.1.spal2023 amazonlinux-spal 8.4 M
依存関係のインストール:
php8.5-process x86_64 8.5.9-1.amzn2023.0.1 amazonlinux 49 k
トランザクションの概要
========================================================================================================================
インストール 2 パッケージ
(中略)
完了しました!
[root@localhost ~]#
設定変更
設定的には、localhost からのみという制限が入っているので、ブラウザからアクセスできないので設定を変えます。
[root@localhost ~]# cp --preserve=context /etc/httpd/conf.d/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf.org
[root@localhost ~]# cat /etc/httpd/conf.d/phpMyAdmin.conf.org \
| sed -E "/phpMyAdmin\/>/,/Require local/s/Require local/Require all granted/" \
> /etc/httpd/conf.d/phpMyAdmin.conf
[root@localhost ~]# diff -cT /etc/httpd/conf.d/phpMyAdmin.conf.org /etc/httpd/conf.d/phpMyAdmin.conf
*** /etc/httpd/conf.d/phpMyAdmin.conf.org YYYY-mm-dd hh:ii:ss.000000000 +0900
--- /etc/httpd/conf.d/phpMyAdmin.conf YYYY-mm-dd hh:ii:ss.000000000 +0900
***************
*** 11,17 ****
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
! Require local
</Directory>
<Directory /usr/share/phpMyAdmin/setup/>
--- 11,17 ----
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
! Require all granted
</Directory>
<Directory /usr/share/phpMyAdmin/setup/>
Apacheの設定を変えたのでサービスの再起動を行います。
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]#
これでブラウザから localhost/phpMyAdmin/ でアクセスできるようになっています。
SELinux有効時の設定
Databaseを使うのであれば下記のコマンドで設定を適応します。
[root@localhost ~]# setsebool -P httpd_can_network_connect_db on
ファイルのアップロード機能がある場合は httpd_sys_script_anon_writeをonに、問い合わせフォームからメールを出す場合 httpd_can_sendmail をonにする必要があります。
なお、-P オプションをつけないと再起動時にリセットされてしまいます。 無効にする場合は、-Pをつけずに設定を変えて動作確認をして、その後、永続化するのが安全な手順です。