プログラミングノート

プログラミングの備忘録です

Windowsマシンに Smarty 3.1.30 を導入

 SmartyPHPのテンプレートエンジンです。Smartyを使うと画面表示処理とデータ操作処理を分けて記述することができます。これによりソースファイルの可読性が向上すると思います。

 

1.ダウンロード

  1. Download | Smarty の「Download」>「Smarty 3 latest」にある「3.1.30」リンクをクリックします。
  2. GitHubのページが表示されますので、「Release 3.1.30」>「Download」にある「source code(zip)」リンクをクリックします。
  3. Smarty-3.1.30.zip」を開くウィンドウが表示されますので、ファイルを保存するを選択して、「OK」ボタンをクリックします。

 

2.インストール

  1. ダウンロードしたzipファイルを解凍します。
  2. libs ディレクトリを作成します。
  3. 解凍してできた「Smarty-3.1.30」をlibs ディレクトリに配置します。

 例: c:\webroot\libs\Smarty-v.e.r\

 (例の絶対パスは、利用環境に合わせて調整してください。)

 

 

3.Smarty.class.php ファイルの場所を指定

アプリケーションがSmarty.class.php ファイルを見つられるように設定します。

 

その1 PHP定数SMARTY_DIRに定義

PHPの定数「SMARTY_DIR」に、Smartylibsディレクトリへの絶対パスを指定します。絶対パスを指定するとき、最後に / を含める必要があります。

 例:define('SMARTY_DIR', 'C:\webroot\libs\smarty-3.1.30\libs/');

 (例の絶対パスは、利用環境に合わせて調整してください。)

 

その2 php.iniのinclude_pathに定義

php.iniのinclude_pathに、Smartylibs ディレクトリへの絶対パスを指定します。絶対パスを指定するとき、最後に \ を含める必要があります。

 例:include_path = ".;c:\php\includes;c:\webroot\libs\Smarty-3.1.30\libs\"

 (例の絶対パスは、利用環境に合わせて調整してください。)

その3 PHPスクリプトの ini_set() に定義

