<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[ヘプタゴンの技術ブログ]]></title>
  <link href="http://blog.heptagon.co.jp/atom.xml" rel="self"/>
  <link href="http://blog.heptagon.co.jp/"/>
  <updated>2014-10-31T18:25:24+09:00</updated>
  <id>http://blog.heptagon.co.jp/</id>
  <author>
    <name><![CDATA[heptagon staff]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[curlでSSLのエラー出るのは時間がズレてたせいだった]]></title>
    <link href="http://blog.heptagon.co.jp/archives/359"/>
    <updated>2014-09-24T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/curl%e3%81%a7ssl%e3%81%ae%e3%82%a8%e3%83%a9%e3%83%bc%e5%87%ba%e3%82%8b%e3%81%ae%e3%81%af%e6%99%82%e9%96%93%e3%81%8c%e3%82%ba%e3%83%ac%e3%81%a6%e3%81%9f%e3%81%9b%e3%81%84%e3%81%a0%e3%81%a3%e3%81%9f</id>
    <content type="html"><![CDATA[<p>何気なくcurlコマンドでhttps接続してみたらエラー出ました。<br/>
(今回はchefインストールしようしてた)</p>

<pre><code># curl -L https://www.opscode.com/chef/install.sh | bash

curl: (60) Peer certificate cannot be authenticated with known CA certificates
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
</code></pre>

<p>手元のPCから<code>https://www.opscode.com/chef/install.sh</code>にアクセスしても問題なくダウンロードされます。<br/>
これはサーバーが悪い！ということで調べてたら時間が圧倒的にズレていることに気がつきました。</p>

<pre><code># date
2008年  1月 29日 火曜日 00:56:16 JST
</code></pre>

<p>むむむ、と思い即修正。<br/>
んで再度試したらエラーもなく無事chefインストールできました！</p>

<pre><code># ntpdate ntp.nict.jp
# date
2014年  9月 24日 水曜日 14:24:10 JST


# curl -L https://www.opscode.com/chef/install.sh | bash
downloading https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-11.16.2-1.el6.x86_64.rpm
  to file /tmp/install.sh.11408/chef-11.16.2-1.el6.x86_64.rpm
Installing Chef
installing with rpm...
警告: /tmp/install.sh.11408/chef-11.16.2-1.el6.x86_64.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
準備中...                ########################################### [100%]
   1:chef                   ########################################### [100%]
Thank you for installing Chef!
</code></pre>

<p>OS入れたてのサーバーだと、意外と遭遇するかもしれません。。<br/>
時間ズレてると思わぬところでハマるので気をつけましょう〜〜！</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Postgresql on RDSでスロークエリを表示]]></title>
    <link href="http://blog.heptagon.co.jp/archives/353"/>
    <updated>2014-09-22T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/postgresql-on-rds%e3%81%a7%e3%82%b9%e3%83%ad%e3%83%bc%e3%82%af%e3%82%a8%e3%83%aa%e3%82%92%e8%a1%a8%e7%a4%ba</id>
    <content type="html"><![CDATA[<p>実行に時間がかかっているクエリを見つけてそれを改善する事で、システムのパフォーマンス向上が見込まれます。</p>

<p>postgresqlではスロークエリを表示する設定を行うことができます。</p>

<p>自分でpostgresqlサーバーを構築する場合は、<br/>
postgresql.confのlog_min_duration_statementで設定を行いますが、<br/>
RDSでは、DB Parameter Groupsから設定を行います。<br/>
スロークエリを表示したいサーバのDB Parameter Groupsを選択して設定を行います。</p>

<div id="attachment_354" style="width: 1441px" class="wp-caption alignnone">
  <a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/09/スクリーンショット-2014-09-21-23.55.13.png"><img src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/09/スクリーンショット-2014-09-21-23.55.13.png" alt="RDSでslow query" width="1431" height="501" class="size-full wp-image-354" /></a><p class="wp-caption-text">
    RDSでslow query
  </p>
</div>


<p>log_min_duration_statementの項目にクエリを表示させる閾値を設定します。<br/>
単位はミリ秒となります。<br/>
設定後、Save Changesをクリックするとインスタンスの再起動なく設定が反映されます。</p>

<p>これでクエリの実行時間が設定した値を越えた場合にログに書き出されるようになります。<br/>
書き出されたログは、対象のRDSインスタンスのLogsから閲覧/ダウンロードできます。</p>

<p>これでクソクエリをあぶり出しましょう！</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[zabbix2.2.3でシンプルチェックキューだけが溜まる現象あったけど、zabbix2.2.4にアップデートしたら直った]]></title>
    <link href="http://blog.heptagon.co.jp/archives/343"/>
    <updated>2014-06-27T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/zabbix2-2-3%e3%81%a7%e3%82%b7%e3%83%b3%e3%83%97%e3%83%ab%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%ad%e3%83%a5%e3%83%bc%e3%81%a0%e3%81%91%e3%81%8c%e6%ba%9c%e3%81%be%e3%82%8b%e7%8f%be%e8%b1%a1%e3%81%82</id>
    <content type="html"><![CDATA[<p>タイトル通りです！</p>

<blockquote class="twitter-tweet" width="550">
  <p>
    zabbix2.2.3のserver+proxy環境で謎のシンプルチェックキューだけが溜まる現象あったんだけど、 <a href="http://t.co/pdVVodvCb3">pic.twitter.com/pdVVodvCb3</a>
  </p>
  
  <p>
    &mdash; 洋@もう黒髪とは呼べない (@youyo_) <a href="https://twitter.com/youyo_/statuses/482326786072510464">June 27, 2014</a>
  </p>
</blockquote>




<blockquote class="twitter-tweet" width="550">
  <p>
    zabbix2.2.4のアップデートしたら改善された。同様の現象にお悩みの方がいたらお試しあれ。 <a href="http://t.co/9wQ1RryKzq">pic.twitter.com/9wQ1RryKzq</a>
  </p>
  
  <p>
    &mdash; 洋@もう黒髪とは呼べない (@youyo_) <a href="https://twitter.com/youyo_/statuses/482326961729974272">June 27, 2014</a>
  </p>
</blockquote>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[RDSのマスターパスワードを忘れた場合の対処法]]></title>
    <link href="http://blog.heptagon.co.jp/archives/339"/>
    <updated>2014-06-19T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/rds%e3%81%ae%e3%83%9e%e3%82%b9%e3%82%bf%e3%83%bc%e3%83%91%e3%82%b9%e3%83%af%e3%83%bc%e3%83%89%e3%82%92%e5%bf%98%e3%82%8c%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e5%af%be%e5%87%a6%e6%b3%95</id>
    <content type="html"><![CDATA[<p>AWS RDSのマスターパスワードを忘れてしまって困った時の対処方法です。</p>

<p>aws-cliを使えば、マスターパスワードが変更できます。<br/>
aws-cli1.2.5以降で試しました。（おそらくそれ以前でも大丈夫なはず。）</p>

<p>aws rds modify-db-instance &#8211;db-instance-identifier [dbname] &#8211;master-user-password　[新password]</p>

<dl>
<dt>成功すれば、RDSの状態が帰ってきます。  </dt>
<dt>&#8212;&#8212;&#8212;&#8212;&#8211;  </dt>
<dt>{  </dt>
<dt>&#8220;DBInstance&#8221;: {  </dt>
<dt>&#8220;PubliclyAccessible&#8221;: true,  </dt>
<dd></dd>
<dd></dd>
<dt>&#8220;PendingModifiedValues&#8221;: {  </dt>
<dt>&#8220;MasterUserPassword&#8221;: &#8220;****&#8221;  </dt>
<dt>},  </dt>
<dd></dd>
<dd><p>&#8220;DBInstanceIdentifier&#8221;: &#8220;dbname&#8221;<br/>
}<br/>
}</p></dd>
</dl>

<p>&#8212;&#8212;&#8212;&#8212;&#8211;</p>

<p>これで、新パスワードで接続できるようになります。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[s3fsでReduced Redundancy Storageを使う]]></title>
    <link href="http://blog.heptagon.co.jp/archives/334"/>
    <updated>2014-06-18T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/s3fs%e3%81%a7reduced-redundancy-storage%e3%82%92%e4%bd%bf%e3%81%86</id>
    <content type="html"><![CDATA[<p>S3をファイルシステムとしてマウントできるs3fsを設定します。<br/>
環境はCentOS6 on EC2です。</p>

<p>まずは、fuseのインストール。<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br/>
yum remove fuse fuse* fuse-devel<br/>
yum install gcc libstdc++-devel gcc-c++ curl curl* curl-devel libxml2 libxml2* libxml2-devel openssl-devel mailcap</p>

<p>cd /usr/local/src<br/>
wget <a href="http://sourceforge.net/projects/fuse/files/latest/download?source=files  ">http://sourceforge.net/projects/fuse/files/latest/download?source=files  </a>
tar zxvf download\?source\=files<br/>
cd fuse-2.9.3/<br/>
./configure prefix=/usr<br/>
make<br/>
make install<br/>
ldconfig<br/>
modprobe fuse<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>

<p>次にs3fsのインストール。</p>

<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br/>
cd /usr/local/src<br/>
wget <a href="https://s3fs.googlecode.com/files/s3fs-1.72.tar.gz  ">https://s3fs.googlecode.com/files/s3fs-1.72.tar.gz  </a>
tar -xzvf s3fs-1.72.tar.gz<br/>
rm s3fs-1.72.tar.gz<br/>
cd s3fs-1.72<br/>
export PKG_CONFIG_PATH=/usr/lib/pkgconfig<br/>
./configure &#8211;prefix=/usr<br/>
make<br/>
make install<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>

<p>IAMの設定をします。<br/>
IAMポリシーはこんなかんじで。<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;-<br/>
{<br/>
&#8220;Version&#8221;: &#8220;2012-10-17&#8243;,<br/>
&#8220;Statement&#8221;: [<br/>
{<br/>
&ldquo;Effect&rdquo;: &ldquo;Allow&rdquo;,<br/>
&ldquo;Action&rdquo;: &ldquo;s3:<em>&rdquo;,<br/>
&ldquo;Resource&rdquo;: [<br/>
&ldquo;arn:aws:s3:::バケット名&rdquo;,<br/>
&ldquo;arn:aws:s3:::バケット名/</em>&rdquo;<br/>
]<br/>
}<br/>
]<br/>
}<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>

<p>バケットに接続できるように設定します。</p>

<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br/>
vi /etc/passwd-s3fs<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br/>
アクセスキー:シークレットキー<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>

<p>chmod 600 /etc/passwd-s3fs<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>

<p>マウントしてみます。<br/>
use_rrs=1オプションを付ける事で、Reduced Redundancy Storage（低冗長化ストレージ）を使う事ができます。</p>

<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br/>
s3fs バケット名 /mnt -o rw,allow_other,use_rrs=1<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>

<p>OS起動時に自動でマウントするように設定をします。</p>

<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br/>
umount /mnt</p>

<p>vi /etc/rc.d/rc.sysinit<br/>
&#8212;&#8212;&#8212;-<br/>
. /etc/init.d/functions<br/>
modprobe fuse<br/>
&#8212;&#8212;&#8212;-</p>

<p>vi /etc/rc.d/rc.local<br/>
&#8212;&#8212;&#8212;&#8211;<br/>
umount /var/www/html/public_html/upload/<br/>
s3fs バケット名 /mnt -o rw,allow_other,use_rrs=1<br/>
&#8212;&#8212;&#8212;-</p>

<p>reboot<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>

<p>fstabに記載する方法もあるようですが、起動時にマウントできない場合があったので、<br/>
rc.localでマウントするように設定しました。<br/>
（停止時にうまくアンマウントできないとだめ？）</p>

<p>うまくマウントできるとこんな感じで見えます。</p>

<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br/>
df -h<br/>
Filesystem Size Used Avail Use% Mounted on<br/>
/dev/xvde 7.9G 1.6G 6.0G 21% /<br/>
tmpfs 296M 0 296M 0% /dev/shm<br/>
s3fs 256T 0 256T 0% /mnt<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>

<p>IOのパフォーマンスはあまり期待できないので、用途は考える必要がありそうですね。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Pop2imapでsshログインせずにメールボックスを移設する方法]]></title>
    <link href="http://blog.heptagon.co.jp/archives/321"/>
    <updated>2014-05-01T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/pop2imap%e3%81%a7ssh%e3%83%ad%e3%82%b0%e3%82%a4%e3%83%b3%e3%81%9b%e3%81%9a%e3%81%ab%e3%83%a1%e3%83%bc%e3%83%ab%e3%83%9c%e3%83%83%e3%82%af%e3%82%b9%e3%82%92%e7%a7%bb%e8%a8%ad%e3%81%99%e3%82%8b%e6%96%b9</id>
    <content type="html"><![CDATA[<p>メールボックスの移設をする際に<br/>
移設元が共用サーバなど理由のためsshログインできない場合に<br/>
popとimapを利用してメールを移設するツールが「pop2imap」です。</p>

<p>仕組みは単純で、<br/>
移設元にpop3でログインしてメールをダウンロードして、<br/>
そのメールを移設元にimap4でアップロードすることで、<br/>
メールボックスを移設することができます。</p>

<p>pop2imapの中身はperlで、<br/>
事前にMail::IMAPClientやMail::POP3Client、Email::Simple、Date::Manipのインストールが必要です。<br/>
パッケージでインストールしたい場合は、epelリポジトリに含まれています。</p>

<p>&nbsp;</p>

<p>perlモジュールの準備ができたらダウンロードして、展開します。</p>

<p>wget <a href="http://www.linux-france.org/prj/pop2imap/dist/pop2imap-1.21.tgz  ">http://www.linux-france.org/prj/pop2imap/dist/pop2imap-1.21.tgz  </a>
tar zxvf pop2imap-1.21.tgz<br/>
cd pop2imap-1.21</p>

<p>make install<br/>
でエラーが出なければインストール完了です。</p>

<p>使い方は以下の通りです。<br/>
pop2imap &#8211;host1 before.hoge.jp &#8211;user1 <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#x3a;&#116;&#97;&#99;&#x68;&#105;&#x62;&#x61;&#x6e;&#97;&#64;&#x68;&#x6f;&#x67;&#x65;&#46;&#106;&#x70;">&#116;&#97;&#99;&#104;&#105;&#98;&#x61;&#110;&#97;&#x40;&#x68;&#x6f;&#103;&#101;&#x2e;&#106;&#x70;</a> &#8211;password1 before_passwd &#8211;host2 after.hoge.jp &#8211;user2 <a href="&#109;&#x61;&#105;&#108;&#116;&#111;&#58;&#116;&#97;&#x63;&#x68;&#105;&#x62;&#97;&#110;&#97;&#x40;&#104;&#111;&#x67;&#101;&#x2e;&#106;&#x70;">&#116;&#x61;&#x63;&#104;&#105;&#98;&#x61;&#110;&#x61;&#x40;&#104;&#x6f;&#103;&#101;&#x2e;&#106;&#x70;</a> &#8211;password2 after_passwd</p>

<p>移設元のpopサーバや接続情報と移設先のimapサーバと接続情報を指定するだけで、<br/>
メールの移設が開始されます。</p>

<dl>
<dt>&#8212;&#8212;&#8212;&#8211;  </dt>
<dt>From pop3 server [before.hoge.jp] port [110] user [<a href="&#109;&#97;&#x69;&#x6c;&#116;&#x6f;&#58;&#116;&#x61;&#x63;&#104;&#105;&#x62;&#97;&#110;&#97;&#x40;&#x68;&#111;&#x67;&#101;&#x2e;&#106;&#112;">&#x74;&#97;&#99;&#104;&#x69;&#98;&#x61;&#110;&#97;&#64;&#x68;&#111;&#x67;&#x65;&#46;&#x6a;&#112;</a>]  </dt>
<dt>To imap server [after.hoge.jp] port [143] user [<a href="&#x6d;&#x61;&#105;&#x6c;&#116;&#111;&#58;&#x74;&#x61;&#99;&#x68;&#105;&#98;&#x61;&#x6e;&#97;&#x40;&#x68;&#111;&#x67;&#x65;&#46;&#x6a;&#x70;">&#x74;&#x61;&#x63;&#104;&#105;&#98;&#97;&#x6e;&#x61;&#64;&#104;&#x6f;&#x67;&#101;&#46;&#106;&#112;</a>]  </dt>
<dt>TimeZone :[etc/gmt]  </dt>
<dt>Looking POP messages  </dt>
<dt>Found [8] pop messages  </dt>
<dd></dd>
<dd><p>&#8212;&#8212;&#8212;&#8211;</p></dd>
</dl>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Zabbixとpg_monzで認証ありのpostgresqlを詳細監視]]></title>
    <link href="http://blog.heptagon.co.jp/archives/312"/>
    <updated>2014-04-03T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/zabbixpg_monz%e3%81%a7%e8%aa%8d%e8%a8%bc%e3%81%82%e3%82%8a%e3%81%aepostgresql%e3%82%92%e8%a9%b3%e7%b4%b0%e7%9b%a3%e8%a6%96</id>
    <content type="html"><![CDATA[<p>pg_monzはzabbixでPostgreSQLを監視するためのテンプレートです。<br/>
以下導入・設定方法は公式ページを参考に。</p>

<p><a href="http://pg-monz.github.io/pg_monz/">http://pg-monz.github.io/pg_monz/</a></p>

<p>主にZabbixのUserParameterで、psqlを用いて情報を取得しているようですが、<br/>
現段階ではパスワード認証に対応していないようです。</p>

<p>パスワード認証が必要なPostgreSQLサーバへの監視の場合は、<br/>
当然zabbixのログに<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br/>
ユーザ postgres のパスワード:<br/>
psql: fe_sendauth: no password supplied<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br/>
のようにエラーが出力されてしまいます。</p>

<p>そこで、pgpassを用いて対話的にパスワードが聞かれないよう設定をします。</p>

<p><a href="http://www.postgresql.jp/document/9.2/html/libpq-pgpass.html">http://www.postgresql.jp/document/9.2/html/libpq-pgpass.html</a></p>

<p>環境に合わせて、zabbixのホームディレクトリに<br/>
以下のように.pgpassを作成します。</p>

<p>vi /var/lib/zabbix/.pgpass<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br/>
localhost:5432:*:postgres:postgrespass<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>

<p>chown zabbix. /var/lib/zabbix/.pgpass<br/>
chmod 600 /var/lib/zabbix/.pgpass</p>

<p>上記を設定すれば、<br/>
zabbixからパスワード認証付きのPostgreSQLの監視ができるようになります。</p>

<p>これでRDS for PostgreSQLの監視もできそう！</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Redisを使ってwordpress高速化]]></title>
    <link href="http://blog.heptagon.co.jp/archives/301"/>
    <updated>2014-03-24T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/redis%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6wordpress%e9%ab%98%e9%80%9f%e5%8c%96%ef%bc%81</id>
    <content type="html"><![CDATA[<p>redisを使ってwordpressを高速化できるという記事を見つけたので早速試してみました。<br/>
<a title="WordPressでKVSのRedisを導入" href="http://www.geek.sc/archives/586" target="_blank">WordPressでKVSのRedisを導入</a></p>

<ul>
<li>redis インストール</li>
</ul>


<p>apt-getで簡単に。</p>

<pre class="brush: bash; title: ; notranslate" title="">apt-get install redis-server
</pre>


<ul>
<li>predis.php、index-with-redis.php設置</li>
</ul>


<p>サイトのドキュメントルートに移動してpredis.phpとindex-with-redis.phpをダウンロード。<br/>
オーナーを修正して準備完了！</p>

<pre class="brush: bash; title: ; notranslate" title="">cd /var/www/heptagon.jp/blog/
mv index.php index.php_org
curl -O http://uploads.staticjw.com/ji/jim/predis.php
curl -o index.php https://gist.githubusercontent.com/JimWestergren/3053250/raw/d9e279e31cbee4a1520f59108a4418ae396b2dde/index-with-redis.php
chown www-data: index.php predis.php
</pre>


<ul>
<li>ベンチマーク</li>
</ul>


<p>同時接続数を10、時間を60秒間に設定してベンチマークを行いました。</p>

<p>[redisキャッシュ前]<br/>
失敗したリクエストもありますね。。</p>

<pre class="brush: bash; title: ; notranslate" title="">Transactions:                 55 hits
Availability:              94.83 %
Elapsed time:              59.48 secs
Data transferred:           0.82 MB
Response time:              5.97 secs
Transaction rate:           0.92 trans/sec
Throughput:             0.01 MB/sec
Concurrency:                5.52
Successful transactions:          55
Failed transactions:               3
Longest transaction:           25.27
Shortest transaction:           1.89
</pre>


<p>[redisキャッシュ設定後]</p>

<pre class="brush: bash; title: ; notranslate" title="">Transactions:               1231 hits
Availability:             100.00 %
Elapsed time:              59.89 secs
Data transferred:          18.57 MB
Response time:              0.48 secs
Transaction rate:          20.55 trans/sec
Throughput:             0.31 MB/sec
Concurrency:                9.95
Successful transactions:        1231
Failed transactions:               0
Longest transaction:            5.44
Shortest transaction:           0.37
</pre>


<p>Transaction rateが約20倍に！！！<br/>
正直驚きでした。。</p>

<p>あとは新規コンテンツ追加時にキャッシュのクリアを忘れないように！</p>

<pre class="brush: bash; title: ; notranslate" title="">http://heptagon.co.jp/blog/?c=y

</pre>


<p>参考サイト：<a title="WordPressでKVSのRedisを導入" href="http://www.geek.sc/archives/586" target="_blank">WordPressでKVSのRedisを導入</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Postfixadmin環境でドメイン毎にcatch Allを設定する]]></title>
    <link href="http://blog.heptagon.co.jp/archives/297"/>
    <updated>2014-03-12T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/postfixadmin%e7%92%b0%e5%a2%83%e3%81%a7%e3%83%89%e3%83%a1%e3%82%a4%e3%83%b3%e6%af%8e%e3%81%abcatch-all%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b</id>
    <content type="html"><![CDATA[<p>通常postfixでは、<br/>
存在しないアカウント宛（メールアドレスの@より前）のメールは<br/>
SMTP接続のRCPT TOの段階でエラーを返送し、<br/>
メールを受け取りません。</p>

<p>今回はqmailのように、存在しないアカウント宛でもメールを受け取り、<br/>
特定のメールアドレスで受信する設定(catch all:キャッチオール)を<br/>
行います。</p>

<p>なお、postfix+dovecot+mysql+postfixadminで構築済みの環境を想定しています。<br/>
まだの場合はこの辺を参考に。</p>

<p><a href="http://e-garakuta.net/techinfo/doku.php/linux/postfix-virtual">http://e-garakuta.net/techinfo/doku.php/linux/postfix-virtual</a></p>

<p>vi /etc/postfix/main.cf<br/>
&#8212;&#8212;&#8212;&#8212;&#8211;</p>

<h1>virtual_mailbox_maps = proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf</h1>

<p>virtual_mailbox_maps = proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf,hash:/etc/postfix/virtual<br/>
&#8212;&#8212;&#8212;&#8212;&#8211;<br/>
=>mysqlに加えて、virtualファイルでもメールアドレスの参照を行うようにする。<br/>
最初にpostfixadminで設定されているアドレスはmysqlを参照して配送され、<br/>
次にpostfixadminで設定されていないアドレスは、virtualを参照するようになる。</p>

<p>vi /etc/postfix/virtual<br/>
&#8212;&#8212;&#8212;&#8212;<br/>
@test.com test.com/test@test.com/<br/>
&#8212;&#8212;&#8212;&#8212;<br/>
=>ドメイン宛のすべてのメールを配送したメールボックス(Maildir形式)へ配送する。</p>

<p>postmap /etc/postfix/virtual</p>

<p>/etc/init.d/postfix reload</p>

<p>&nbsp;</p>

<p>上記を組み合わせることで、<br/>
postfixadminで配送されないメール（存在しないアカウント）を、<br/>
ドメイン毎に任意のメールボックスへ配送することが可能となります。</p>

<p>もし、キャッチオールアドレスが１つの場合は、<br/>
luser_relayを使って制御もできるのかな。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Azureの日本リージョンでLinuxインスタンスを起動する]]></title>
    <link href="http://blog.heptagon.co.jp/archives/265"/>
    <updated>2014-02-26T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/azure%e3%81%ae%e6%97%a5%e6%9c%ac%e3%83%aa%e3%83%bc%e3%82%b8%e3%83%a7%e3%83%b3%e3%81%ablinux%e3%82%a4%e3%83%b3%e3%82%b9%e3%82%bf%e3%83%b3%e3%82%b9%e3%82%92%e8%b5%b7%e5%8b%95%e3%81%99%e3%82%8b</id>
    <content type="html"><![CDATA[<p>本日(2014年2月26日)より、<br/>
Windows Azureで日本リージョンが使用できるようになりました。</p>

<p>さらなるクラウド市場の活性化に期待です！</p>

<p>ということで早速、Linuxインスタンスを立ち上げてみたいと思います。</p>

<p>まずは、頑張ってサインアップやサブスクリプションの購入を完了させて<br/>
以下の管理画面までたどり着いてください。</p>

<p><a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-26-12.58.48.png"><img class="alignnone size-full wp-image-283" alt="Azure管理画面" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-26-12.58.48.png" width="1162" height="686" /></a></p>

<p>仮想マシンタブを選択して、仮想マシンを作成するをクリックします。</p>

<p><a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-26-12.55.59.png"><img class="alignnone size-full wp-image-284" alt="仮想マシンタブ" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-26-12.55.59.png" width="1160" height="628" /></a></p>

<p>作成画面が表示されるので<br/>
・DNS名<br/>
・OSイメージ（今回はubuntu14.04を選択）<br/>
・インスタンスサイズ<br/>
・ログインパスワード（大文字、小文字、数字、記号から３種類以上含む必要有り）<br/>
・リージョン（日本リージョンも東と西で選択できます。）<br/>
・購入したサブスクリプション<br/>
を入力して、仮想マシンの作成をクリックします。</p>

<p><a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-26-11.10.191.png"><img class="alignnone size-full wp-image-285" alt="仮想マシン作成" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-26-11.10.191.png" width="1163" height="531" /></a></p>

<p>仮想マシンタブに作成したインスタンスが表示されます。<a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-26-11.23.431.png"><img class="alignnone size-full wp-image-286" alt="インスタンス起動" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-26-11.23.431.png" width="1164" height="723" /></a></p>

<p>DNS名をクリックすると、インスタンスの詳細画面に遷移します。<br/>
右側の概要の部分でパブリックIPアドレスやDNS名を確認します。</p>

<p><a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-26-11.13.191.png"><img class="alignnone size-full wp-image-287" alt="インスタンス詳細" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-26-11.13.191.png" width="962" height="525" /></a></p>

<p>ログインユーザー名はazureuserと<br/>
インスタンス作成時に入力したパスワードで<br/>
sshのログインが可能です。</p>

<p><a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-26-11.22.501.png"><img class="alignnone size-full wp-image-288" alt="ubuntu起動" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-26-11.22.501.png" width="971" height="533" /></a></p>

<p>ただ、デフォルトでは、sshの22番ポートしか解放されていないので、<br/>
追加で設定をします。</p>

<p>仮想マシンの画面からエンドポイントを選択して、<br/>
解放するポートを設定します。<br/>
画面下の追加をクリックします。</p>

<p><a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-26-11.33.581.png"><img class="alignnone size-full wp-image-289" alt="ファイアウォール" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-26-11.33.581.png" width="1156" height="692" /></a></p>

<p>スタンドアロン&#8230;を選択します。</p>

<p><a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-26-11.34.151.png"><img class="alignnone size-full wp-image-290" alt="エンドポイント" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-26-11.34.151.png" width="679" height="564" /></a></p>

<p>解放するポートを設定します。<br/>
今回は80番ポート(http)を解放します。</p>

<p><a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-26-11.34.581.png"><img class="alignnone size-full wp-image-291" alt="ポート解放" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-26-11.34.581.png" width="682" height="562" /></a></p>

<p>設定が完了すると、80番ポートでの接続が可能になります。</p>

<p><a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-26-11.35.531.png"><img class="alignnone size-full wp-image-292" alt="apache画面" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-26-11.35.531.png" width="807" height="700" /></a></p>

<p>当然AWSとは用語や操作性が違うので、<br/>
最初はインスタンスの立ち上げ、ログインだけでも結構手惑うと思います。<br/>
Azureならでは面白いサービスもたくさんあるので<br/>
以前参加したAzureの勉強会を思い出し、少しずつ慣れていきたいと思います。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[PHP Warning: Mysql_connect(): Mysqlnd Cannot Connect to MySQL 4.1+ Using the Old Insecure Authentication.]]></title>
    <link href="http://blog.heptagon.co.jp/archives/256"/>
    <updated>2014-02-24T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/php-warning-mysql_connect-mysqlnd-cannot-connect-to-mysql-4-1-using-the-old-insecure-authentication</id>
    <content type="html"><![CDATA[<p>php5.4をインストールしてデータベース接続したらエラー出ました。</p>

<pre class="brush: bash; title: ; notranslate" title=""># /usr/local/lib/php-5.4/bin/php54 -r 'mysql_connect("localhost", "root", "password");';
PHP Warning: mysql_connect(): mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication.
Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password').
This will store a new, and more secure, hash value in mysql.user.
If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file in Command line code on line 1
</pre>


<p>とりあえずold_passwords=0を設定してパスワードを再設定すればいいらしい。<br/>
どういうことかというとこちらのサイトさまの説明が詳しいです。</p>

<p><a href="http://serversmanvps.xn--ockc3f5a.com/2013/06/10/old_passwords%E3%81%AE%E7%BD%A0/">http://serversmanvps.xn&#8211;ockc3f5a.com/2013/06/10/old_passwords%E3%81%AE%E7%BD%A0/</a></p>

<p>要は、<br/>
・old_passwords=0の場合はPASSWORD関数が生成するハッシュが41桁になる<br/>
・old_passwords=1の場合はPASSWORD関数が生成するハッシュが16桁になる<br/>
ということらしい。</p>

<p>とりあえず今回は一時的に@@session.old_passwordsを0にしてパスワード再設定して対応。<br/>
その後無事接続できました。</p>

<pre class="brush: bash; title: ; notranslate" title="">mysql&gt; SELECT @@session.old_passwords, @@global.old_passwords;
+-------------------------+------------------------+
| @@session.old_passwords | @@global.old_passwords |
+-------------------------+------------------------+
|                       1 |                      1 |
+-------------------------+------------------------+

mysql&gt; SET @@session.old_passwords = 0;

mysql&gt; SELECT @@session.old_passwords, @@global.old_passwords;
+-------------------------+------------------------+
| @@session.old_passwords | @@global.old_passwords |
+-------------------------+------------------------+
|                       0 |                      1 |
+-------------------------+------------------------+

mysql&gt; set password for 'user'@'localhost' = PASSWORD('password');
mysql&gt; flush privileges;
</pre>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[dnsmasqで簡単DNSキャッシュサーバ]]></title>
    <link href="http://blog.heptagon.co.jp/archives/237"/>
    <updated>2014-02-16T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/dnsmasq%e3%81%a7%e7%b0%a1%e5%8d%98dns%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%b5%e3%83%bc%e3%83%90</id>
    <content type="html"><![CDATA[<p>dnsmasqでDNSキャッシュサーバを構築します。<br/>
DNSといえばBINDですが、めんどくさいので嫌いです。<br/>
nsd+dnsmasqが素晴らしいです。<br/>
dnsmasqはdnsキャッシュサーバの機能だけでなくdhcpサーバやtftpサーバの機能まであります。素晴らしい！(使わないけど。<br/>
Route53はもっと素晴らしいですけどね！！<br/>
</br></p>

<ul>
<li>環境</li>
</ul>


<pre class="brush: bash; title: ; notranslate" title="">$ cat /etc/system-release
 Amazon Linux AMI release 2013.09

$ uname -a
 Linux ip-172-31-0-248 3.4.73-64.112.amzn1.x86_64 #1 SMP Tue Dec 10 01:50:05 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

$ dnsmasq -v
Dnsmasq version 2.48 Copyright (C) 2000-2009 Simon Kelley
</pre>


<p></br></p>

<ul>
<li>Install</li>
</ul>


<pre class="brush: bash; title: ; notranslate" title="">$ sudo yum install dnsmasq
</pre>


<p></br></p>

<ul>
<li>設定 &amp; 起動</li>
</ul>


<p>今回はDNSキャッシュサーバとしてのみ使用します。<br/>
ローカルからの接続のみ許可します。<br/>
そのうえで/etc/resolv.confに追加してあげます。</p>

<pre class="brush: bash; title: ; notranslate" title="">$ sudo vim /etc/dnsmasq.conf
-----------------------------------------
listen-address=127.0.0.1
bind-interfaces
-----------------------------------------

$ sudo vim /etc/resolv.conf
-----------------------------------------
nameserver 127.0.0.1
nameserver 172.31.0.2
-----------------------------------------

$ sudo service dnsmasq start
$ sudo netstat -nlp|grep :53
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 17586/dnsmasq
udp 0 0 127.0.0.1:53 0.0.0.0:* 17586/dnsmasq
</pre>


<p></br></p>

<ul>
<li>確認</li>
</ul>


<p>適当にdigします。<br/>
1回目は外部サーバに聞きにいくので遅いですが、2回目以降はキャッシュから返してくれるので速いです！<br/>
dnsラウンドロビンの機能も持っているので複数のレコードを持つ場合なども順番に返してくれるので安心です。</p>

<pre class="brush: bash; title: ; notranslate" title="">$ dig google.com
; &lt;&lt;&gt;&gt; DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.30.amzn1 &lt;&lt;&gt;&gt; google.com
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com. IN A

;; ANSWER SECTION:
google.com. 300 IN A 173.194.126.238
google.com. 300 IN A 173.194.126.224
google.com. 300 IN A 173.194.126.225
google.com. 300 IN A 173.194.126.226
google.com. 300 IN A 173.194.126.227
google.com. 300 IN A 173.194.126.228
google.com. 300 IN A 173.194.126.229
google.com. 300 IN A 173.194.126.230
google.com. 300 IN A 173.194.126.231
google.com. 300 IN A 173.194.126.232
google.com. 300 IN A 173.194.126.233

;; Query time: 44 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Feb 16 14:28:39 2014
;; MSG SIZE rcvd: 204

$ dig google.com
; &lt;&lt;&gt;&gt; DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.30.amzn1 &lt;&lt;&gt;&gt; google.com
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com. IN A

;; ANSWER SECTION:
google.com. 297 IN A 173.194.126.233
google.com. 297 IN A 173.194.126.232
google.com. 297 IN A 173.194.126.231
google.com. 297 IN A 173.194.126.230
google.com. 297 IN A 173.194.126.229
google.com. 297 IN A 173.194.126.228
google.com. 297 IN A 173.194.126.227
google.com. 297 IN A 173.194.126.226
google.com. 297 IN A 173.194.126.225
google.com. 297 IN A 173.194.126.224
google.com. 297 IN A 173.194.126.238

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Feb 16 14:28:42 2014
;; MSG SIZE rcvd: 204

$ dig google.com
; &lt;&lt;&gt;&gt; DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.30.amzn1 &lt;&lt;&gt;&gt; google.com
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com. IN A

;; ANSWER SECTION:
google.com.     295 IN  A   173.194.126.224
google.com.     295 IN  A   173.194.126.238
google.com.     295 IN  A   173.194.126.233
google.com.     295 IN  A   173.194.126.232
google.com.     295 IN  A   173.194.126.231
google.com.     295 IN  A   173.194.126.230
google.com.     295 IN  A   173.194.126.229
google.com.     295 IN  A   173.194.126.228
google.com.     295 IN  A   173.194.126.227
google.com.     295 IN  A   173.194.126.226
google.com.     295 IN  A   173.194.126.225

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Feb 16 14:28:43 2014
;; MSG SIZE rcvd: 204
</pre>


<p></br></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[負荷テストツールsiegeのインストール・設定]]></title>
    <link href="http://blog.heptagon.co.jp/archives/234"/>
    <updated>2014-02-14T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/%e8%b2%a0%e8%8d%b7%e3%83%86%e3%82%b9%e3%83%88%e3%83%84%e3%83%bc%e3%83%absiege%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%83%bb%e8%a8%ad%e5%ae%9a</id>
    <content type="html"><![CDATA[<p>最近WEBの負荷テストのツールでsiegeをよく使っています。<br/>
siegeとは、包囲攻撃という意味の単語で、「シィージ」と発音するみたいです。</p>

<p>アクセス先を複数のURLからランダムで抽出する<br/>
インターネットモードがなかなか便利です。</p>

<p>○インストール<br/>
wget <a href="http://www.joedog.org/pub/siege/siege-3.0.5.tar.gz  ">http://www.joedog.org/pub/siege/siege-3.0.5.tar.gz  </a>
tar xvf siege-3.0.5.tar.gz<br/>
cd siege-3.0.5<br/>
./configure<br/>
make<br/>
make install</p>

<p>○負荷をかけるURLを設定<br/>
vi /usr/local/etc/urls.txt<br/>
&#8212;&#8212;&#8212;</p>

<p><a href="http://hoge.huge/index.html">http://hoge.huge/index.html</a></p>

<p><a href="http://hoge.huge/1.html">http://hoge.huge/1.html</a></p>

<p><a href="http://hoge.huge/2.html">http://hoge.huge/2.html</a></p>

<p><a href="http://hoge.huge/3.html">http://hoge.huge/3.html</a></p>

<p>&#8212;&#8212;&#8212;<br/>
※<a href="http://hoge.huge/script">http://hoge.huge/script</a> POST key1=value1&amp;key2=value2<br/>
などと書くとPOSTも可能です。</p>

<p>○実行<br/>
siege -c 300 -t 10S -b -i -f /usr/local/etc/urls.txt<br/>
=>urls.txtからランダムにURLを抽出して、10秒間300同時接続でアクセスをする</p>

<p>○実行結果<br/>
Transactions: 1442 hits<br/>
Availability: 100.00 %<br/>
Elapsed time: 1.08 secs<br/>
Data transferred: 0.01 MB<br/>
Response time: 0.08 secs<br/>
Transaction rate: 1335.19 trans/sec<br/>
Throughput: 0.01 MB/sec<br/>
Concurrency: 103.77<br/>
Successful transactions: 1442<br/>
Failed transactions: 0<br/>
Longest transaction: 0.52<br/>
Shortest transaction: 0.00</p>

<p>オプションや実行結果の詳細は、以下のページが詳しいです。</p>

<p><a href="http://nori3tsu.hatenablog.com/entry/2013/11/02/125000">http://nori3tsu.hatenablog.com/entry/2013/11/02/125000</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Mysqldump: Couldn&#8217;t Execute &#8216;show Create Table `cond_instances`&#8217;: Unknown Table Engine &#8216;PERFORMANCE_SCHEMA&#8217; (1286)]]></title>
    <link href="http://blog.heptagon.co.jp/archives/215"/>
    <updated>2014-02-06T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/mysqldump-couldnt-execute-show-create-table-cond_instances-unknown-table-engine-performance_schema-1286</id>
    <content type="html"><![CDATA[<p>mysqldump時にエラー出ました。。</p>

<p>備忘録です。</p>

<p>&nbsp;</p>

<p>環境はこちら。</p>

<pre class="brush: bash; title: ; notranslate" title="">[root@localhost ~]# cat /etc/redhat-release
CentOS release 5.6 (Final)

[root@localhost ~]# uname -a
Linux localhost 2.6.18-238.5.1.el5 #1 SMP Fri Apr 1 18:41:58 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

[root@localhost ~]# mysql -V
mysql Ver 14.14 Distrib 5.1.52, for redhat-linux-gnu (x86_64) using readline 5.1

</pre>


<p>&nbsp;</p>

<p>mysqldump時に起こったエラーがこちら。</p>

<pre class="brush: bash; title: ; notranslate" title="">[root@localhost ~]# mysqldump -u root -p --all-databases --lock-all-tables &gt; /tmp/mysqldump.sql
Enter password:
mysqldump: Couldn't execute 'show create table `cond_instances`': Unknown table engine 'PERFORMANCE_SCHEMA' (1286)

</pre>


<p>&nbsp;</p>

<p>んで解決方法調べたらとりあえずスキップしろとのことだったので下記で突破。</p>

<pre class="brush: bash; title: ; notranslate" title="">[root@localhost ~]# mysqldump -u root -p --all-databases --lock-all-tables \
--ignore-table=performance_schema.cond_instances \
--ignore-table=performance_schema.events_waits_current \
--ignore-table=performance_schema.cond_instances \
--ignore-table=performance_schema.events_waits_history \
--ignore-table=performance_schema.events_waits_history_long \
--ignore-table=performance_schema.events_waits_summary_by_instance\
--ignore-table=performance_schema.events_waits_summary_by_thread_by_event_name \
--ignore-table=performance_schema.events_waits_summary_global_by_event_name \
--ignore-table=performance_schema.file_instances \
--ignore-table=performance_schema.file_summary_by_event_name \
--ignore-table=performance_schema.file_summary_by_instance \
--ignore-table=performance_schema.mutex_instances \
--ignore-table=performance_schema.performance_timers \
--ignore-table=performance_schema.rwlock_instances \
--ignore-table=performance_schema.setup_consumers \
--ignore-table=performance_schema.setup_instruments \
--ignore-table=performance_schema.setup_timers \
--ignore-table=performance_schema.threads &gt; /tmp/mysqldump.sql

</pre>


<p>とりあえず解決！</p>

<p>&nbsp;</p>

<p>でもインポートのときにもエラーがありまして、</p>

<p>文字コードがsjisのテーブルをそのままインポートしようとしたら下記エラーが。。</p>

<pre class="brush: bash; title: ; notranslate" title="">[root@localhost ~]# mysql -u root -p &lt; /tmp/mysqldump.sql
Enter password:
ERROR at line 1157: Unknown command '\�'.

</pre>


<p>&nbsp;</p>

<p>&#8220;/etc/my.cnf&#8221;に書いたけどダメだったので、</p>

<p>&#8211;default-character-set オプションを渡して解決。</p>

<pre class="brush: bash; title: ; notranslate" title="">[root@localhost ~]# mysql -u root -p --default-character-set=sjis &lt; /tmp/mysqldump.sql
</pre>


<p>&nbsp;<br/>
&nbsp;</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[EC2の利用状況の詳細レポート設定]]></title>
    <link href="http://blog.heptagon.co.jp/archives/203"/>
    <updated>2014-02-04T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/ec2%e3%81%ae%e5%88%a9%e7%94%a8%e7%8a%b6%e6%b3%81%e3%81%ae%e8%a9%b3%e7%b4%b0%e3%83%ac%e3%83%9d%e3%83%bc%e3%83%88%e8%a8%ad%e5%ae%9a</id>
    <content type="html"><![CDATA[<p>先日、EC2の利用状況のレポート昨日がリリースされ、<br/>
インスタンスの種類毎やタグ毎に費用や稼働時間などが、<br/>
分かりやすく把握できるようになりました。</p>

<p><a href="http://aws.typepad.com/aws_japan/2014/01/amazon-ec2-instance-usage-and-reserved-instance-utilization-reports.html">http://aws.typepad.com/aws_japan/2014/01/amazon-ec2-instance-usage-and-reserved-instance-utilization-reports.html</a></p>

<p>デフォルトではレポートは設定されておらず、<br/>
有効にするには設定が必要なので、その設定方法をまとめました。</p>

<p>１、マネジメントコンソールにログインして、S3へ。</p>

<p>２、請求データを保存するバケットを新規作成。<br/>
billingとかusage-dataとかは予約されている模様で使えないようです。<br/>
(３、４回チェックで引っかかりました。。。)<br/>
パーミッションは後から設定するので、すぐにcreateで大丈夫です。</p>

<p><a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-04-17.26.30.png"><img class="size-full wp-image-204" alt="s3バケット作成" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-04-17.26.30.png" width="729" height="307" /></a></p>

<p>３、Billing console=>Preferencesに移動し、<br/>
「Note: You must apply appropriate permissions to your S3 bucket sample policy」<br/>
のsample policyをクリックします。<br/>
S3のパーミッションのコンフィグが出てくるので、コピー。</p>

<p><a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-04-17.36.52.png"><img class="alignnone size-full wp-image-210" alt="s3_config" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-04-17.36.52.png" width="556" height="490" /></a></p>

<p>４、再度S3へ移動して、最初に作成したバケットを選択して、<br/>
Properties=>Permissions=>Add bucket policy<br/>
で、先ほどコピーしたコンフィグを適用する。</p>

<p>５、またまたBilling console=>Preferencesへ移動して、<br/>
Receive Billing Reportsにチェックをつけて、<br/>
フォームに上で作成したS3バケット名を入力します。<br/>
Valid Bucket Nameが表示されればOKです。<br/>
画面下部「Report」の<br/>
Detailed billing report with resources and tagsにもチェックを入れて、<br/>
Save Preferencesをクリックします。</p>

<p><a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-04-17.51.46.png"><img class="alignnone size-full wp-image-207" alt="ec2_report" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-04-17.51.46.png" width="1048" height="497" /></a></p>

<p>これで、設定が完了です！<br/>
先にS３のパーミッションを設定しておかないと、<br/>
Verifyが通らないんですが、（後から考えれば当たり前。）<br/>
ページの上から設定していくとちょっとあれっとなるので、<br/>
ご注意を！</p>

<p>レポートが生成されるまで、数時間から１日程度かかるようです。</p>

<p>レポートが生成されるとBilling console=>reportsから、<br/>
「EC2 Instance Usage Report」と「EC2 Reserved Instance Utilization Report」が<br/>
閲覧できるようになります。</p>

<p><a href="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2014-02-04-17.58.04.png"><img class="alignnone size-full wp-image-208" alt="ec2_usage_report" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2014/02/スクリーンショット-2014-02-04-17.58.04.png" width="1310" height="570" /></a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[AWS/ec2にEIPを複数付ける時のtips]]></title>
    <link href="http://blog.heptagon.co.jp/archives/197"/>
    <updated>2013-09-28T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/awsec2%e3%81%abeip%e3%82%92%e8%a4%87%e6%95%b0%e4%bb%98%e3%81%91%e3%82%8b%e6%99%82%e3%81%aetips</id>
    <content type="html"><![CDATA[<p>１インスタンスに複数のENI/EIPを設定するとときに、<br/>
eth0のエイリアスを複数用意する必要があります。</p>

<p>その際以下の方法で複数のifcfg-eth0:*を作らず１つのファイルだけで<br/>
privateIPを一括設定することが可能です。<br/>
例)PrivateIP(10.0.0.0/24)<br/>
10.0.0.10 (ENIのメインIP)<br/>
10.0.0.11〜10.0.0.19（エイリアスIP）</p>

<p>cd /etc/sysconfig/network-scripts/</p>

<p>vi ifcfg-eth0<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br/>
DEVICE=eth0<br/>
BOOTPROTO=dhcp<br/>
ONBOOT=on<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>

<p>vi ifcfg-eth0-range:1<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br/>
IPADDR_START=10.0.0.11<br/>
IPADDR_END=10.0.0.19<br/>
NETMASK=255.255.255.0<br/>
NAME=&#8221;range1&#8243;<br/>
CLONENUM_START=1<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>

<p>service network restart</p>

<p>で</p>

<dl>
<dt>eth0   =>10.0.0.10  </dt>
<dt>eth0:1=>10.0.0.11  </dt>
<dt>eth0:2=>10.0.0.12  </dt>
<dd><p>eth0:9=>10.0.0.19</p></dd>
</dl>

<p>の設定が行われます。</p>

<p>ポイントは、<br/>
メインIPはDHCP指定にすること<br/>
＆<br/>
エイリアスの設定にNETMASKの指定<br/>
を忘れない事です！<br/>
（メインIPってDHCPでなくstaticで指定してもいいのかな？？）</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[ストリーミングサーバ C++ RTMP Serverのインストール]]></title>
    <link href="http://blog.heptagon.co.jp/archives/192"/>
    <updated>2013-09-13T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/%e3%82%b9%e3%83%88%e3%83%aa%e3%83%bc%e3%83%9f%e3%83%b3%e3%82%b0%e3%82%b5%e3%83%bc%e3%83%90-c-rtmp-server%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab</id>
    <content type="html"><![CDATA[<p>Linuxで動くRTMP対応のストリーミングサーバと言えば、</p>

<p>FMS（Flash Media Server）やRed5が有名ですが、</p>

<p>今回はC++ RTMP Serverのインストールです。</p>

<p>環境<br/>
CentOS6<br/>
apacheインストール済み</p>

<p>cd /usr/local/src/<br/>
wget <a href="http://rtmpd.com/assets/binaries/784/crtmpserver-1.1_beta-x86_64-CentOS_6.2.tar.gz">http://rtmpd.com/assets/binaries/784/crtmpserver-1.1_beta-x86_64-CentOS_6.2.tar.gz</a></p>

<p>mkdir /usr/local/lib64/crtmpserver-1.1</p>

<p>tar xfz crtmpserver-1.1_beta-x86_64-CentOS_6.2.tar.gz -C /usr/local/lib64/crtmpserver-1.1</p>

<p>mv /usr/local/lib64/crtmpserver-1.1/crtmpserver-1.1_beta-x86_64-CentOS_6.2/* /usr/local/lib64/crtmpserver-1.1/.</p>

<p>rm -rf crtmpserver-1.1_beta-x86_64-CentOS_6.2</p>

<p>cp configs/flvplayback.lua configs/flvplayback.lua.org</p>

<p>vi configs/flvplayback.lua<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;<br/>
&#8211;mediaFolder=&#8221;./media&#8221;,<br/>
mediaFolder=&#8221;/var/www/html/rtmp&#8221;,<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;<br/>
=>RTMPのルートディレクトリを変更します。<br/>
configはlua言語で書かれているので、注意。</p>

<p>./run_flvplayback_daemon.sh<br/>
=>デーモン化させます。</p>

<p>これでRTMPサーバの設定は完了。<br/>
結構簡単！</p>

<p>あとは、動画プレイヤーを設定すればストリーミングが可能です。</p>

<p>今回は、Flowplayerを使ってみたので、以下参考までにhtmlファイルを。</p>

<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>

<p>&lt;!doctype html></p>

<p><html><br/>
<head><br/>
<title>MP4 RTMP-streaming : Flowplayer</title><br/>
</head><br/>
<body></p>

<script src=&#8221;flowplayer-3.2.12.min.js&#8221;></script>


<p>
<a style=&#8221;display:block;width:1024px;height:800px;&#8221; id=&#8221;player&#8221; style=&#8221;cursor: pointer;&#8221;><br/>
<img border=0 src=&#8221;start.jpg&#8221; style=&#8221;width:1024px;height:800px;&#8221; alt=&#8221;title image&#8221; /><br/>
</a><br/>
<br clear=&#8221;all&#8221; /></p>

<script>  
flowplayer(&#8220;player&#8221;, &#8220;http://hoge.jp/rtmp/flowplayer/flowplayer-3.2.16.swf&#8221;, {  
plugins: {  
rtmp: {  
url: &#8220;http://hoge.jp/rtmp/flowplayer.rtmp/flowplayer.rtmp-3.2.12.swf&#8221;,  
netConnectionUrl: &#8216;rtmp://hoge.jp/&#8217;  
}  
},  
clip: {  
provider: &#8216;rtmp&#8217;,  
scaling: &#8216;fit&#8217;,  
url: &#8216;sample.mp4&#8242;  
}  
});  
</script>


<p>
</body><br/>
</html></p>

<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>

<p>apacheのドキュメントルートの/vaw/www/html/以下に</p>

<p>sample.html<br/>
start.jpg　(再生前の画像)<br/>
rtmp/sample.mp4　（動画ファイル）<br/>
rtmp/flowplayer.rtmp/flowplayer.rtmp-3.2.12.swf　（プレイヤー）<br/>
rtmp/flowplayer/flowplayer-3.2.16.swf　（プレイヤー）</p>

<p>を配置しています。</p>

<p>動画ファイルの置く場所を工夫すれば、<br/>
apacheから直接動画へアクセスされる事も防止出来ます。</p>

<p>とはいえ、今の時代スマホのブラウザだとRTMPは厳しいからね・・・</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[仮想端末管理のtmuxをCentOS６にインストール]]></title>
    <link href="http://blog.heptagon.co.jp/archives/189"/>
    <updated>2013-08-23T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/%e4%bb%ae%e6%83%b3%e7%ab%af%e6%9c%ab%e7%ae%a1%e7%90%86%e3%81%aetmux%e3%82%92centos%ef%bc%96%e3%81%ab%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab</id>
    <content type="html"><![CDATA[<p>screenの代わりにtmuxを使っているのを最近よく見るので、<br/>
とりあえずインストールしてみる。</p>

<p>◯環境<br/>
CentOS6</p>

<p>wget <a href="http://pkgs.repoforge.org/tmux/tmux-1.6-1.el6.rf.x86_64.rpm">http://pkgs.repoforge.org/tmux/tmux-1.6-1.el6.rf.x86_64.rpm</a></p>

<p>yum -y install tmux-1.6-1.el6.rf.x86_64.rpm</p>

<p>使い始めはすんなり操作出来ずイライラしますが、頑張って慣れる。</p>

<p>ちなみにmacへのインストールは、</p>

<p>brew install tmux</p>

<p>で一発！</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[サーバ管理ツールZPanelcpのインストール]]></title>
    <link href="http://blog.heptagon.co.jp/archives/177"/>
    <updated>2013-08-19T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/zpanel-cp%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab</id>
    <content type="html"><![CDATA[<p>サーバ管理パネルで良さそうなものを見つけた。</p>

<p><a href="http://www.zpanelcp.com/">http://www.zpanelcp.com/</a></p>

<p>日本語対応しているし、<br/>
(ispcpと違い)メンテもされているし、<br/>
(pleskと違い)設定ファイルも素直で分かりやすい。</p>

<p>早速インストールしてみた。</p>

<p>環境<br/>
CentOS6　minimulインストール<br/>
ZPanelcp 10.0.2<br/>
※10.1.0はFTPのユーザー設定でバグがあった。</p>

<p>wget <a href="http://www.zvps.co.uk/sites/default/files/downloads/centos-6-3/package/installer-x86_64-install.sh.x.tar.gz  ">http://www.zvps.co.uk/sites/default/files/downloads/centos-6-3/package/installer-x86_64-install.sh.x.tar.gz  </a>
tar -xf installer-x86_64-install.sh.x.tar.gz<br/>
chmod +x installer-x86_64-install.sh.x</p>

<p>./installer-x86_64-install.sh.x<br/>
=>ここからは対話式で。</p>

<p>&#8212;&#8212;&#8212;&#8211;<br/>
To contine please agree to the GPL license (y/n/q)? y<br/>
Find your timezone from : <a href="http://php.net/manual/en/timezones.php">http://php.net/manual/en/timezones.php</a> e.g Europe/London<br/>
Enter Your Time Zone: Asia/Tokyo<br/>
Install fresh ZPanel server or enter an upgrade version number e.g 10-0-1 :install<br/>
Enter the FQDN of the server (example: zpanel.yourdomain.com): zpanel.hoge.jp<br/>
Enter the Public (external) IP of the server: xxx.xxx.xxx.xxx</p>

<p>Password you will use for MySQL: passwd<br/>
Re-enter the password you will use for MySQL: passwd</p>

<dl>
<dt>instal ? y</dt>
<dd></dd>
<dt>いろいろインストールされる  </dt>
<dd><p>Daemon run complete!</p>

<h6>########################################################</h6>

<p># Congratulations ZpanelX has now been installed on your #<br/>
# server. Review the log file left in /root/ for #<br/>
# any errors encountered during installation. #<br/>
# #<br/>
# Save the following information somewhere safe: #<br/>
# MySQL Root Password : passwd #<br/>
# ZPanelX Username : zadmin #<br/>
# ZPanelX Password :</p></dd>
</dl>

<blockquote><p>New server crypto key written to cnf/security.php<br/>
New API key has been generated!<br/>
Account password for &#8216;zadmin&#8217; has been updated!</p></blockquote>

<p>K0psLxb7nPjDzE7f #<br/>
# #<br/>
# ZPanelX Web login can be accessed using your server IP #<br/>
# inside any http web browser. #<br/>
# #<br/>
# As soon as the server reboots (which is about to happen) #<br/>
# please login to zpanel and change the zadmin password #<br/>
# using the &#8216;Change Password&#8217; module. #<br/>
# #<br/>
# REPORT ZPANEL INSTALLATION BUGS AND ZPANEL CORE BUGS TO: #<br/>
# (<a href="http://bugs.zpanelcp.com">http://bugs.zpanelcp.com</a>) #<br/>
# #<br/>
# This installer has been thoroughly tested on #<br/>
# (<a href="http://www.zvps.co.uk">http://www.zvps.co.uk</a>) zVPS servers. However it is not #<br/>
# possible to guarantee the compatibility of other VPS #<br/>
# provider Operating System templates of CentOS 6. #<br/>
# #</p>

<h6>#</h6>

<p>ここで一旦リブートされます。<br/>
パスワード等メモし忘れても、インストールディレクトリにログが残ってます。</p>

<p>ブート後、日本語対応させるためのモジュールをインストール。<br/>
zppy repo add zpanel-packages.sammottley.co.uk<br/>
zppy update<br/>
zppy install ZXTS</p>

<p>ブラウザから</p>

<p><a href="http://ServerIP/">http://ServerIP/</a></p>

<p>でログイン画面が表示されます。</p>

<p><a href="http://heptagon.co.jp/blog/archives/177/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2013-08-19-17-27-01" rel="attachment wp-att-178"><img class="alignnone size-full wp-image-178" alt="スクリーンショット 2013-08-19 17.27.01" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2013/08/スクリーンショット-2013-08-19-17.27.01.png" width="1430" height="549" /></a></p>

<p>ログイン後、<a href="http://heptagon.co.jp/blog/archives/177/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2013-08-19-17-27-46" rel="attachment wp-att-179"><img class="alignnone size-full wp-image-179" alt="スクリーンショット 2013-08-19 17.27.46" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2013/08/スクリーンショット-2013-08-19-17.27.46.png" width="513" height="449" /></a></p>

<p>ModuleAdminへ。</p>

<p><a href="http://heptagon.co.jp/blog/archives/177/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2013-08-19-15-52-47" rel="attachment wp-att-180"><img class="alignnone size-full wp-image-180" alt="スクリーンショット 2013-08-19 15.52.47" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2013/08/スクリーンショット-2013-08-19-15.52.47.png" width="888" height="105" /></a></p>

<p>ZXTSをadmin権限で有効にする。</p>

<p><a href="http://heptagon.co.jp/blog/archives/177/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2013-08-19-17-28-34" rel="attachment wp-att-181"><img class="alignnone size-full wp-image-181" alt="スクリーンショット 2013-08-19 17.28.34" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2013/08/スクリーンショット-2013-08-19-17.28.34.png" width="1055" height="157" /></a></p>

<p>トップ画面にZXTSが表示されるので、移動してJapaneseをinstall or updateをクリック。</p>

<p><a href="http://heptagon.co.jp/blog/archives/177/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2013-08-19-15-53-40" rel="attachment wp-att-182"><img class="alignnone size-full wp-image-182" alt="スクリーンショット 2013-08-19 15.53.40" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2013/08/スクリーンショット-2013-08-19-15.53.40.png" width="694" height="105" /></a></p>

<p>その後でremove Symbolic Supportをクリック。</p>

<p><a href="http://heptagon.co.jp/blog/archives/177/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2013-08-19-17-29-04" rel="attachment wp-att-183"><img class="alignnone size-full wp-image-183" alt="スクリーンショット 2013-08-19 17.29.04" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2013/08/スクリーンショット-2013-08-19-17.29.04.png" width="528" height="291" /></a></p>

<p>MyAccountに移動して、メールアドレスと言語を設定すると日本語表示になります。</p>

<p><a href="http://heptagon.co.jp/blog/archives/177/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2013-08-19-17-29-14" rel="attachment wp-att-184"><img class="alignnone size-full wp-image-184" alt="スクリーンショット 2013-08-19 17.29.14" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2013/08/スクリーンショット-2013-08-19-17.29.14.png" width="1429" height="670" /></a></p>

<p>デフォルト設定だとメールの送信ができないので、<br/>
Zpanel設定からAUTHとSMTPを有効にする。<br/>
<a href="http://heptagon.co.jp/blog/archives/177/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2013-08-19-17-29-31" rel="attachment wp-att-185"><img class="alignnone size-full wp-image-185" alt="スクリーンショット 2013-08-19 17.29.31" src="http://static.heptagon.co.jp/blog/wp-content/uploads/2013/08/スクリーンショット-2013-08-19-17.29.31.png" width="1017" height="294" /></a></p>

<p>個人的には10.1.0のデザインの方がカッコいいので、<br/>
早くバグフィックスされる事を願います。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[CentOS6でphp4とphp5を共存させる]]></title>
    <link href="http://blog.heptagon.co.jp/archives/169"/>
    <updated>2013-06-25T00:00:00+09:00</updated>
    <id>http://blog.heptagon.co.jp/archives/centos6%e3%81%a7php4%e3%81%a8php5%e3%82%92%e5%85%b1%e5%ad%98%e3%81%95%e3%81%9b%e3%82%8b</id>
    <content type="html"><![CDATA[<p>さすがにphp4系で新規構築はなくなりましたが、<br/>
リプレイスでどうしても入れてほしいっていうケースが多々あります。<br/>
せっかくなので、php5とphp4を共存させましょうというお話です。</p>

<p>環境：CentOS6<br/>
apache2.2(既にインストールされているものとします)<br/>
php5はデフォルトのパッケージ版(既にインストールされているものとします)<br/>
php4はソースからインストールします</p>

<p>まずは事前に必要そうなパッケージをインストールします。<br/>
（本当は事前になんて分からず何度もやり直しですが。。。）</p>

<p>yum -y install httpd-devel bzip2-devel openssl-devel libjpeg-devel libpng-devel gmp-devel ncurses-devel flex gcc make</p>

<p>cd /usr/local/src</p>

<p>php4系の最終リリース4.4.9をダウンロード<br/>
wget <a href="http://jp2.php.net/get/php-4.4.9.tar.gz/from/this/mirror">http://jp2.php.net/get/php-4.4.9.tar.gz/from/this/mirror</a></p>

<p>tar xvf php-4.4.9.tar.gz<br/>
cd php-4.4.9<br/>
ここでphp5と共存させるので<br/>
MIMEタイプがphp5とかぶらないように変更</p>

<p>vi sapi/apache2handler/sapi_apache2.c<br/>
&#8212;&#8212;&#8212;&#8212;&#8211;</p>

<h1>define PHP_MAGIC_TYPE &#8220;application/x-httpd-php&#8221;</h1>

<h1>define PHP_SOURCE_MAGIC_TYPE &#8220;application/x-httpd-php-source&#8221;</h1>

<h1>define PHP_SCRIPT &#8220;php-script&#8221;</h1>

<p>↓に変更↓</p>

<h1>define PHP_MAGIC_TYPE &#8220;application/x-httpd-php4&#8243;</h1>

<h1>define PHP_SOURCE_MAGIC_TYPE &#8220;application/x-httpd-php4-source&#8221;</h1>

<h1>define PHP_SCRIPT &#8220;php4-script&#8221;</h1>

<p>&#8212;&#8212;&#8212;&#8212;&#8211;</p>

<p>configureを走らせます<br/>
./configure &#8211;prefix=/usr/local/php4 &#8211;with-apxs2=/usr/sbin/apxs &#8211;with-sqlite &#8211;with-mysql &#8211;with-gd &#8211;with-jpeg-dir=/usr &#8211;with-png-dir=/usr &#8211;with-zlib &#8211;with-bz2 &#8211;with-openssl &#8211;with-gettext &#8211;with-gmp &#8211;with-iconv &#8211;with-ncurses &#8211;enable-exif &#8211;enable-gd-native-ttf &#8211;enable-memory-limit &#8211;enable-mbstring &#8211;enable-mbstr-enc-trans &#8211;enable-mbregex &#8211;enable-bcmath &#8211;enable-trans-sid &#8211;enable-sysvsem &#8211;enable-sysvshm</p>

<p>しかし途中で<br/>
configure: error: libjpeg.(a|so) not found.<br/>
のエラーが、、、</p>

<p>locate libjpeg.so<br/>
/usr/lib64/libjpeg.so<br/>
/usr/lib64/libjpeg.so.62<br/>
/usr/lib64/libjpeg.so.62.0.0</p>

<p>ちゃんとライブラリはあるのに、、、</p>

<p><a href="http://d.hatena.ne.jp/lion_and_perican/20110207/p1">http://d.hatena.ne.jp/lion_and_perican/20110207/p1</a></p>

<p>を参考に</p>

<p>&#8211;with-libdir=lib64</p>

<p>とかつけてもダメ。。。。<br/>
しょうがないので、シンボリックリンクで対応。</p>

<p>ln -s /usr/lib64/libjpeg.so /usr/lib/<br/>
ln -s /usr/lib64/libpng.so /usr/lib/</p>

<p>再度、configureを走らせます</p>

<p>./configure &#8211;prefix=/usr/local/php4 &#8211;with-apxs2=/usr/sbin/apxs &#8211;with-sqlite &#8211;with-mysql &#8211;with-gd &#8211;with-jpeg-dir=/usr &#8211;with-png-dir=/usr &#8211;with-zlib &#8211;with-bz2 &#8211;with-openssl &#8211;with-gettext &#8211;with-gmp &#8211;with-iconv &#8211;with-ncurses &#8211;enable-exif &#8211;enable-gd-native-ttf &#8211;enable-memory-limit &#8211;enable-mbstring &#8211;enable-mbstr-enc-trans &#8211;enable-mbregex &#8211;enable-bcmath &#8211;enable-trans-sid &#8211;enable-sysvsem &#8211;enable-sysvshm</p>

<p>今度は成功！</p>

<p>コンパイルへ。</p>

<p>make</p>

<p>make: *** [ext/openssl/openssl.lo] Error 1</p>

<p>エラー。。。</p>

<p><a href="http://www.softel.co.jp/blogs/tech/archives/3777">http://www.softel.co.jp/blogs/tech/archives/3777</a></p>

<p>によると</p>

<p style="padding-left: 30px;">
  OpenSSLのライブラリのバージョンが合わないらしく（0.9.8系と1系）、configureできてもmakeのときにエラーとなったりします。
</p>


<p>らしいです。</p>

<p>修正版を拝借。<br/>
wget <a href="http://www.softel.co.jp/blogs/tech/wordpress/wp-content/uploads/2012/10/openssl.c  ">http://www.softel.co.jp/blogs/tech/wordpress/wp-content/uploads/2012/10/openssl.c  </a>
cp openssl.c ext/openssl/openssl.c</p>

<p>再度コンパイル！<br/>
ちょっと豪勢に高めのec2インスタンスを用意したので、<br/>
jオプション16！<br/>
30秒くらいで終わりました。<br/>
ちなみにmicroインスタンスだと１０分くらいかかりました・・・</p>

<p>make -j16</p>

<p>無事終了したのでインストール。</p>

<p>make install<br/>
インストール時にhttpd.confにモジュールがロードされるのでコメントアウト。</p>

<p>vi /etc/httpd/conf/httpd.conf<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>

<h1>LoadModule php4_module /usr/lib64/httpd/modules/libphp4.so</h1>

<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>

<p>分かりやすいように、/etc/httpd/conf.d/に書き直します。<br/>
最初に直したMIMEタイプを指定。</p>

<p>vi /etc/httpd/conf.d/php4.conf<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br/>
LoadModule php4_module modules/libphp4.so<br/>
AddHandler php4-script .php<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>

<p>/etc/init.d/httpd restart</p>

<p>これで、<br/>
拡張子をphpで指定するとphp5が動き、<br/>
php4と指定するとphp4が動きます。<br/>
もちろん、htaccessで切り替える事で、<br/>
拡張子がphpのファイルをphp4で動かす事も出来ます！</p>

<p>.htaccess<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;<br/>
AddHandler php4-script .php<br/>
&#8212;&#8212;&#8212;&#8212;&#8212;</p>

<p>ちなみにAmazonLinuxだとどうしても<br/>
php4とphp5を共存させるとapache起動時に<br/>
segmentation faultが発生してしまったので諦めました&#8230;orz</p>
]]></content>
  </entry>
  
</feed>
