(PHP8.1対応)【CentOS8】phpMyAdminインストール手順(nginx+php+MySQL)での設定
こんにちは!
インフラ関連のシステムエンジニアをやっているカユラ(@kayura_SE )です。
今回は、「(PHP8.1対応)版の【CentOS8】phpMyAdminインストール手順(nginx+php+MySQL)での設定」について紹介したいと思います。
PHP8にするのは本当に大変でした。。。
私自身いろいろと躓きましたため、上から順番に実施することで「phpMyAdmin」にログインできるような構成になっております。
「root」ユーザーで作業しているため、必要に応じて「sudo」をつけてください。
名称 |
Ver |
---|---|
OS |
CentOS8.7 or Linux8.7 or RHEL8.7 |
PHP |
8.1.18-1.el8.remi |
PHP-FPM |
8.1.18-1.el8.remi |
phpMyAdmin |
5.2.1-1.el8.remi |
nginx |
1:1.14.1-9.module_el8.3.0+2165+af250afe |
MySQL |
8.0.30 |
- (PHP8.1対応)【CentOS8】phpMyAdminインストール手順(nginx+php+MySQL)での設定
- (PHP7系の時と同手順)必要なパッケージのインストール
- (PHP8系の時)必要なパッケージのインストール
- サービスの起動&自動起動設定
- Configファイルの設定
- Configファイルの権限変更
- サービスの再起動
- MySQLの初期設定とユーザー作成
- phpMyAdminへのログイン
- phpMyAdminをHTTPS化する手順を以下にまとめたため、ご覧ください。
(PHP7系の時と同手順)必要なパッケージのインストール
①「nginx」をインストールします。
yum install -y nginx
②「remiリポジトリ」をインストールします。
※これが無いとインストールに失敗します。
PHP系の最新のパッケージを入手可能なリポジトリです。
以下のサイトでVerが選べるのですが、Ver9はOSを9系にする必要があります。
http://rpms.remirepo.net/enterprise/
yum install -y http://rpms.remirepo.net/enterprise/remi-release-8.rpm
③「remiリポジトリ」を無効化します。
利用するときだけ明示的に指定するため、「yum」と「dnf」の両方で無効化しておきます。
dnf config-manager --disable remi-modular remi-safe
yum config-manager --disable remi-modular remi-safe
④「MySQL」をインストールします。
以下のコマンドで最新のVerを確認します。
yum info mysqlバージョン : 8.0.30
最新のVerでインストールします。
yum install -y @mysql:8.0
(PHP8系の時)必要なパッケージのインストール
※順番が重要です。
①作業前のPHPリポジトリの状況を確認します。
以下のコマンドで現在の設定と利用可能なPHPの最新のVerを確認します。
以下のコマンドで現在利用可能なPHPのバージョンを確認します。以降の手順で標準リポジトリの「PHP7.2」を「remi-8.1」に変更していきます。
dnf module list php --enablerepo=remi-modular
(コマンド結果)
Remi's Modular repository for Enterprise Linux 8 - x86_64 508 B/s | 833 B 00:01
Remi's Modular repository for Enterprise Linux 8 - x86_64 3.0 MB/s | 3.1 kB 00:00
GPG 鍵 0x5F11735A をインポート中:
Userid : "Remi's RPM repository "
Fingerprint: 6B38 FEA7 231F 87F5 2B9C A9D8 5550 9759 5F11 735A
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8
これでよろしいですか? [y/N]: y ※初回のみ必要
Remi's Modular repository for Enterprise Linux 8 - x86_64 313 kB/s | 1.3 MB 00:04
メタデータの期限切れの最終確認: 0:00:01 時間前の 2023年05月05日 16時47分25秒 に実施しました。
AlmaLinux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d][e] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
php 8.0 common [d], devel, minimal PHP scripting languageRemi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
php remi-8.2 common [d], devel, minimal PHP scripting language
ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
②PHPリポジトリの設定をリセットします。
以下のコマンドでPHPのリポジトリ設定をリセットします。
dnf module reset php
③PHP8.1リポジトリを有効化し、作業後のPHPリポジトリの設定を確認します。
dnf module enable php:remi-8.1 --enablerepo=remi-modular
標準リポジトリの「PHP7.2」のenableが無くなり、remi-8.1にenable付与されていることを確認します。
dnf module list php --enablerepo=remi-modular
AlmaLinux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
php 8.0 common [d], devel, minimal PHP scripting languageRemi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 [e] common [d], devel, minimal PHP scripting language
php remi-8.2 common [d], devel, minimal PHP scripting language
ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
④「oniguruma5php」をインストールします。
これを入れないと後で前提パッケージエラーが出ます。
「remi」リポジトリからインストールしています。
yum install --enablerepo=remi oniguruma5php -y
⑤「libicu71」をインストールします。
これを入れないと後で前提パッケージエラーが出ます。
「remi」リポジトリからインストールしています。
yum install --enablerepo=remi libicu71 -y
⑥「php-mbstring」、「php-intl」、「php」、「php-mysqlnd」をインストールします。
「php-fpm」は勝手に入るので大丈夫です!
「remi-modular」リポジトリからインストールしています。
yum install --enablerepo=remi-modular php-mbstring php-intl php php-mysqlnd -y
⑦「php-posix」をインストールします。
これを入れないと後で前提パッケージエラーが出ます。
「remi-modular」リポジトリからインストールしています。
yum install --enablerepo=remi-modular php-posix -y
⑧「php-zip」をインストールします。
これを入れないと後で前提パッケージエラーが出ます。
「remi-modular」リポジトリからインストールしています。
dnf install --enablerepo=remi-modular php-zip -y
⑨「libraqm」をインストールします。
これを入れないと後で前提パッケージエラーが出ます。
「epel」リポジトリからインストールしています。
yum install --enablerepo=epel libraqm -y
⑩「libimagequant」をインストールします。
これを入れないと後で前提パッケージエラーが出ます。
「remi」リポジトリからインストールしています。
yum install --enablerepo=remi libimagequant -y
⑪「libavif」をインストールします。
これを入れないと後で前提パッケージエラーが出ます。
「epel」リポジトリからインストールしています。
yum install --enablerepo=epel libavif -y
⑫「gd3php」をインストールします。
これを入れないと後で前提パッケージエラーが出ます。
「remi」リポジトリからインストールしています。
yum install --enablerepo=remi gd3php -y
⑬「php-gd」をインストールします。
これを入れないと後で前提パッケージエラーが出ます。
「remi-modular」リポジトリからインストールしています。
yum install --enablerepo=remi-modular php-gd -y
⑭「phpMyAdmin」をインストールします。
ついに本題のphpMyAdminのインストールです。
「remi」リポジトリからインストールしています。
yum install --enablerepo=remi phpMyAdmin -y
サービスの起動&自動起動設定
①「nginx」のサービスを起動し、自動起動を有効化インストールします。
systemctl start nginxsystemctl enable nginx
②「php-fpm」のサービスを起動し、自動起動を有効化インストールします。
systemctl start php-fpmsystemctl enable php-fpm
③「mysqld」のサービスを起動し、自動起動を有効化インストールします。
systemctl start mysqldsystemctl enable mysqld
Configファイルの設定
「php-fpm」の設定
「php-fpm」の設定vim /etc/php-fpm.d/www.conf
デフォルトの実行ユーザーとグループが「apache」になっているため、「nginx」に変更します。
■変更前listen = ''user = apachegroup = apache
↓↓↓↓↓↓変更後↓↓↓↓↓↓
■変更後listen = /var/run/php-fpm/php-fpm.sockuser = nginxgroup = nginx
「php」の設定
「php」の設定vim /etc/php.ini
デフォルトの「PHPのセッション」の保存先が「/tmp」になっているため、「/var/lib/php/session」に変更します。
■変更前;session.save_path = "/tmp"
↓↓↓↓↓↓変更後↓↓↓↓↓↓
■変更後session.save_path = "/var/lib/php/session"
「nginx」の設定
「nginx」の設定vim /etc/nginx/conf.d/phpmyadmin.conf
新規にファイルを作成します。
■変更前ファイルなし
↓↓↓↓↓↓変更後↓↓↓↓↓↓
■変更後
「192.168.1.180」の部分は、サーバー自身のIPまたはFQDNに変更してください。
Configファイルの権限変更
「/var/lib/php/session」の権限設定
「/var/lib/php/session」の権限設定
nginxが「/var/lib/php/session」にアクセスできるように権限を変更します。
chown -R root.nginx /var/lib/php/session
サービスの再起動
①「nginx」のサービスを再起動します。
systemctl restart nginx
②「php-fpm」のサービスを再起動します。
systemctl restart php-fpm
③「mysqld」のサービスを再起動します。
systemctl restart mysqld
MySQLの初期設定とユーザー作成
①初期設定用のコマンドを実行します。
mysql_secure_installation
■対話形式の応答:Press y|Y for Yes, any other key for No: yPlease enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0New password:(rootユーザーのパスワードを入力)Re-enter new password:(rootユーザーのパスワードを再入力)Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : yRemove anonymous users? (Press y|Y for Yes, any other key for No) : yDisallow root login remotely? (Press y|Y for Yes, any other key for No) : yRemove test database and access to it? (Press y|Y for Yes, any other key for No) : yReload privilege tables now? (Press y|Y for Yes, any other key for No) : y
②「root」ユーザーでMySQLにログインします。
mysql -u root -pEnter password:(rootユーザーに設定したパスワード)
③「全権限のあるユーザー」を作成します。
黄色の部分は任意のものを設定してください。
mysql>CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
mysql>GRANT ALL ON *.* TO 'ユーザー名'@'localhost' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql>exit
④「全権限のあるユーザー」でログインできることを確認します。
mysql -u ユーザー名 -pEnter password:(全権限のあるユーザーに設定したパスワード)
phpMyAdminへのログイン
「192.168.1.180」の部分は、サーバー自身のIPまたはFQDNに変更してください。
①Webブラウザで以下のURLにアクセスします。http://192.168.1.180/index.php
②作成したMySQLのユーザー名とパスワードを入力してログインします。
phpMyAdminをHTTPS化する手順を以下にまとめたため、ご覧ください。
www.kayura-se.com(PHP8.1対応)【CentOS8】phpMyAdminインストール手順(nginx+php+MySQL)での設定の手順は以上となります。
PHP8にするのは前提パッケージエラーばかりで本当に大変でした。。。
次回はphpMyAdminの活用方法について説明したいと思います。
現在悩んでいる方はTwitterでご連絡ください。
私も辛い日々を経験したのであなたの助けになりたいです。
カユラ(@kayura_SE )