ionCubeとXdebugの読み込み順ではまる(VPSその8)

開発の終了が発表されても依然として使用しているフレッシュリーダー。 いずれGoogleリーダーにでも引っ越そうかなと考えてはいるのですけど、 設定の引き継ぎが面倒なのでなんとなく躊躇。 VPSへの引っ越しもタイミングだったかなとは思ったんですが、まぁ面倒だったので今回も結局継続使用します。 フレッシュリーダー自体は丸ごとrsyncでコピーすればOK。 データもライブラリもそれで問題ない。 (環境がLinux→Windowsとか、PHP4→PHP5とかでない限り) 以下、ハマリどころを中心にそれ以降の設定について。

続きを読む

MRTGを使ってLoad Averageのグラフ化(VPSその7)

いくつかあるブログ/サービスを1つのサーバにいくつ入れるか?で悩んでいたのだけど見当が付かないので、 とりあえず軽そうなものから順番に入れていき、都度、Load Averageのデータを取っていくことに。 割り切ってブログ/サービスごとにサーバを分ければ楽になるけどその分コストが嵩むことになるし、 全部を1つにまとめられれば便利だけどそれで負荷が掛かりすぎたら意味無いし。 というわけでサーバ監視システムを導入。 もっと多機能なものは他にもいくつかあったけど、入れやすさと軽さでMRTGを入れてみた。 参考にしたのはこちら。 MRTG で Load Average をグラフ化する まぁ大体、書いてあるとおりにやればOK。

  1. yumでインストール
  2. 各種設定
で、こんな感じになると。 んー…大体0.1前後か。まだ全然余裕あるなぁ。 (負荷が掛かっている部分は、Apacheの設定をあれこれいじってたところ) メインブログと、それ以外で分けたら十分かも知れない。 というかそもそもブログって負荷小さいんだよな、きっと。

続きを読む

さくらのVPSにAPCを入れる(VPSその6)

それほど負荷を掛けているわけではないのでまだパフォーマンスを気にするレベルにはありませんが、 出来ることはやっておこうかと言うことでPHPアクセラレータをインストール。 eAcceleratorを試そうかなーと一瞬考えもしたけど、まぁインストール簡単なのを、ということでAPCを選択。 PHP: APC – Manual

続きを読む

iptablesを設定した(VPSその5)

はてなブックマークで上位に来ていたこちらを参考に、iptablesを設定しました。 これぐらいやっとけ ~Linuxサーバのセキュリティ設定~ – nabeの雑記帳 恥ずかしながら何もやっていなかったので。 (iptablesでどういう事が出来るのかも知らなかった) 処理手順は設定のための処理を書いたシェルスクリプト(iptables-init.sh)を用意し、 それを実行して設定を反映、その上で設定をファイルに書き出して再起動しても適用されるように。 そんな感じ。

続きを読む

sshfsでマウントした領域に書き込めないとき(VPSその4)

前回

さくらVPSにもう1台のさくらVPSをマウントする(VPSその2) – nplll

構成

  • vps1 … ブログの公開領域
  • vps2 … mt.cgi + MySQL
前回、VPSその1のディレクトリをVPSその2にマウントすることが出来たのだけど、MySQLデータのインポートを行って実際に再構築を掛けてみたらばファイルが作成できないというエラーが出た。該当ディレクトリのパーミッションを試しに777にしてみたらばそのファイルについては作成できたのだけど、関連する全てのディレクトリのパーミッションを777にするわけには行かないし、新規作成ディレクトリは777では作成されない。要するにそんな誤魔化しじゃなくて、もうちょっとちゃんとパーミッションを調整しなくてはいけない。 最初、マウントポイントの権限の問題(マウントポイントの所有者はrootになる)かなと思ったけど、 そうではなくオプションを付ければいいらしい。 参考にしたのはこちら。
注意: まだ確認ができていないが、Subversionリポジトリのバックアップにおいて、マウント先に生成した一時ファイルのリネームが行われるらしい。 上記の方法でsshfsを起動すると既存ファイルのリネームができないため、「許可されない操作」とか「ファイルシステムエラー」というエラーが起こる。
 
