よくばりすなシステムエンジニアのブログ

サーバー・ネットワークエンジニア向けに発信しますっ!

【CentOS8】nginx+php+MySQLでphpMyAdminの設定

はじめに

こんにちは!

インフラ関連のシステムエンジニアをやっているカユラ(@kayura_SE )です。

今回は、「【CentOS8】nginx+php+MySQLでphpMyAdminの設定」について紹介したいと思います。

私自身いろいろと躓きましたため、上から順番に実施することで「phpMyAdmin」にログインできるような構成になっております。

「root」ユーザーで作業しているため、必要に応じて「sudo」をつけてください。



名称

Ver

OS

CentOS8.6 or Linux8.6 or RHEL8.6

PHP

7.2.24-1.module_el8.3.0+2010+7c76a223

PHP-FPM

7.2.24-1.module_el8.3.0+2010+7c76a223

phpMyAdmin

5.2.0-1.el8.remi

nginx

1:1.14.1-9.module_el8.3.0+2165+af250afe

MySQL

8.0.30

必要なパッケージのインストール

①「nginx」をインストールします。

yum install -y nginx

②「remiリポジトリ」をインストールします。

※これが無いとインストールに失敗します。

PHP系の最新のパッケージを入手可能なリポジトリです。

以下のサイトでVerが選べるのですが、OSと同じ8.6にしてみました。

http://rpms.remirepo.net/enterprise/

yum install -y http://rpms.remirepo.net/enterprise/remi-release-8.6.rpm

③「remiリポジトリ」を無効化します。

利用するときだけ明示的に指定するため、「yum」と「dnf」の両方で無効化しておきます。

dnf config-manager --disable remi-modular remi-safe
yum config-manager --disable remi-modular remi-safe

④「phpMyAdmin」、「php-mbstring」、「php-intl」、「php」、「php-mysqlnd」をインストールします。

「php-fpm」は勝手に入るので大丈夫です!

「remi」リポジトリからインストールしています。

yum install -y --enablerepo=remi phpMyAdmin php-mbstring php-intl php php-mysqlnd

⑤「MySQL」をインストールします。

以下のコマンドで最新のVerを確認します。

yum info mysql
バージョン : 8.0.30

最新のVerでインストールします。

yum install -y @mysql:8.0





サービスの起動&自動起動設定

①「nginx」のサービスを起動し、自動起動を有効化インストールします。

systemctl start nginx
systemctl enable nginx

②「php-fpm」のサービスを起動し、自動起動を有効化インストールします。

systemctl start php-fpm
systemctl enable php-fpm

③「mysqld」のサービスを起動し、自動起動を有効化インストールします。

systemctl start mysqld
systemctl enable mysqld





Configファイルの設定

「php-fpm」の設定

「php-fpm」の設定
vim /etc/php-fpm.d/www.conf

デフォルトの実行ユーザーとグループが「apache」になっているため、「nginx」に変更します。

■変更前
listen = ''
user = apache
group = apache

↓↓↓↓↓↓変更後↓↓↓↓↓↓

■変更後
listen = /var/run/php-fpm/php-fpm.sock
user = nginx
group = 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: y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
New 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) : y
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

②「root」ユーザーでMySQLにログインします。

mysql -u root -p
Enter password:(rootユーザーに設定したパスワード)

③「全権限のあるユーザー」を作成します。

黄色の部分は任意のものを設定してください。

mysql>CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
mysql>GRANT ALL ON *.* TO 'ユーザー名'@'localhost' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql>exit

④「全権限のあるユーザー」でログインできることを確認します。

mysql -u ユーザー名 -p
Enter password:(全権限のあるユーザーに設定したパスワード)





phpMyAdminへのログイン

「192.168.1.180」の部分は、サーバー自身のIPまたはFQDNに変更してください。

①Webブラウザで以下のURLにアクセスします。
http://192.168.1.180/index.php

phpMyAdminのログイン画面
phpMyAdminのログイン画面

②作成したMySQLのユーザー名とパスワードを入力してログインします。

phpMyAdminのログイン後
phpMyAdminのログイン後





【CentOS8】nginx+php+MySQLでphpMyAdminの設定の手順は以上となります。

次回はphpMyAdminの活用方法について説明したいと思います。

現在悩んでいる方はTwitterでご連絡ください。

私も辛い日々を経験したのであなたの助けになりたいです。

カユラ(@kayura_SE )