ブログ

  • 【.htaccess】PHPのエラー設定の覚書【ini_set】

    CORESERVERでのPHPのエラー設定の覚書です。

    レンタルサーバーであり、かつ、共用サーバーなので、php.iniの編集はできません。.htaccessファイルでの設定か、あるいは、ini_set()関数での設定になります。

    (もっとも、CORESERVERでは、自作のphp.iniを特定のディレクトリに置くことで使用できますが、その下のサブディレクトリにはphp.iniの効果が及ばないようです。)

    ■ まずは、.htaccessの設定から。

    ・エラー出力レベル設定(初期値6135)

    php_value error_reporting 6143
    php_value error_reporting 8191

    これは作用します。(phpinfo反映される)
    E_ALLは6134。すべてのエラーを出力(E_STRICT以外)。
    E_ALL | E_STRICT は8191 すべてのエラーを出力。

    ・エラー表示設定(初期値on)

    php_value display_errors off
    php_value display_errors on

    これは作用します。(phpinfo反映される)
    エラー表示のオン・オフを切り替えます。

    ・エラーログ記録設定(初期値off)

    php_value log_errors off
    php_value log_errors on

    これは作用します。(phpinfo反映される)
    エラーログ記録のオン・オフを切り替えます。

    ・エラー出力ファイル設定(初期値no value)

    php_value error_log 'php_error.log'

    任意のファイルを設定。
    これは作用しない。(phpinfo反映されない)
    エラーの出力ができない。原因不明。
    PHP_INI_ALLなので変更できるはずなのだが。

    ■ 次に、ini_set()関数での設定。

    上記.htaccessの設定を無効にして、今度は、実行時のファイルにini_set()関数で設定をしてみます。

    //エラーログ設定
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 'Off');
    ini_set('log_errors', 'On');
    ini_set('error_log','php_error.log');

    エラーログを取りたいのでログ関連をまとめて設定。エラーログの出力(取得)に成功。

    ini_setでエラーログを指定するとログを取得できるのだが、.htaccessでの指定だとログを取得できない。原因を特定できたら報告します。

    追記: 一応推測ですが、CORESERVERで、.htaccessでエラーログを記録できないのは、CGIモードで動かしている場合(php5.3)のようです。つまり、モジュールモードでapacheがphpを作動させる場合(php5.2)、.htaccessのphpの設定を読み取るのですが、cgiモードだと、それができずphpの設定を(一部)読み込まないようです。

    関連記事
    http://webmaster.chielog.com/php/123.html

  • 【書評】サンプルで覚えるMySQL

    サンプルで覚えるMYSQL
     五十嵐貴之(著)の書評です。

    良い点

    • 基礎のSQLを一通り学べる
    • サンプルが定型的で学習効率が良い
    • 環境構築に詳しい(XAMPP、phpMyAdminなど)

    悪い点

    • 誤植が少し残っている
    • セキュリティが若干甘い

    総評

    『これならわかる SQL入門の入門』の著者である五十嵐氏の著書です。

    『これなら・・・』に比べて、サンプル主体のリファレンス本的な作りになっています。ですので、SQLの入門的解説を期待する人は、『これなら・・・』本から読むことをお勧めします。

    さて、こちらの『サンプルで覚えるMySQL』ですが、環境構築としてXAMPPを採用していて、言語はPHPを採用しています。データベース接続には、PDOを用いるスタイルで一貫しています。というか、ほぼ、定型的なPDOの文言に、基礎から応用までのSQL文を差し込んで解説するスタイルになっています。

    本の構成としては、1.SQL文の解説、2.構文・SQL、3.プログラムサンプルという順に個々のSQLが解説されていきます。

    SQL文としては、CRUDはもちろん結合まで一通り解説されています。

    しかし、トリガー、トランザクション、ストアドプロシージャーなどは、紙面の都合か、用語の解説だけにとどまり、サンプルがありません。せめて、トランザクションくらいはサンプルをつけて欲しいところでした。

    最後には、郵便番号辞書の作り方、画像アップロードの簡易アプリもあります。

    学習効率が良い本なので、短時間でSQLの復習をしたい人にお勧めの一冊です。

    本の色は、オレンジと黒の二色刷りです。

    サンプルで覚えるMYSQL

  • 【書評】いきなりはじめるPHP

    いきなりはじめるPHP
     谷藤賢一(著)の書評です。

    良い点

    • 読者対象を超初心者に絞っている
    • 動くアプリを体感できる
    • とりあえず作ってみる方式
    • データベース・SQLまで扱っている

    悪い点

    • 文法の解説が少ない
    • おまじないで済ませる箇所がある

    総評

    プログラミング初心者向けの、かなりやさしい部類のPHP入門書です。全くの初心者向けといってよいレベルに仕上がってます。

    XAMPPの導入や簡単なHTMLの解説からはじまりPHPの基礎と、データベース(PDO)やSQLなどまでが扱われています。

    サンプルアプリとしては、簡易アンケートシステムを作ります。

    ただし、本の方針として、取り合えず作ってみる方式が採用されているので、文法の解説は、少なめです。配列やクッキー、セッションなどはほとんど扱われていません。

    これからプログラミングを始める人が、動くプログラムを体験することに主眼が置かれているので、文法やセキュリティについては、別に勉強する必要があります。

    難しい文法は嫌い、とにかくアプリ作りから始めたいという人には、適している本だといえます。

    ある程度、PHPの知識のある人だと、2時間ほどで読了できます。ちなみに、緑と黒の二色刷りです。

    いきなりはじめるPHP

  • 【MySQL】自動コミット機能のオンオフの確認

    オートコミット機能のオンオフの確認方法の覚書です。

    SELECT @@AUTOCOMMIT ;

    上記、SQLを打ってみて、結果が、1ならばオン、0ならばオフの状態です。

    ちなみに、オートコミットをオンにするには、下のSQLを打ちます。

    SET AUTOCOMMIT=1;

    逆に、オフにするには、下のSQLを打ちます。

    SET AUTOCOMMIT=0;
  • 【書評】アフィリエイターのための Web APIプログラミング入門

    アフィリエイターのための Web APIプログラミング入門
     脇村隆(著)の書評です。

    良い点

    • 綺麗なパステル系フルカラーで見やすい
    • 見開き2ページで1項目完結
    • 実践的なAPIを学べる
    • XMLの取扱いに慣れられる

    悪い点

    • やや説明不足の点もあり
    • 後半は若干かけ足な説明

    総評

    API初心者にも、わかりやすく解説されており、なかなかの満足できる内容です。

    言語としてはPHPが採用されており、PHP自体の解説も軽くされています。ただ、PHPの解説としては薄いので各自でそれなりの学習は必要です。

    この本で扱われる主なAPIは、リンクシェア、楽天API、グーグルマップです。これらを組み合わせて、最終的には、マッシュアップサイト(トラベルサイト、ショッピングサイト)を作るレベルまで学習できます。この点は、とてもためになります。

    レベル的には、本の前半は、かなり簡単ですが、後半にかけて少しずつ難しくなってきます。本を読むだけでなく実際に手を動かしながら読み進めると理解が深まる内容です。

    最後には、APIを利用したサイトが紹介されているので、こちらも参考になりました。

    アフィリエイターのための Web APIプログラミング入門