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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

解決済

Pleskから立ち上げたサブドメインのphpファイルがログイン画面が上手く動かない、phpmyadminに接続が出来ない

unoooon
unoooon

総合スコア9

phpMyAdmin

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1回答

0リアクション

0クリップ

244閲覧

投稿2022/08/15 01:33

編集2022/08/17 01:53

気づけばプロ並みPHPを終え、Pleskでサブドメインを立ち上げて実際の環境でも動くかの練習中です。

下記の.phpのコードで「気づけばプロ並みPHP」のログインをさせたいのですが、「ただいま障害により大変ご迷惑をおかけします」と出て上手く行きませんでした。

実現したいこと

・サブドメイン上で「気づけばプロ並みPHP」のPHPを動かしたいのでまずはログインを成功させたい。

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

ただいま障害により大変ご迷惑をお掛けしております。 PDOException: SQLSTATE[HY000] [1045] Access denied for user 'ユーザー名'@'localhost' (using password: NO) in /var/www/vhosts/ドメイン/サブドメイン/staff_login_check.php:17 Stack trace: #0 /var/www/vhosts/ドメイン/サブドメイン/staff_login_check.php(17): PDO->__construct() #1 {main} SQLSTATE[HY000] [1045] Access denied for user 'ユーザー名'@'localhost' (using password: NO) or ただいま障害により大変ご迷惑をお掛けしております。 PDOException: SQLSTATE[HY000] [2002] Connection refused in /var/www/vhosts/ドメイン/サブドメイン/staff_login_check.php:17 Stack trace: #0 /var/www/vhosts/ドメイン/サブドメイン/staff_login_check.php(17): PDO->__construct() #1 {main} SQLSTATE[HY000] [2002] Connection refused or 504 Gateway Time-out nginx

該当のソースコード

練習していたPHPのバージョン→PHP version: 7.0.1 本番環境にしたいPHPのバージョン→PHP のバージョン: 7.4.27 ①staff_login_check.php <?php try { $staff_code=$_POST['code']; $staff_pass=$_POST['pass']; $staff_code=htmlspecialchars($staff_code); $staff_pass=htmlspecialchars($staff_pass); $staff_pass=md5($staff_pass); $dsn = 'mysql:dbname=shop; host=localhost; charset=utf8'; $user = 'ユーザー'; $password = 'パスワード'; $dbh = new PDO($dsn, $user, $passoword); $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $sql = 'SELECT name FROM mst_staff WHERE code=? AND password=?'; $stmt = $dbh->prepare($sql); $data[] = $staff_code; $data[] = $staff_pass; $stmt->execute($data); $dbh = null; $rec = $stmt->fetch(PDO::FETCH_ASSOC); if($rec==false) { print'スタッフコードかパスワードが間違っています。<br />'; print'<a href="index.html">戻る</a>'; } else { session_start(); $_SESSION['login']=1; $_SESSION['staff_code']=$Staff_code; $_SESSION['staff_name']=$rec['name']; header('Location: staff_top.php'); } } catch(PDOException $e) { print'ただいま障害により大変ご迷惑をお掛けしております。'; print '<br />'; print $e; print '<br />'; print $e->getMessage (); exit(); } ?> ②connect.php <?php $dsn = 'mysql:dbname=shop; host=localhost; charset=utf8'; $usr = 'ユーザー'; $passwd = 'パスワード'; try { $db = new PDO($dsn, $usr, $passwd); print '接続に成功しました。'; }catch (PDOException $e) { print "接続エラー:{$e->getMessage()}"; }finally{ $db = null; }

試したこと

エラーメッセージを出すためにprint $e->getMessageを入れた
$dsn = 'mysql:dbname=shop;host=localhost;charset=utf8'; のlocalhostを色々調べながら6パターン試してみました。

・host=localhost
・host=127.0.0.1

ただいま障害により大変ご迷惑をお掛けしております。
SQLSTATE[HY000] [1045] Access denied for user
using password: NO
↑のエラーが出てくる

・訳→ユーザーへのアクセスが拒否されました
・パスワードがあってない?
・Pleskの画面でユーザーを作成した
・Pleskからphpmyadminに飛んでホームのデータベースをクリックすると、「データベースを作成する権限がありません」
・phpmyadminをログアウトして作成したユーザー情報でログイン可能

・host=ドメイン(co-.jp)
・host=サブドメイン(.com)
・host=サブドメインのIPアドレス
・host=ホスト名

ただいま障害により大変ご迷惑をお掛けしております。
SQLSTATE[HY000] [2002] Connection refused

・訳→接続が拒否されました

追記8/16
・host=ドメイン:ポート
web表示
504 Gateway Time-out
nginx

Pleskから見たエラーログ 
upstream timed out (110: Connection timed out) while reading response header from upstream

タイムアウトするようになった。これは合っている?

追記8/17
②のphpファイルを同じところに置いて直接URLを叩いて見たところ
接続に成功しましたと表示された。

ちなみにパスワードを空白に変えて間違えたものを用意したら
using password:NO
まで正しく表示された。

なので問題のプログラムも host = localhost に変更
出てきたエラーは

ただいま障害により大変ご迷惑をお掛けしております。
PDOException: SQLSTATE[HY000] [1045] Access denied for user 'ユーザー'@'localhost' (using password: NO) in /var/www/vhosts/ドメイン/サブドメイン/staff_login_check.php:17 Stack trace: #0 /var/www/vhosts/ドメイン/サブドメイン/staff_login_check.php(17): PDO->__construct('mysql:dbname=sh...', 'ユーザー', NULL) #1 {main}
SQLSTATE[HY000] [1045] Access denied for user 'ユーザー'@'localhost' (using password: NO)

補足情報(FW/ツールのバージョンなど)

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

phpMyAdmin

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。