投稿

1月, 2013の投稿を表示しています

【MySQL】実行したQuery(SQL)をLog出力して監視する設定

イメージ
MySQLに発行するSQLを監視したかったので設定したときの覚書。環境: CentOS 5.9 x86_64, MySQL 5.5.29参考にしたのは下記SiteMySQLでクエリログを出力する方法 - 覚え書き | OSS FanMySQL起動Scriptを編集。「--log」「--general-log」を追加
# vi /etc/rc.d/init.d/mysqld$exec   --datadir="$datadir" --socket="$socketfile" \
        --pid-file="$mypidfile" \
        $MYOPTIONS \
        --basedir=/usr --user=mysql --general-log >/dev/null 2>&1 &
設定cnfを編集
# vi /etc/my.cnf[mysqld]
# output query log
log=/var/log/mysql_query.logログファイルの作成
# touch /var/log/mysql_query.log
# chmod 640 /var/log/mysql_query.log
# chown mysql. /var/log/mysql_query.logMySQL再起動
# /etc/rc.d/init.d/mysqld restart監視開始
# tail -f /var/log/mysql_query.logほっておくとファイル容量が大きくなるので、普段はOFFにしておいた方がいいかも。< 2013/01/31 Modified >
起動ログファイルに下記Warningが出力された。今は「--general-log」を使うらしい。
参考: MySQL :: MySQL 5.5 Reference Manual :: 5.2.1 Selecting General Query and Slow Query Log Output Destinations[Warning] The…

【PHP】Server-SideでGoogle Analyticsを使ったTrackingをする

イメージ
WordPressと連携するiOSアプリ、AndroidアプリをTitaniumを利用して作っている際にGoogle AnalyticsをServer-Sideで使う方法を調査したときの覚書。Mobileアプリから直接Google Analyticsに情報を送信する方法が一般的。今回はアプリ側の負荷軽減 サーバーと通信するアプリなので、サーバー側へのリクエストを解析できれば十分iOSアプリとAndroidアプリ用に処理を分ける必要がない 解析する情報を追加する場合もサーバー側を変更するだけで対応可能 Google Analyticsのデータ制限に引っかかった場合もサーバー側の処理を変更するだけで対応できる。
参考:データ制限 - アナリティクス ヘルプと考えて、サーバーサイドで実装することにした。検索してみるとphp-gaというLibraryを使うと比較的簡単に実装できそう。php-ga - A Powerful Server-Side Google Analytics PHP Client. - Google Project Hostingドキュメントは少ないけど、Usage Exampleとソースコードを読めば分かる。設置の仕方はこんな感じ// Load for Google Analytics module
include(dirname(dirname(__FILE__)) . '/php-ga/src/autoload.php');
use UnitedPrototype\GoogleAnalytics;if (!$url = parse_url(site_url())) {
    return false;
}
// Initilize GA Tracker
$tracker = new GoogleAnalytics\Tracker(TENI_GOOGLE_ANALYTICS_FOR_APP, $url['host']);// Assemble Visitor information
// (could also get unserialized from database)
$visitor = new Google…

PHP 5.4にUpgradeしたらphpThumbのThumbnail表示が失敗する

イメージ
PHP 5.4とWordPressも3.5にUpgradeしたときに、サムネイルが表示されなくなったので調査。環境: CentOS 5.8, nginx 1.2.6, PHP 5.4.10, WordPress 3.5, phpThumb 1.7.11サムネイル表示はphpThumbを使っている。phpThumb.class.phpの614行目の@$ImageOutFunction($this->gdimg_output, '', $this->thumbnailQuality);これを@$ImageOutFunction($this->gdimg_output, null, $this->thumbnailQuality);に変更する。$ImageOutFunctionは「imagejpeg」を動的に生成して実行している。filenameは空文字でなくてnullを指定しないとダメみたい。< Related Posts >CentOSにNginx + php-fpmをInstall、設定してWordPressを動かすNginx+PHP-FPMのTuning設定[Wordpress]既にUpload済みの画像を一括でResizeするPlugin

PHP 5.4にUpgradeしたら、memory_limitの設定でハマった