PHPスクリプトにini_set()を使用して、include_pathでSmartylibs ディレクトリへの絶対パスを指定します。絶対パスを指定するとき、最後に \ を含める必要があります。

 例:ini_set('include_path', 'c:\webroot\libs\Smarty-3.1.30\libs\');

 (例の絶対パスは、利用環境に合わせて調整してください。)

 


4.Smartyディレクトリを 作成

templatesディレクトリtemplates_cディレクトリconfigsディレクトリ、cacheディレクトリを作成します。

  • Smartyディレクトリは Smarty ライブラリによってのみアクセスされますので、ドキュメントルートの ディレクトリを作成することが推奨されています。
  • ディレクトリの名前は、Smarty クラスのプロパティ $template_dir、$compile_dir、$cofig_dir、$cache_dirに定義して変更することができます。

 

 

 5.テンプレートの作成

テンプレートファイル (拡張子が.tplのファイル) を作成し、template_dirディレクトに配置します。

(テンプレートファイルの文字コードをuft8としました。)

 

▼テンプレートファイルの内容

  • 画面に出力する内容(HTMLなど)を記述します。
  • 「{変数名}」と記述すると、変数値を表示します。

 例:「こんにちは、{$name}さん」

 

 

6.index.phpの作成

ドキュメントルートの下に任意のディレクトリを作成し、そのディレクトリにindex.php を配置します。

 

▼index.phpの内容

下の例は利用環境に合わせて調整してください。

 

// 1.Smarty.class.phpの読み込み

require_once(SMARTY_DIR . 'Smarty.class.php');

 

// 2.Smartyオブジェクトの生成

$smarty = new Smarty();

// 3.(任意)SmartyディレクトリをSmartyクラスのプロパティに設定
$smarty->template_dir = "c:/test/templates/";
$smarty->compile_dir  = "c:/test/templates_c/";
$smarty->config_dir   = "c:/test/configs/";
$smarty->cache_dir    = "c:/test/cache/";

 

// 4.(任意)変数に値の割り当て
$smarty->assign('name','テスト');

 

// 5.テンプレートの指定
$smarty->display('index.tpl');

 

7.テンプレート表示

 index.phpのURLにアクセスすると、テンプレートの内容が表示されます。

 

 

参照

PHP Template Engine | Smarty

Smarty3 マニュアル | Smarty

Google APIをPHPウェブアプリケーションから呼び出す(APIキー) 第7回

作成済みのAPIキーを使って、公開されているGoogle カレンダーから祝日のデータを取得します。

 

APIキーの作成については、Google APIを使用するための設定(APIキーの作成) 第3回 - プログラミングノート をご覧ください。

 

概要

  リクエストURLにデータ取得先のカレンダーIDを埋め込み、パラメータでAPIキーとデータの抽出条件を指定します。

 作成したリクエストURLとパラメータを、PHPのfile_get_contentsメソッドの引数に指定し実行すると、カレンダーのデータ(JSON形式)を取得することができます。

 

手順

  1. リクエストURLを作成
  2. 抽出条件のパラメータを作成
  3. URLとパラメータを指定してカレンダーデータを取得
  4. 取得したJSON形式のカレンダーデータをデコード

 

1.リクエストURLを作成

 下のURLで、Google カレンダーからイベントデータを取得します。

https://www.googleapis.com/calendar/v3/calendars/(カレンダーID)/events

このURLはEvents:listページの「Request」>「HTTP Request」に書かれています。

 

 上のURLに、データ取得先のカレンダーのカレンダーIDを埋め込みます。

日本の祝日カレンダーのカレンダーIDは、「japanese__ja@holiday.calendar.google.com」です。

 

補足

 リクエストURLは、API Reference  |  Google Calendar API  |  Google Developers のメソッドページに書かれています。それぞれのメソッドページの「Request」>「HTTP Request」をご覧ください。

 

 日本の祝日カレンダーのカレンダーIDを誤って、「ja.japanese#holiday@group.v.calendar.google.com」と指定したとき、「401 Login Required」エラーが発生しました。

 

 2.抽出条件のパラメータを作成

 Events:list の主なパラメータについて書きます。

 詳しくは、Events: list  |  Google Calendar API  |  Google Developers のParametersをご覧ください。

 

APIキー(必須)

 key = APIコンソールで作成したAPIキー

 

▼並び順(任意)

 orderBy=startTime 

 startTime(開始日時) または updated(更新日時)が指定できます。

 startTimeを指定する場合は、singleEventsがtrueである必要があります。

 

▼シングルイベント(任意)

 singleEvents=true

 繰り返しイベントの抽出に関して指定します。

 初期値はfalseです。

 

タイムゾーン(任意)

 timeZone=Asia/Tokyo

 指定がない場合は、カレンダーのタイムゾーンが使われます。

 

▼取得開始日時(任意)

 timeMin=2017-01-01T00:00:00Z

 RFC3339形式で指定します。

 

▼取得終了日時(任意)

 timeMax=2017-12-031T00:00:00Z

 RFC3339形式で指定します。

 

▼1ページの最大件数(任意)

 maxResults=10

 初期値は250件です。

 2500件以下で指定します。

 

補足

 ブラウザのアドレスバーにURLとパラメータを入力しアクセスしたとき、パラメータの指定に誤りがあれば、エラーメッセージが表示されます。

 

3.URLとパラメータを指定してカレンダーデータを取得

PHPのfile_get_contentsメソッドの引数でURLとパラメータを指定し、file_get_contentsメソッドを実行します。
$results = file_get_contents($url);

 

4.取得したJSONデータをデコード

PHPjson_decodeメソッドを使って取得したカレンダーデータ(JSON形式)をデコードします。
$json = json_decode($results, true);

 

注意

 APIキーを安全に保管するため、ソースファイルとは別のファイルにAPIキーを記述し、APIキーを記述したファイルはソースツリーの外に保管することが推奨されています。

 

記事一覧

第1回 Google APIを使用するための設定(プロジェクトの作成・使用するAPIの設定)

第2回 Google APIを使用するための設定(認証情報の登録)

第3回 Google APIを使用するための設定(APIキーの作成)

第4回 Google APIをPHPウェブアプリケーションから呼び出す

第5回 Google APIをPHPウェブアプリケーションから呼び出す(サービスアカウント)

第6回 Google APIへの問い合わせ状況と割り当てを確認する方法

第7回 Google APIPHPウェブアプリケーションから呼び出す(APIキー)

 

参照

Setting up API keys - API Console Help

Best practices for securely using API keys - API Console Help

PHP Data Object (PDO)でトランザクションを利用する 第3回

 PHP Data Object (PDO)を使ってデータベースのデータを操作します。データベースのデータの整合性を保つため、トランザクションを利用します。

 PDOは、PHPの拡張モジュールでデータベースを操作するためのインタフェースです。PDOを使ってトランザクションを利用するには、トランザクションをサポートしているデータベースが必要です。

 

トランザクション

 トランザクションは、データベースのデータの整合性を保つための方法です。

 トランザクション内でデータを変更するためのSQLを実行します。その後、変更の確定(コミット)を行い、データベースに変更を反映させます。

 トランザクション開始から変更確定までの間、他の接続は、確定前の変更結果を見ることができません。また、確定前のデータを変更することができません。

 このようにして、データベースに矛盾したデータが生成されないように、他の接続からデータを守ります。

 

補足

 変更の確定前であれば、データの変更をデータベースに反映させず、取り消すこと(ロールバック)ができます。

 

自動コミットモード

  自動コミットモードは、データベース固有のPDOドライバがトランザクションをサポートしているか否かにより、トランザクションを利用するか否かが決まるモードです。

 PDOドライバはデータベース固有で、データベースごとに異なります。

 使用するPDOドライバがトランザクションをサポートしていない場合は、トランザクションを使用せずに、SQLが実行されます。

 使用するPDOドライバがトランザクションをサポートしている場合は、暗黙的なトランザクションで、SQLが実行されます。

 最初にPDOでデータベースに接続した時、自動コミットモードの接続となります。

 

事前準備

  1. PHPをインストールします。
  2. トランザクションをサポートしているデータベースをインストールします。
  3. 2でインストールしたデータベースのPDOドライバが使えるように、php.iniファイルを設定します。

php.iniファイルの設定に関しては PHP Data Object(PDO)拡張モジュールの導入とPDOインスタンスの作成 第1回 - プログラミングノート をご覧ください。

 

手順

1.トランザクションを開始する

2.データを変更するためSQLを実行する

3.変更の確定・取消を行う

 

1.トランザクションを開始する

 PDOクラスのbeginTransactionメソッドを使って、トランザクションを開始します。

 データベース固有のPDOドライバがトランザクションをサポートしていない場合、PDOExceptionが発生します。

 MySQL データベースの MyISAM テーブルではトランザクションを利用できませんが、エラーが発生することなく、beginTransaction()は True を返します。これは、PDOがデータベース固有のPDOドライバで、トランザクションのサポートをチェックしているためです。

 詳しくは、PHP: PDO::beginTransaction - Manual をご覧ください。

 

2.データを変更するためSQLを実行する

 トランザクションの開始後、クエリ実行、登録・更新・削除のSQLを実行します。

 例えば、クエリを実行してデータを抽出し、そのデータをもとにデータを更新するなどの処理を行います。
 

3.変更の確定・取消を行う

 最初に、トランザクション内で行った処理が成功か失敗を判定します。

 成功の場合は、PDOクラスのcommitメソッドを使って、変更の確定(コミット)を行います。コミットを行うと、トランザクション内で行ったすべての変更がデータベースに反映されます。

 失敗の場合は、PDOクラスのrollbackメソッドを使って、変更の取消(ロールバック)を行います。ロールバックを行うと、トランザクション内で行ったすべての変更が取り消され、データベースに反映されません。

 詳しくは、PHP: PDO::commit - Manual PHP: PDO::rollBack - Manual をご覧ください。 

 

補足

トランザクション内の変更に対して確定・取消が行われずに、スクリプトが終了したり接続が閉じられる場合、PDOはそのトランザクション内の変更の取消(ロールバック)をします。

 

注意

MySQLなど一部データベースでは、トランザクション内でデータベース定義SQL

(CREATE TABLE など)が実行されると、自動で確定(コミット)されます。

 

try {
  $dbh->beginTransaction(); // トランザクションの開始

  // トランザクション内で、クエリ実行、登録・更新・削除のSQL実行
 
$dbh->commit(); // 変更の確定
} catch (
Exception $e) { 
  
$dbh->rollBack(); // 変更の取消 
}

 

 

記事一覧

第1回 PHP Data Object(PDO)拡張モジュールの導入とPDOインスタンスの作成

第2回 PHP Data Object (PDO)でプリペアステートメントを使う

第3回 PHP Data Object (PDO)でトランザクションを利用する

 

参照

PHP: トランザクションおよび自動コミット - Manual

 

PHP Data Object (PDO)でプリペアステートメントを使う 第2回

 PHP Data Object (PDO)を用いて、プリペアステートメントを使います。

 プリペアステートメントを使ってSQLを作成しデータベース操作を行うと、セキュリティの向上や処理の効率化が期待できます。

 

1.プリペアステートメントを使うメリット

1-1.セキュリティの向上

 Webページで不正な入力を行い想定外のSQLを生成させて、データベースを不正に操作する攻撃(SQLインジェクション)を防ぐ効果があります。

1-2.処理の効率化

 SQLを実行する時、SQLの解析、コンパイル、最適化といった準備が行われます。プリペアステートメントを使ってSQLを作成すると、1回目はこれらの準備を行いますが、2回目以降はこれらの準備を省きます。(SQL文に埋め込む変数を指定することで、SQL文の値を変えることができます。)

 

 

2.プリペアステートメントの使用

 PDOのプリペアステートメントを使用します。PDOの導入とPDOインスタンスの作成については、PHP Data Object(PDO)拡張モジュールの導入とPDOインスタンスの作成 第1回 - プログラミングノート をご覧ください。

 

2-1.PDOインスタンスの作成

 データベースのDNS、ユーザー、パスワードをPDOクラスのコンストラクタに渡して、PDOインスタンスを作成します。

 データベースのDNS、ユーザー、パスワードはご利用環境に合わせてください。

コンストラクタの詳細は PHP: PDO::__construct - Manual をご覧ください。

 

$dsn = 'mysql:dbname=testdb;host=testhost';
$user = 'testuser';
$password = 'testpass';
$dbh = new PDO($dsn, $user, $password);

 

 

2-2.SQL文の指定

 prepareメソッドを使いSQL文を指定します。SQL文は変数を埋め込む箇所にプレースホルダを挿入し作成します。

 プレースホルダとは、SQL文の変数を埋め込む箇所を示すマークです。後から、プレースホルダに変数を関連づける必要があります。

 プレースホルダには、名前つきプレースホルダと「?」プレースホルダの2種類があります。

 prepareメソッドの詳細は PHP: PDO::prepare - Manua をご覧ください。

 

名前つきプレースホルダ

 「VALUES」の後の「:no」と「:name」がプレースホルダとなります。

$stmt = $dbh->prepare("INSERT INTO TEST (no, name) VALUES (:no, :name)");

 

「?」プレースホルダ

 「VALUES」の後の「?」2つがプレースホルダとなります。

$stmt = $dbh->prepare("INSERT INTO TEST (no, name) VALUES (?, ?)");

 

 

2-3.プレースホルダと変数を関連付ける

 どのプレースホルダにどの変数の値を入れるのか指定するため、bindParamメソッドを使って、プレースホルダと変数を関連付けます。

 bindParamメソッドの詳細は PHP: PDOStatement::bindParam - Manual をご覧ください。

 

名前つきプレースホルダを使用した場合

 bindParamメソッドの引数は、1つ目が「'」で囲んだプレースホルダの名前(例:':no')で、2つ目が変数となります。

$stmt->bindParam(':no', $no);

$stmt->bindParam(':name', $name);

 

「?」プレースホルダを使用した場合

 bindParamメソッドの引数は、1つ目がプレースホルダの順番で、2つ目が変数となります。

 1つ目のプレースホルダの順番と2つ目の変数がずれないように注意します。

$stmt->bindParam(1, $no);

$stmt->bindParam(2, $name);

 

 

2-4.SQLの実行

 executeメソッドを使ってSQLを実行します。

 executeメソッドの詳細は PHP: PDOStatement::execute - Manual をご覧ください。

 

$stmt->execute();

 

 また、executeメソッドの引数でプレースホルダと変数の関連付けを行い、SQLを実行することもできます。

 executeメソッドの引数は配列である必要があります。配列の要素の1つ目から順にプレースホルダに関連付けられます。

$stmt = $dbh->prepare("SELECT * FROM TEST where name = ?");

$stmt->execute(array($name));

 

 

2-5.抽出結果を取得

 クエリで抽出した結果を1行ずつ取得するにはfetchメソッドを使います。

fetchメソッドの詳細は PHP: PDOStatement::fetch - Manual をご覧ください。

 

while ($row = $stmt->fetch()) {
    print_r($row);
}

 

 

補足

 WHERE句にLIKEと%を含むSQL文を作成する場合、SQL文のWHERE句は「WHERE xxxxx LIKE ?」となります。

 プレースホルダには変数を関連付けないといけません。そのため、変数と「%」を連結した値を変数に代入し、その後、代入した変数をプレースホルダと関連付けます。

 

$stmt = $dbh->prepare("SELECT * FROM TEST where name LIKE ?");

$keyword_name = "%".$name."%";

$stmt->bindParam(1, $keyword_name);

$stmt->execute();

 

 

記事一覧

第1回 PHP Data Object(PDO)拡張モジュールの導入とPDOインスタンスの作成

第2回 PHP Data Object (PDO)でプリペアステートメントを使う

第3回 PHP Data Object(PDO)でトランザクションを利用する

 

 

参考

PHP: プリペアドステートメントおよびストアドプロシージャ - Manual

 

PHP Data Object(PDO)拡張モジュールの導入とPDOインスタンスの作成 第1回

 PHP Data Objects (PDO) は、PHPの拡張モジュールで、 データベースにアクセスするための インターフェイスです。

 今回は、PDOを導入し、さらにPDOを利用するためにPDOインスタンスを作成します。

 

PDOの便利なところ

 

データベース固有の PDOドライバを使用します。それぞれのデータベースのPDOドライバの詳細は、PHP: PDO ドライバ - Manual をご覧ください。

 

1.PDOを導入

PHPに同梱されているデータベース固有のDLLを使うため、php.iniを編集してPHPを再起動します。

  1. データベース固有のDLLを指定するため、php.iniで、「extension=php_pdo_xxxxxx.dll」を指定します。(xxxxxxはデータベースにより異なります)
  2. php.iniを保存し、その後、PHPを再起動します。

 php.iniで、行頭の「;」に引き続きDLLがすでに記述されている場合があります。行頭の「;」はコメントマークですので、行頭の「;」を削除します。

(例)MySQLの場合「;extension=php_pdo_mysql.dll」と記述されているので、行頭の「;」を削除するだけです。

 

  • DLLファイルは、php.iniの extension_dir で指定したディレクトリに格納されている必要があります。
  • PHP 5.3 より前のバージョンでは、「extension=php_pdo.dll」を指定する必要があるそうです。さらに、データベース固有のDLLは、上記の指定に引き続いて指定する必要があるそうです。

 

2.PDO インスタンスの作成

 PDOを利用するため、はじめにPDOインスタンスを作成します。

 データベースのDNS、ユーザー、パスワードをPDOクラスのコンストラクタに渡して、PDOインスタンスを作成します。

 PDOインスタンスの作成方法を2種類書きます。データベースのDNS、ユーザー、パスワードは、ご利用環境に合わせてください。

 

1.PHPスクリプトDNSを指定する場合

PHPスクリプト

$dsn = 'mysql:dbname=testdb;host=testhost';
$user = 'testuser';
$password = 'testpass';
$dbh = new PDO($dsn, $user, $password);

 

2.php.iniのエイリアスDNSを指定する場合

php.iniの[PDO]に下の行を追加し保存しました。
pdo.dsn.testdsn="mysql:dbname=testdb;host=testhost"

 

PHPスクリプト

※ $dsnの値は「pdo.dns.xxxxxx="mysql:dbname・・・"」の「xxxxxx」部分となります。

$dsn = 'testdsn';
$user = 'testuser';
$password = 'testpass';
$dbh = new PDO($dsn, $user, $password);

 

php.iniを変更した場合は、phpの再起動が必要です。

$dnsの値を誤って指定すると「invalid data source name」エラーが発生しました。

 

 

 プリペアステートメントの使用については、

PHP Data Object (PDO)でプリペアステートメントを使う 第2回 - プログラミングノート をご覧ください。

 

トランザクションの利用については、PHP Data Object (PDO)でトランザクションを利用する 第3回 - プログラミングノート をご覧ください。

 

 

記事一覧

第1回 PHP Data Object(PDO)拡張モジュールの導入とPDOインスタンスの作成

第2回 PHP Data Object (PDO)でプリペアステートメントを使う

第3回 PHP Data Object(PDO)でトランザクションを利用する

 

参照

PHP: PDO - Manual

MySQL Community Server を Windows8.1 パソコンにインストール

 MySQL Community ServerWindows8.1(64bit)パソコンにインストールしたいと思います。MySQL Community Serverは世界で最も人気のあるオープン・ソース・データベースだそうです。

 MySQL Community Server is the world's most popular open source database.MySQL :: MySQL Community Downloads より引用)

 

手順

1.MySQLのダウンロード

2.MySQLのインストール

3.Windows環境変数に実行ファイル格納ディレクトリのパスを登録

4.MySQLの動作確認

 

1.MySQLのダウンロード

 MySQLには、「commercial」(商業用)と「GPL」(GNU一般公衆ライセンス) の2種類があります。「GPL」(GNU一般公衆ライセンス)のMySQL Community Editionをインストールします。

 

  1. MySQL :: MySQL Community Downloads をクリックします。
  2. MySQL Community Downloads画面の下側にあるMySQL Community Server (GPL)の「Download」リンクをクリックします。
  3. Download MySQL Community Server画面の下側(下の画像1)にあるGenerally Available(GA) Releasesの「Select Platform:」で「Microsoft Windowsを選択し、「Recommended DownLoad:」にある「Windows (x86, 32-bit), MySQL Installer MSI」の「Download」ボタンをクリックします。
  4. Download MySQL Installer画面の下側(下の画像2)にあるWindows (x86, 32-bit), MSI Installer(mysql-installer-community-5.7.17.0.msi)」の「Download」リンクをクリックします。
  5. Begin Your Download画面(下の画像3)にはOracle Web AccountのログインボタンとOracle Web Accountの登録ボタンがあります。Oracle Web Accountの登録やログインをせずにダウンロードをする場合は「No thanks, just start my download.」リンクをクリックします。
  6. msiファイルを開くウィンドウが表示されますので、「ファイルを保存する」をクリックします。

 

画像1 Download MySQL Community Server画面のGenerally Available(GA) Releases表示

f:id:white-lilium:20170130121650j:plain

 

画像2 Download MySQL Installer画面のGenerally Available(GA) Releases表示

f:id:white-lilium:20170130122507j:plain

 

画像3 Begin Your Download画面の表示

f:id:white-lilium:20170130123510j:plain

 

 

 2.MySQLのインストール

最初に、ダウンロードしたmsiファイルをWクリックしインストールを開始します。表示される画面に沿ってインストール手順を書きます。

 

1.License Agreement

 ライセンスに同意する場合、画面下側の「I accept the license terms」にチェックを入れ、「Next」ボタンを押します。

 

2.Choosing a Setup Type

 「Developer Default」「Server only」「Client onry」「Full」「Custom」から選択します。右側のSetup Type Descriptionにセットアップタイプの詳細が表示されます。

 

3.Select Products and Features

左側「Available Products」と右側「Products/Features To Be Installed」間でプロダクトを移動させることにより、プロダクトをインストール対象から追加したり除くことができます。

 

4.Check Requirement

システムがインストールしようとしているプロダクトの必要条件を満たしているかチェックし、必要条件を満たしていない場合のみ表示されます。

どのプロダクトにどのソフトが必要か一覧で表示されます。また、手動でインストールしないといけない場合はソフト名の右横に「manual」と表示されます。ソフト名の右横が空白のソフトは「Execute」ボタンを押すと自動インストールできます。

自動インストールをする時、同意画面が表示されます。同意にチェックを入れ、「Install」ボタンをクリックします。

f:id:white-lilium:20170131101834j:plain

 

5.Installation

インストール対象のプロダクトを確認し「Execute」ボタンをクリックします。インストールが完了したプロダクトには、緑チェックがつきます。すべて完了したら「Next」ボタンを押します。

 

6.Product Configration

ウィザードで構成可能なプロダクトが一覧表示されます。一覧で上に表示されているプロダクトから順に設定します。「Next」ボタンを押します。私の場合「MySQ Server」と「Samples and Examples」が一覧に表示されました。

 

6-1.MySQL Server の構成

6-1-1.Type and Networking

Server Configuration Type(サーバ設定タイプ)で、Config Typeを「Development Machine」「Server Machine」「Dedicated Machine」から選択してください。

Connectivity(サーバへの接続方法)で、接続方法を入力します。

Advanced Configurationで、私は「Show Advanced Options」にチェックを入れませんでした。

入力後「Next」ボタンを押しました。

 

f:id:white-lilium:20170131110837j:plain

 

6-1-2.Accounts and Roles

Root Account Password で、Rootアカウントのパスワードを入力します。

MysSQL User Accountsで、MySQLユーザアカウントを作成できます。(インストール後に作成することもできます。)

入力後「Next」ボタンを押します。

 

6-1-3.Windows Service

Windowsサービスとして構成する場合は「Configure MySQL Service as a Windows Service」にチェックを入れます。

Windwos Service DetailsのWindows Service Nameでは、サービス名を入力します。

システム起動時にMySQLを起動させる場合は「Start the MySQL Server at System Startup」にチェックを入れます。

Run Windows Services as ... では、Windows サービスをどのユーザーアカウントで実行するのか選ぶことができます。

入力後「Next」ボタンを押します。

f:id:white-lilium:20170131111651j:plain

 

6-1-4.Pluging and Extensions

何も入力せずに「Next」ボタンを押しました。

 

6-1-5.Apply Server Configuration

構成を適応するための項目が一覧表示されますので、項目を確認して「Execute」ボタンを押します。完了した項目には緑チェックがつきます。すべて完了したら「finish」ボタンを押します。

Production Configurationに戻ります。設定をしたプロダクトのStatusが「Configuration Complate」に変わります。「Next」ボタンを押します。

設定を完了していないプロダクトが残っていれば、そのプロダクトの設定に進みます。

 

6-2.Samples and Examplesの構成

6-2-1.Connect To Server

互換性を持つサーバーが表示されます。サーバーを選択しそのサーバーの証明情報(root特権が必要)を入力します。

確認のため「check」ボタンを押します。「Connection successful」と表示されたら「Next」ボタンを押します。

 

6-2-2.Apply Server Configuration

構成を適応するための項目が一覧表示されますので、項目を確認して「Execute」ボタンを押します。完了した項目には緑チェックがつきます。すべて完了したら「finish」ボタンを押します。

Production Configurationに戻ります。設定をしたプロダクトのStatusが「Configuration Complate」に変わります。「Next」ボタンを押します。

 

7.Installation Complete

インストールの完了メッセージが表示されます。「Finish」ボタンを押します。

 

 

3.Windows環境変数に実行ファイル格納ディレクトリのパスを登録

Windows環境変数に、MySQL実行ファイル格納ディレクトリへのパスを登録しておくと、Windowsが実行ファイルを探し出すことができます。コマンド入力時に実行ファイルの場所へ移動する必要がありません。

 

  1. Windows8.1の場合)コントロールパネル>システムとセキュリティ>システムを開きます。
  2. 画面左側にある「システムの詳細設定」をクリックします。
  3. 「システムのプロパティ」画面の下方にある「環境変数」ボタンをクリックします。
  4. 環境変数」画面の下方にある「システム環境変数」から「Path」を選択し、「編集」ボタンをクリックします。
  5. 「システム変数の編集」画面で、変数値に、MySQLデフォルトディレクトリの中のbinフォルダへのパス(※)を入力します。別の変数値が登録されている場合は、最後に「;」を追加しその後に入力します。
  6. 「システム変数の編集」画面で「OK」ボタンを押します。
  7. 環境変数」画面で「OK」ボタンを押します。
  8. 「システムのプロパティ」画面で「OK」ボタンを押します。

 ※ MySQL Installer を使用してインストールした場合、MySQLデフォルトディレクトリは 「C:/Program Files/MySQL/MySQL Server 5.7」(バージョン番号はインストールしたバージョンにより異なります)になります。

