質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

2回答

1796閲覧

さくらVPSにおける複数ドメイン利用でのPHPMyAdminのインストールについて

techlawbeginner

総合スコア2

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

0グッド

0クリップ

投稿2020/04/24 03:18

編集2020/04/24 05:34

質問事項

さくらVPSにおいて,複数ドメインのサイト運用をしたいと考えています。それぞれにWordPressをインストールしていきたいと考えているのですが,phpmyAdminの設定で躓いています。下記の通りの状況ですが,打開策が分かりませんでした。
何卒よろしくお願いいたします。

前提

さくらVPSでCentOS8をインストールし,マルチドメイン環境(hogehogeA.com/hogehogeB.com/hogehogeC.comの3ドメインとします。)で運用をしようと考えています。インストール自体は
https://sakura.ohhappy.jp/
の手順を参考にして進めています。

PHPのverは7.2.11です。

/var/www/html下に
/hogehogeA
/hogehogeB
/hogehogeC
の3フォルダを作成し,/etc/httpd/conf.d/vhost.conf は

#hogehogeAの設定 <VirtualHost *:80> DocumentRoot /var/www/html/hogehogeA ServerName hogehogeA.com ServerAlias www.hogehogeA.com AddDefaultCharset UTF-8 <Directory "/var/www/html/hogehogeA"> AllowOverride All </Directory> </VirtualHost> #hogehogeBの設定 <VirtualHost *:80> DocumentRoot /var/www/html/hogehogeB ServerName hogehogeB.com ServerAlias www.hogehogeB.com AddDefaultCharset UTF-8 <Directory "/var/www/html/hogehogeB"> AllowOverride All </Directory> </VirtualHost> #hogehogeCの設定 <VirtualHost *:80> DocumentRoot /var/www/html/hogehogeC ServerName hogehogeC.com ServerAlias www.hogehogeC.com AddDefaultCharset UTF-8 <Directory "/var/www/html/hogehogeC"> AllowOverride All </Directory> </VirtualHost>

としています。現段階で,これらのいずれのドメインについてもテスト用に置いたindex.htmlが閲覧できる状態です。

mysql8.0をインストール済みで,こちらは,コンソールからrootでログインできることを確認済みです。なお,mysqlのインストールの際,上に示したHPの手順に従い,"Disallow root login remotely?"にはNoとしています。

その後,phpmyadminをphpmyadminユーザーでインストールし,上記HPの記載に従い,config.inc.phpを

/* Authentication type */ /* $cfg['Servers'][$i]['auth_type'] = 'cookie'; */ $cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = 'root_password'; /* Server parameters */ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = false;

とし('password'は,文字通り'root_password'としており,正しいパスワードにはしていません。),userdir.confを

#-#UserDir disabled UserDir enable #-#UserDir public_html UserDir public_html

とした上で,Basic認証の設定を行いました。

発生している問題・エラーメッセージ

上記の設定を行い,httpdを再起動させた後,

http://www.hogehogeA.com/~phpmyadmin/

へアクセスしました。Basic認証を通過したところ,

mysqli::real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES)

というメッセージが出て,ログインできませんでした。

試したこと

config.inc.phpの部分にmySQlのrootパスワードをベタうちしても同様でした。
また,
$cfg['Servers'][$i]['auth_type'] = 'cookie';
として試してみたところ,phpMyAdminのログイン画面がBasic認証をすっ飛ばして表示され,そのログイン画面にID rootでパスワードを正規のmのを入れても,ログインができませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

PHPのバージョン等が不明ですが...

MySQL 8.x の認証方式のデフォルトは、caching_sha2_password と思いますが、PHPが対応している認証方式は、どの認証方式になっているでしょうか。

MySQL 8 のドキュメント
caching_sha2_password-Compatible Clients and Connectors

HP: the X DevAPI PHP extension (mysql_xdevapi) supports caching_sha2_password.

PHP: the PDO_MySQL and ext/mysqli extensions do not support caching_sha2_password. In addition, when used with PHP versions before 7.1.16 and PHP 7.2 before 7.2.4, they fail to connect with default_authentication_plugin=caching_sha2_password even if caching_sha2_password is not used.

とあるように PHP の PDO_MySQLmysqli では、caching_sha2_password をサポートしていませんので接続できません。