書かれているのはSubversionに関することで僕の問題とは違うけれども、 エラーの状況から見てそれが起こる理由は同じように思えたので試してみたら上手く行った。 実行コードはこうなった。
$ sshfs -p SSHポート番号 ユーザー名@サーバ:ディレクトリ マウントポイント -o workaround=rename
ちなみに、マウントしたディレクトリは扱いやすいところにシンボリックリンクを貼って適当にやると思うんだけど、そのディレクトリ構成がマウント元のディレクトリ構成と異なるとmt:Includeで嵌るので注意。 (そんなことやってる人いないだろうから注意も何もないけど)
こう書き出される↓
本当はこう書き出されて欲しい↓
まぁ、自分自身が存在しているサーバで使用することを前提に書き出してるんだから当たり前なんだけどね。 mt:Includeを使わないようにすることも考えたけど、様々な利便性を考えた上で、 マウント元でシンボリックリンク貼ることで対応した。 とりあえず何とかなってるっぽい。

続きを読む

さくらVPSにもう1台のさくらVPSをマウントする(VPSその2)

前回設定したサーバは元気に稼働しております。サイトは現在はてなで運営中の1日1ニコの移転先。 まだβ状態で、更新はされているものの特に公開していない(5/1から移転の予定)ので、 それほど負荷は掛かっていなくて多くて1日100PVくらい。 おかげで今のところは表も裏も超快適ですがこれでどの辺まで捌けるかは良くわかんないですね。 Apacheの設定はほぼデフォルトなので徐々にチューニングしていきたいと思いますが。 …で、表題の件。 何となく思いついて試したら上手くいったのでメモを。 別に両方さくらVPSである必要性は全くないんですが、手元に環境があるので。

手順

  1. 外部のディレクトリをマウントするサーバの設定
  2. sshfsのインストール
  3. fuseグループに使用するユーザーを追加
  4. マウントするディレクトリを作成
  5. マウント
  6. ファイルが作成できることを確認
  7. アンマウント
※ サーバ起動時に自動マウントするのはなぜか上手く行かなかったので保留。 以下、簡単に説明を。

続きを読む

InnoDBでのINSERT IGNOREとAUTO_INCREMENT

InnoDBでINSERT IGNOREを繰り返してたら、レコード数は増えてないのに、 AUTO_INCREMENTだけがガンガン増えててびっくり。おかげでidの値が飛んでる。 なんなんだろうと思ったらこれ、MySQL 5.1.22以降の仕様なんですね。 以下、マニュアルから引用。強調はおいら。

簡単に言えば、このロックモードの重要な効果は、スケーラビリティーの大幅な向上です。このモードは、ステートメントベースのレプリケーションで使用しても安全です。さらに、「従来」 ロックモードの場合と同じく、任意のステートメントによって割り当てられた自動インクリメント番号が「連続」した値になります。このモードでは 「従来」 モードと比較して、ある重要な例外を除けば、自動インクリメントを使用する任意のステートメントでの意味上の「違い」はありません。 その例外とは、ユーザーが複数行 「単純挿入」 の全部ではなく一部の行で AUTO_INCREMENT カラムの明示的な値を提供する 「混在モード挿入」 の場合です。そのような挿入では、InnoDB は挿入行数よりも多くの自動インクリメント値を割り当てます。ただし、自動的に割り当てられる値はすべて連続的に生成されるため、直前に実行されたステートメントによって生成された自動インクリメント値よりも値が大きくなります。「余分」 な番号は失われます。 INSERT … ON DUPLICATE KEY UPDATE を使用する場合にも似たような状況になります。このステートメントも 「混在モード挿入」 として分類されていますが、これは、自動インクリメント値が必ずしもすべての行で生成されないからです。
 
なるほど。

続きを読む