システム環境変数Pathの編集にはご注意ください。

 

4.MySQL動作確認

MySQL Notifierをインストールした場合のMySQL起動

システムトレイにあるインジケーターにあるMySQL Notifier(イルカのマーク)をクリックすると、起動状況を確認できます。MySQLが停止している場合「MySQL57 - stopped」の右横の三角をクリックしてメニューを開き「start」をクリックすると、MySQLを起動できます。

 

Windowsサービスに設定した場合のMySQL起動

コントロール パネル>システムとセキュリティ>管理ツール>サービスを開きます。MySQL57(インストール時に入力したサービス名)をクリックします。サービスの状態を確認したり変更することができます。

 

  1.  コマンドプロンプトを開きます。
  2. 「mysqlshow -u root -p」コマンドを入力してEnterボタンを押します。(Windows環境変数MySQL実行ファイル格納ディレクトリのパスを登録していない場合は、MySQL実行ファイル格納ディレクトリへ移動してからコマンドを実行します。)
  3. 「Enter password」が表示されたらパスワードを入力します。
  4. データべース一覧が表示されれば、問題ありません。

 

MySQL Installer を使用してインストールした場合は、インストール時に入力したパスワードで root ユーザーが自動的に作成されます。この場合は「-u root 「-p オプションを使う必要があります。

 

 

 参照

