サイトアイコン スグブログ

【PHP基礎】XサーバでPHPのDB操作をWeb公開用に修正する

webサイト

PHPでWebサイト構築する為に、ローカル環境を作成して色々試しています。

ローカル環境を構築するメリットは、気軽に試せる事にあります。

開発中は何度も試すので、本番環境だと試す度にアップロードをしなければなりません。

面倒で時間がかかるので、ローカル環境で行う事は大事になってきます。

PHP環境をローカルで作成するには、以下の「パソコン1つでPHP環境を作成する」の記事を参照してください。

しかし実際にWebサイトに上げる場合、DB連携している場合変更しなければいけない項目が出てきます。

今回は変更しなければいけない箇所と、その作成方法をXサーバ用で試してみようと思います。

XサーバでPHPのDB操作をWeb公開用に修正する

Web公開用に修正する箇所

ローカル環境はSAMPPで構築しております。

その時にDBに接続する構文は以下となります。

<?php
try{
 $DB_DATABASE = 'mydatabase';
 $DB_USERNAME = 'root';
 $DB_PASSWORD = '';
 $DB_OPTION = 'charset=utf8';
 $PDO_DSN = "mysql:host=localhost;dbname=" . $DB_DATABASE . ";" . $DB_OPTION;
 $db = new PDO($PDO_DSN, $DB_USERNAME, $DB_PASSWORD,
 [   PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
 ]);
 echo 'DB接続成功';
 } catch(PDOException $e){
 echo 'DB接続失敗';
}
?>

DB接続すれば「DB接続成功」、例外があれば「DB接続失敗」の文字列を表示する「例外処理」も施しております。

詳しくは以下の「PDOでDBにアクセスする時の構文」の記事を参照してください。

ローカル環境からWebにアップする時に変更する箇所は以下です

今回はXサーバーで行います。一つずつ作成していきます。

Xサーバーの管理画面(サーバーパネル)にログインします

Xサーバーでデータベースを作成する

「データベース」の中の「MySQL設定」をクリックします。

「MySQL追加」タブをクリックし、データベース名を記入して、「確認画面へ進む」をクリックします。

文字コードは「UTF-8」のままでOKです。

ここでは「sugublog7_test」というデータベースを作成します。

作成するデータベース名を確認して「追加する」をクリックします。データベース作成完了です。

XサーバーでMySQLユーザとパスワードを作成する

「MySQL一覧」タブに今回作成した「sugublog7_test」のデータベースが見えました。

アクセス権所有ユーザがいないとなっています。データベースにアクセスするユーザが必要です。

MySQLのユーザーを作成します。「MySQLユーザ追加」タブにユーザとパスワードを入力します。「確認画面へ進む」をクリックします。今回は以下のようにしました。

「MySQLユーザ一覧」タブに作成した「sugublog7_user1」ユーザが見えました。

ユーザ作成時気を付ける事

ユーザ作成時気を付ける事

  1. ユーザIDは半角英数字のみ使用
  2. ユーザIDは6文字以内にする
  3. パスワードは半角英数字や利用可能な文字のみ
  4. パスワードは8文字以上16文字以内

テストしてみます。というかやってエラー出た事をまとめます。

ここでは「sugublog7_test_user」、パスワードも同じものを記入しました。

①MySQLユーザは半角英数文字でないとダメです。「_」はダメです。

③MySQLパスワードは利用できない文字があります。 「_」はダメです 。

次に「testuser」、パスワードも同じものを記入しました。が

②MySQLユーザは6文字以内でないとダメです。

次に「user1」、パスワードを同じにしました。

④MySQLのパスワードは「半角8文字以上16文字以内」でないとダメなようです。。

このように制限があるので、決まりを抑えておきましょう。もう一度まとめると以下となります。

  1. ユーザIDは半角英数字のみ使用
  2. ユーザIDは6文字以内にする
  3. パスワードは半角英数字や利用可能な文字のみ
  4. パスワードは8文字以上16文字以内

データベースのアクセス権をユーザに持たせる

データベースとユーザが作成できたので、データベースのアクセス権を持つユーザーを割り当てます。

「MySQL一覧」タブの該当データベースのアクセス権未所有ユーザで先程作成したユーザを選択し、「追加」をクリックします。

アクセス権所有ユーザに、先程追加したユーザが見えれば成功です。

XサーバでMySQLのホスト名を探す

MySQLサーバのホスト名を探します。データベース作成する時に載っているので、MySQLの項目から探します。

データベースを作成した画面の下の方に載っています。

MySQLのホスト名がこれにあたります。

これでWebサーバで公開する時に変更するパラメータが揃いました。おさらいしておきます。

PHPをWeb公開用に変更する

では初めに作成したPHPの変更する部分を変更してみましょう。

データベースに接続する構文は以下になります。

<?php
try{
 $DB_DATABASE = 'sugublog7_test';
 $DB_USERNAME = 'sugublog7_user1';
 $DB_PASSWORD = 'testuser';
 $DB_OPTION = 'charset=utf8';
 $PDO_DSN = "mysql:host=〇〇.xserver.jp;dbname=" . $DB_DATABASE . ";" . $DB_OPTION;
 $db = new PDO($PDO_DSN, $DB_USERNAME, $DB_PASSWORD,
 [   PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
 ]);
 echo 'DB接続成功';
 } catch(PDOException $e){
 echo 'DB接続失敗';
}
?>

変更箇所は4つですね。

これでWebサイト用に変更できました。

Xサーバのファイルアップロードでアップして、サイトを見てみましょう。

上手くDB成功と表示されれば成功です。

モバイルバージョンを終了