回避方法としては、MySQL 側の認証方式を従来の mysql_native_password に戻すことだと思います。

MySQL の設定で、default_authentication_plugin=caching_sha2_password となっていた場合は、default_authentication_plugin=mysql_native_password と変更して MySQL を再起動してみてください。


phpMyAdmin のドキュメントを読んでいたら PHP 7.4 以降では対応できそうな情報は見つけました。

1.45 I get an error message about unknown authentication method caching_sha2_password when trying to log in

This error is because of a version compatibility problem between PHP and MySQL. The MySQL project introduced a new authentication method (our tests show this began with version 8.0.11) however PHP did not include the ability to use that authentication method. PHP reports that this was fixed in PHP version 7.4.

とあるように PHP 7.4 以降で対応されているようです。PHP 7.4 以降にアップデートできそうでしょうか?

それ以外の場合は、

Users experiencing this are encouraged to upgrade their PHP installation, however a workaround exists. Your MySQL user account can be set to use the older authentication with a command such as
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

とあり、やはり、MySQL 側の認証を「古い認証方式の mysql_native_password に変更して使ってくださいとなっています。

投稿2020/04/24 04:33

編集2020/04/24 06:25
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

techlawbeginner

2020/04/24 05:39

ご回答ありがとうございます。まず,PHPのverについて追記しましたが,7.2.11です。 試みようと思い調べてみたのですが,phpのdocumentによると,ご指摘の認証方法の点は解決されているようにも思われますので,ご指摘の点ではないように存じます。他に可能性があるのでしょうか…
techlawbeginner

2020/04/24 06:26

お騒がせしました。こちらのドキュメント(https://www.php.net/manual/ja/ref.pdo-mysql.php)を見ていたのですが,確かに,(https://www.php.net/manual/en/mysqli.requirements.php)を見ると,まだ未対応のようですね。申し訳ありません。 そこで,/etc/my.cnf に [mysqld] default_authentication_plugin=mysql_native_password としてみて,mysqld,httpdいずれも再起動して試してみましたが,やはり同様でした。
CHERRY

2020/04/24 06:31

うちでは、インストール直後に設定していたので気がついてませんでしたが、default_authentication_plugin を設定しても 作成済みのユーザーのパスワード形式は変わらないようです。 回答欄に追記しましたが、既存ユーザーに適用させるには、 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード'; で、パスワードを更新する必要があるようです。
techlawbeginner

2020/05/04 11:07

一度,マルチドメインではなく,シングルドメインで試してみましたら,そもそも,その段階でもエラーが出てしまいました。 そこで,ご指摘も踏まえて以下のとおり設定したところ,phpmyadminへのログインができるようになりました。 まず,phpのverを7.4.5にしました。そして, config.inc.phpは /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; としました。 そして,mysqlでrootでログインし, ALTER USER 'root'@'localhost' identified WITH caching_sha2_password BY 'パスワード'; としてみました。 これで一応通りました。あとはマルチドメインでもうまくいくかをテストしてみます。 回答が遅くなり申し訳ありません。
techlawbeginner

2020/05/04 11:22

PHP7.4.5をインストールし,ディレクトリ構造や`/etc/httpd/conf.d/vhost.conf`については,質問ジト同じ設定をしました。 `config.inc.php`は ``` /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; ``` としました。その上で,mysqlにrootでログインし, `ALTER USER 'root'@'localhost' identified WITH caching_sha2_password BY 'パスワード';` を実行したところ,マルチドメイン環境ですが, `http://hogehogeA.com/~phpmyadmin/``http://hogehogeB.com/~phpmyadmin/`いずれからもphpmyadminが使えるようになりました。 CHERRY様のアドバイスありがとうございました。
guest

0

PHP7.4.5をインストールし,ディレクトリ構造や/etc/httpd/conf.d/vhost.confについては,質問ジト同じ設定をしました。

config.inc.php

/* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = '';

としました。その上で,mysqlにrootでログインし,

ALTER USER 'root'@'localhost' identified WITH caching_sha2_password BY 'パスワード';

を実行したところ,マルチドメイン環境ですが,

http://hogehogeA.com/~phpmyadmin/``http://hogehogeB.com/~phpmyadmin/いずれからもphpmyadminが使えるようになりました。

CHERRY様のアドバイスありがとうございました。

投稿2020/05/04 11:22

techlawbeginner

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問