MySQL 5.7 リファレンスマニュアル 日本語版が見当たりませんでしたので、MySQL 5.6 リファレンスマニュアル 日本語版も参照しました。

Google APIへの問い合わせ状況と割り当てを確認する方法 第6回

 今回は、APIへの問い合わせ状況(過去のアクティビティ)とAPIへの問い合わせ制限の上限(割り当て)を確認する方法についてです。

 アプリケーションとAPIでやり取りをする場合、APIへの問い合わせ量に制限があります。使用するAPIにより制限内容が異なります。

 Google Calendar APIの場合、APIへの問い合わせ制限は、「1日あたりの問い合わせ回数」と「1ユーザー100秒ごとの問い合わせ回数」です。

 もし、アプリケーションの運用中に状況が変化しAPIへの問い合わせ回数が増加した場合、APIへの問い合わせ状況を確認する必要があります。

 

 最初に、Google APIsのメニューについて書きます。次に、 APIへの問い合わせ状況とAPIへの問い合わせ制限の上限(割り当て)を確認する方法を書きます。

 

Google APIsのメニュー

Google APIs」タイトルの左横にあるメニューボタン(画像1の赤枠で囲んだ部分)をクリックすると、メニュー(画像2)が表示されます。

 

<画像1>Google APIsのメニューボタンの位置

