XdebugをLinux(CentOS6)に入れる。初期設定とかはまったとことか
ソースから入れる方法です。
// 最新のバージョンをダウンロード # wget http://www.xdebug.org/files/xdebug-2.3.3.tgz # tar xzvf xdebug-2.3.3.tgz # cd xdebug-2.3.3/ # phpize # ./configure --enable-xdebug # make # make install
phpizeで以下のようなエラーが発生する場合
Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626 perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "ja_JP.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "ja_JP.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
環境変数を指定あげるとうまくいきます。
# echo ”export LC_ALL=C” >> /root/.bashrc # source /root/.bashrc
make install
が成功すると以下のようなxdebug.soのパスが表示されます。
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20131226/
このパスを元にphp.iniを編集します。
phpinfoを使ってLoaded Configuration File
に指定されているphp.iniのパスを確認します。
もし指定されていなければその上のConfiguration File (php.ini) Path
のパスのディレクトリ以下にphp.iniファイルを作成します。
php.iniに以下を追記します。
;xdebug zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so xdebug.default_enable=1 xdebug.remote_enable=on xdebug.remote_port=9000 xdebug.remote_handler=dbgp xdebug.remote_autostart=1 xdebug.remote_host=localhost xdebug.var_display_max_children = -1 xdebug.var_display_max_data = -1 xdebug.var_display_max_depth = -1
サーバー再起動
# /etc/init.d/httpd restart
phpinfo内にxdebug
で検索して何か入っていたらだいたい成功です。
ブラウザ上でxdebugのオレンジ色のテーブルのエラーが表示されない場合、html_errors
がOffになっているかもしれません。
# vi php.ini html_errors = Off ↓ html_errors = On
Google Spread SheetでworksheetIDの取得
worksheetIDの取得
GASのスプレッドシートの内容を取得するにはスプレッドシートを識別するkeyとシートを識別するworksheetidの2つが必要ですが、worksheetidが単純に取得できません。keyはURLにあるので簡単なのですが。
ここによると以下の処理で取得できるようです。
function gid_to_wid(gid) { var xorval = gid > 31578 ? 474 : 31578; var letter = gid > 31578 ? 'o' : ''; return letter + parseInt((gid ^ xorval)).toString(36); }
gidはシートのURLの末尾に付いている値です。
ubuntuでMySQLの日本語が文字化けしてる
vagrantでubuntuに入ってたMySQLが日本語文字化けしているのでその対応。
boxファイルはこちらを利用しました。
r8/vagrant-lamp
まず現在の文字セットを確認
//mysqlログイン % mysql -u root -p mysql> show variables like "char%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
デフォルトがlatin1
になっています。
my.confを変更
//ubuntuの場合mysqlの設定ファイルは以下です % sudo vi /etc/mysql/my.cnf
各項目に以下を追記していきます。すでに設定項目がある場合はそのままか上書きをします。
[client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8
MySQLを再起動
% sudo /etc/init.d/mysql restart
ubuntuでphpunitの出力でvar_dumpが省略表示される
ubuntuでphpunit内でvar_dump表示すると省略表示されました。
これはまぁXdebugのせいなんですが、php.iniファイルを見に行ってもxdebugに関する項目がない。 というわけでCentOSとちょいと場所が違うようです。
ここにはxdebugの設定が書いていない!
$ sudo vi /etc/php5/apache2/php.ini
こっちにありました。
$ sudo vi /etc/php5/conf.d/xdebug.ini
ファイルの末尾にこれを書き込めばOK
xdebug.var_display_max_children = -1 xdebug.var_display_max_data = -1 xdebug.var_display_max_depth = -1