イメージ
PHPを5.4にUpdateしたら、特定のページだけ処理が途中で止まる現象でハマったときの覚書。環境: CentOS 5.8 x64, nginx 1.2.6, php-fpm 5.4.10, APC 3.1.13各エラーログは下記。# tail /var/log/php-fpm/error.log[18-Jan-2013 14:11:09] WARNING: [pool www] child 19159 exited on signal 11 (SIGSEGV) after 4633.754542 seconds from start
[18-Jan-2013 14:11:09] NOTICE: [pool www] child 23016 started# tail /var/log/nginx/error.log2013/01/18 14:11:09 [error] 19408#0: *39283 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 49.96.40.53, server: hoge.jp, request: "POST /hoge.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "hoge.jp", referrer: https://hoge.jp/# tail /var/log/messagesJan 18 13:49:59 www kernel: php-fpm[21311] general protection rip:5a6a1c rsp:7fffebd20c60 error:0これらのログが言っていることは
「予期せぬエラーでphp-fpmが停止しました」
ということ。社内の開発環境ではこの現象が起きない。。。何かの設定の違いかなとphp.iniを眺めていて、php.iniの
memory_limit = 256M
に対して、APCは
apc.shm_size=512M
になっていたので、memory_limit = 512M
に変更してみると。。。直ったっ…

i386とx86_64の環境で競合が発生。i386のModuleを削除

イメージ
yum updateするときに下記Errorが発生。Transaction Check Error:
  file /usr/share/man/man1/curl.1.gz from install of curl-7.21.7-5.el5.remi.2.x86_64 conflicts with file from package curl-7.15.5-15.el5.i386i386とx86_64のモジュールで競合が発生しているみたい。環境: CentOS 5.8 x64, nginx 1.2.6, php 5.4.10i386系のLibraryを削除するとupdateできるようになった
# yum remove glibc.i686
# yum updateかなりの数のLibraryが削除されるので事前に別環境で確認した方がいい。参考SiteEnglish : FAQ - Les RPM de Remi - Blog
Conflict between i386 and x86_64 packages ? < Related Posts >CentOSにNginx + php-fpmをInstall、設定してWordPressを動かす

WordPressのTop PageがRedirect Loopし続ける

イメージ
なぜか突然WordPressのトップページだけが下記Errorで表示できない。This webpage has a redirect loop (301)環境: nginx 1.2.6, php-fpm 5.4.10, WordPress 3.5fastcgiのCacheを削除したら正常に表示できるようになった。# rm -rf /var/cache/nginx/fastcgi_temp/cache/*Redirect Loopした瞬間をキャッシュしてしまったみたい。表示できないくなった時間帯にDNSの変更してたみたいだけど、これが原因かは謎。< Related Posts >Nginx+PHP-FPMのTuning設定

Singaporeの銀行(DBS)から日本の銀行(MUFG)に送金

イメージ
円安なのでDBS iBankingから東京三菱UFJ(MUFG)に送金してみたときの覚書。海外送金はDBS iBankingにLoginして左の
Funds Transfer(Overseas) → Add Payee and Send Money Overseas
から。「Recipient」で「NEW RECIPIENT」を選択して受取人情報、送金する銀行情報を入れていく。Recipient's Name:
受取人の名前。送金する口座名義人のローマ字入力Recipients Address:
送金する口座に登録してある住所SWIFT Code:
金融機関識別コード。日本の金融機関のSWIFTコード一覧 - Wikipedia
11桁で入力する必要があるので、東京三菱UFJの場合は「BOTKJPJTXXX」Clearing Code:
未入力でokRecipient's Account Number:
支店番号と口座番号。ハイフンなしの連番で大丈夫だった。Which account to pay from?:
自分のDBSの口座を選択Currency:
「JPY Japanese Yen」Amount:
「JPY Japanese Yen」を選択したなら日本円で入力Agent Bank Charges:
「Charge to you」 → 手数料は送金側の負担(受取側に手数料が発生しない)。
MUFGに電話して確認したときは受け取る際に手数料で4000円ぐらい取られると言われたけど、実際DBS側に手数料S$30(約2000円)払っただけで済んだ。Payment Details of Recipient(if any):
未入力でok「submit」すると登録した携帯にSMSでOTP(One Time Password)が送らてくるので、それを入力して完了。だいたい2営業日で入金が完了する。もしOTP用に携帯を登録してない場合は近くの(Singaporeの)ATMで登録可能。詳しくはこちら。DBS Singapore | Personal Banking< Related Posts >Singaporeで所得税(Tax)をDBS iBankingから支払うDBSに口座を作ったらiBankingに登録して便利に使う