f:id:white-lilium:20170124165425j:plain

 

<画像2>Google APIsのメニュー

f:id:white-lilium:20170124165700j:plain

②をクリックすると、「API Manager」画面を表示します。

③をクリックすると、「IAMと管理」画面を表示します。

 

 

 APIへの問い合わせ状況とAPIへの問い合わせ制限の上限(割り当て)を確認する方法

  1. API コンソール(https://console.developers.google.com/)にアクセスし、Googleアカウントを入力してログインします。
  2. APIコンソールにログイン後、「Google APIs」の下に「API Manager」と表示されます。
  3. (「API Manager」が表示されない場合のみ)Google APIs」のメニューボタン(上記の画像1の①)をクリックしてメニュー開き、「API Manager」(上記の画像2の②)をクリックします。
  4. Google APIs」の右横にあるプロジェクトリストからプロジェクトを選択します。
  5. API Manager画面の左メニューにある「ダッシュボード」をクリックします。
  6. ダッシュボード画面の「有効なAPI」の下方に、有効なAPI一覧(下記の画像3の赤枠で囲んだ部分)がありますので、API名(リンク)を選択してクリックします。
  7. 選択したAPIの画面が表示されます。API名の下にある「割り当て」タブをクリックします。
  • 割り当て画面の「過去のアクティビティ」で、APIへの問い合わせ状況(画像4の①)が表示されます。Google Drive APIの場合、「Queries per day(1日当たりの問い合わせ回数)」が表示されました。

  • 割り当て画面の「過去のアクティビティ」の右横に、APIへの問い合わせ制限の上限(割り当て)(画像4の②)が表示されます。

 

 割り当て画面に表示されているAPIへの問い合わせ制限の上限(割り当て)の右横には「増加をリクエスト」アイコン(鉛筆マーク)があります。割り当て増加のリクエストに関しましては、APIのドキュメントをご確認ください。

 

 API画面で概要タブをクリックすると、概要画面が表示されます。概要画面の「このAPIについて」にある「ドキュメント」リンクをクリックすると、表示中のAPIのドキュメントを見ることができます。

 

 

<画像3>API Managerのダッシュボードの表示

f:id:white-lilium:20170125102427j:plain

 

 

<画像4>APIの割り当ての表示

f:id:white-lilium:20170125103730j:plain

 

 

 

 APIへの問い合わせ制限の上限(割り当て)は、API コンソールの「IAMと管理」でも確認することができます。

  1.  「Google APIs」のメニューボタン(上記の画像1の①)をクリックしてメニュー開き、「IAMと管理」(上記の画像2の③)をクリックします。
  2. IAMと管理画面の左メニューで「割り当て」をクリックします。
  3. 割り当て画面には「割り当てのタイプ」「サービス」「指標」「リージョン」の選択リストがあり、選択した内容でフィルタされ、有効なサービスの割り当てが表示されます。

 

補足

 APIへ問い合わせできるようにする前に、使用するAPIのドキュメントをご確認ください。また、使用するAPIへの問い合わせ制限の上限(割り当て)も確認する方がいいと思います。

 

Google の Cloud Platform Console ヘルプより

Google API の料金について詳しくは、使用するAPIのドキュメントをご覧ください。Google Cloud Platformの料金とGoogle Cloud Platformの無料試用について詳しくは料金体系をご覧ください。」

請求先アカウントの作成、変更、閉鎖 - Cloud Platform Console ヘルプ より引用)

 

 

記事一覧

第1回 Google APIを使用するための設定(プロジェクトの作成・使用するAPIの設定)

第2回 Google APIを使用するための設定(認証情報の登録)

第3回 Google APIを使用するための設定(APIキーの作成)

第4回 Google APIをPHPウェブアプリケーションから呼び出す

第5回 Google APIをPHPウェブアプリケーションから呼び出す(サービスアカウント)

第6回 Google APIへの問い合わせ状況と割り当てを確認する方法

第7回 Google APIをPHPウェブアプリケーションから呼び出す(APIキー)