投稿

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

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

イメージ
MySQLに発行するSQLを監視したかったので設定したときの覚書。 環境: CentOS 5.9 x86_64, MySQL 5.5.29 参考にしたのは下記Site MySQLでクエリログを出力する方法 - 覚え書き | OSS Fan   MySQL起動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.log MySQL再起動 # /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

【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 // (

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.log 2013/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/messages Jan 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_li

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.i386 i386とx86_64のモジュールで競合が発生しているみたい。 環境: CentOS 5.8 x64, nginx 1.2.6, php 5.4.10 i386系のLibraryを削除するとupdateできるようになった # yum remove glibc.i686 # yum update かなりの数のLibraryが削除されるので事前に別環境で確認した方がいい。   参考Site English : 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.5 fastcgiの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: 未入力でok Recipient'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 Singapo