macにhomebrewでPHP5.6環境をインストールしてみる
してみました。
環境はYosemite(10.10)なのですが、OS標準だとPHP5.5のようです。 Homebrewを使い、PHP5.6を使えるようにします。
なお、Homebrewは入っている前提とします。
事前にXCode(現時点で最新6.1)をインストールし、以下コマンドを実行しておきます。
$ xcode-select --install
brewを最新の状態にします
$ brew update $ brew upgrade
必要なレポジトリを追加します
$ brew tap homebrew/php $ brew tap homebrew/dupes
以下コマンドでPHP5.6をインストールします 尚、apacheはOS標準のものを使いました
$ brew install php56 --with-apxs2=/usr/sbin/apxs
これでコマンド上からPHP5.6が使えるはずです
$ php -v PHP 5.6.3 (cli) (built: Nov 27 2014 22:30:22) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
ApacheからPHP5.6を使うように書き換えます(/etc/httpd/conf/httpd.conf)
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
Apache経由でphpinfo()を表示させると、PHP5.6が動いているのが確認できました
参考
postfixのメールキューを書き換える
注:最終的には諦めてますので有用な情報はそれほどありません
最近のメールサーバーは大体、senderにちゃんと正引きできるドメインが設定されていないと受信拒否されてしまいます。 こちらからメール送信する際、hostnameの設定をしないでメール送信をしてしまい、senderが「xxx@localhost.localdomain」という状態になってしまい、相手のメールサーバーに受取拒否され、「/var/spool/postfix/deferred」にたまっている状態となっておりました。
これをなんとか送信しようというお話。
postfixのメールキューの形式は完全に独自形式のようで、人間が読めるように変換して出力するpostcatというコマンドが用意されています。
$ mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- F2180160222 549 Thu Nov 13 20:13:20 xxx@localhost.localdomain
まずこんな感じでキューIDを調べます この場合「F2180160222」ですね
postcat -q F2180160222 *** ENVELOPE RECORDS deferred/F/F2180160222 *** message_size: 549 179 1 0 549 message_arrival_time: Thu Nov 13 20:13:20 2014 create_time: Thu Nov 13 20:13:20 2014 named_attribute: rewrite_context=local sender_fullname: sender: xxx@localhost.localdomain *** MESSAGE CONTENTS deferred/F/F2180160222 *** Received: by localhost.localdomain (Postfix, from userid 501) id F2180160222; Thu, 13 Nov 2014 20:13:20 +0900 (JST) To: hogehoge@gmail.com Subject: test From: xxx@localhost.localdomain Date: Thu, 13 Nov 2014 20:13:20 +0900 Message-ID: <54649250690447cea26330707f000101@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit message *** HEADER EXTRACTED deferred/F/F2180160222 *** original_recipient: xxx@localhost.localdomain recipient: xxx@localhost.localdomain *** MESSAGE FILE END deferred/F/F2180160222 ***
こんな感じでキューのメールを読むことができます
送信できなかったものについてはsenderのlocalhost.localdomain部分を実在するドメインに無理やりsedで書き換えて送信しました。その場合、アドレス全体の文字数は変えてはいけないようです。フォーマットを解析しようとpostfixのソースもちょっと見たのですが、根が深そうだったので断念しました。
カゴヤのVPSは使うな
カゴヤのVPSを複数台借りて運用していたのですが、いきなり以下のようなメールが来て大半のインスタンスを停止されました。
カゴヤ・ジャパン サポートセンター (担当者名) です。 平素は当社サービスをご利用いただき誠にありがとうございます。 2014-XX-XX XX:XX 頃、下記Xインスタンスの負荷が著しいために 同ホスト機内にある他のお客様サイトへの影響がございました。 XXXXX インスタンス名 IPアドレス …(台数分)… つきましては誠に遺憾ながら上記インスタンスを停止いたしました。 お手数とは存じますが、サイトのお見直しをお願いいたします。 ※サイトをお見直しいただきます際には、Apacheを停止しておく、 アクセス制限を施すなどを行った上でご確認ください。 ご了承のほどよろしくお願いいたします。 ご不明な点がございましたら、いつでもカゴヤ・ジャパン サポートセンターまで お問い合わせください。 それでは今後ともどうぞよろしくお願いいたします。
普通この手のVPSって、高負荷になったら割り当てるCPU時間とかIO帯域で調整すると思っていたのですが、まさかインスタンス停止とは…。 さくらVPSでずっと高負荷かけても(リソース調整はあるにせよ)何も言われないのに…。 確かに料金を日割りできるなどメリットはありますが、ちょっとケチってコレじゃ割にあわないです。 最初からさくら借りとけばよかった。
金輪際KAGOYAは使わないですし、今カゴヤのVPS利用を考えているなら全力で再考をお勧めします。 さくらを借りましょう。(ステマ)
MH4Gがダウンロードできない!? macで3DSのSDカードをフォーマットする方法
皆さん元気に狩ってますか!
いよいよモンスターハンター4Gが発売されましたね!!
早速ダウンロードしようとしたら、SDカードのブロックが足りないと言われDLできず。
よく見たら3DS買った時についてきた4GのSDがそのまま挿さってました(;´Д`)
そんなわけでそのへんに転がっていた32GのSDに載せ替えます。 とりあえずネットで軽く検索したら、PCでSDカードの中身をまるっとコピーすれば移行できそうなのでやってみました。ところが…。
「SDカードが認識できないためSDカードに入っているソフトを表示できません。」と表示され認識されず…。
何が悪かったかというと、macで3DS用のSDカードをフォーマットするときは「MS-DOS(FAT)」を選択しなければならない事でした。通常SDカードをフォーマットするときは「exFAT」を選びがちなので、注意が必要です。
その後、Finderから一度旧SDの中身をmacにコピーして、新しいSDにコピーしなおせば問題なく認識されました!
ちなみに今回使ったSDカードはこちら。 こんな値段なのに3DSで使える最大容量で、転送速度も早いのでロードが早くなってとても快適です。 容量不足でお困りの方は是非ご検討ください。
国内のVPSサービスを、主にディスク容量とinode数の面からコスト調査してみた
対象はさくらVPS、カゴヤVPS、DTIのServersMan@VPSです
サービス名 | プラン | 仮想化タイプ | 月額(税込,年契約) | 容量(kB) | inode数 | 容量単価(円/GB) | inode単価(円/1万inode) | 容量(kB)/inode |
---|---|---|---|---|---|---|---|---|
さくらVPS | 1G | KVM | 924 | 100,893,076 | 6,414,336 | 9.60 | 1.44 | 15.73 |
さくらVPS | 2G | KVM | 1,396 | 204,105,516 | 12,967,936 | 7.17 | 1.08 | 15.74 |
カゴヤVPS | タイプA | OpenVZ | 864 | 209,715,200 | 3,904,333 | 4.32 | 2.21 | 53.71 |
カゴヤVPS | タイプB | OpenVZ | 1,728 | 419,430,400 | 7,808,667 | 4.32 | 2.21 | 53.71 |
カゴヤVPS | タイプC | OpenVZ | 3,456 | 838,860,800 | 15,493,388 | 4.32 | 2.23 | 54.14 |
ServersMan@VPS | Entry | OpenVZ | 504 | 52,428,800 | 3,000,000 | 10.09 | 1.68 | 17.48 |
ServersMan@VPS | Standard | OpenVZ | 1,009 | 104,857,600 | 6,000,000 | 10.09 | 1.68 | 17.48 |
ServersMan@VPS | Pro | OpenVZ | 2,037 | 209,715,200 | 12,000,000 | 10.18 | 1.70 | 17.48 |
※2014/10/10時点
※グレーアウト部分は予測値
考察
- 単純に容量が欲しい場合はカゴヤVPSがGB単価4.32円/月と大変優秀、1ファイルが大きいコンテンツ(画像や動画)を置くには良さげ
- しかし小さいファイルを沢山置くような必要がある場合、inode単価でみると一番悪い
- 1ファイルが50kB以下の場合、ディスク容量を使いきる前にinodeを使い切る計算
- さくらVPSの2Gプランであればinode単価が一番安く、15kB以上であればディスクをフルに使える
VPSのディスクのサイジングを考える場合、容量だけではなくinodeにも注意する必要がある。
さくらVPSの特徴
- 長所 : 一番直感的に使える普通のLinuxマシン
- 長所 : 国内3箇所のリージョンから選べる
- 長所 : 同一リージョン内のVPS同士でローカルネットワークが組める(eth0はグローバルIP、eth1,eth2はローカルNWとして好きに使える)
- 短所 : 後からのスケールアップが不可能(したけりゃさくらクラウド使えって事なんだろうけど)
kagoya vpsの特徴
- 長所 : インスタンスのスケールアップ・ダウン(CPUコア数、メモリー容量、ディスク容量)をダウンタイム無しでできる
- 長所 : 料金が1日単位
- 短所 : OpenVSなのでちょっと特殊なこと(カーネルモジュール追加等)は何もできない
- 短所 : ファイルシステム関係も何もいじれない
- 短所 : fuseやloopマウント等も不可
DTI VPSの特徴
- 長所 : 1インスタンス単価が最安
- 短所 : OpenVZなのでkagoyaの短所と基本的に一緒
ちなみにOpenVZなカゴヤVPSで何とかinodeを増やそうと、ファイルをext4でフォーマットしてmount -o loopしようとしましたが、loopデバイスの使用が制限されていて(?)実現できませんでした。 同じ理由でFUSEデバイスも制限されていて、そちらのアプローチもムリでした。
まだ試していませんが、恐らくさくらVPSであれば上記の手法が使えるのではと思っています。 #そのうちやる
結論
結局さくらVPS最強。
macで最新のcoreutlsを使う方法
coreutilsはUNIX系OSの基本的なコマンド(lsとかcpとか)を提供するパッケージである。
今回はmacでcoreutilsに含まれるsortコマンドの-Rオプションを使いたかったのだが、macosが標準で提供するsortコマンドが古いバージョンのため使用できなかった。 このため、homebrewからcoreutilsをインストールし、使用する方法を実施してみた。
ちなみにsortコマンドの-Rオプションはランダムでソートするオプションであり、バージョン6以降で利用できる。
実施前
$ sort --version sort (GNU coreutils) 5.93
homebrewによりcoreutilsをインストール
$ brew install coreutils ==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/coreutils-8 ######################################################################## 100.0% ==> Pouring coreutils-8.23.mavericks.bottle.tar.gz ==> Caveats All commands have been installed with the prefix 'g'. If you really need to use these commands with their normal names, you can add a "gnubin" directory to your PATH from your bashrc like: PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH" Additionally, you can access their man pages with normal names if you add the "gnuman" directory to your MANPATH from your bashrc as well: MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH" ==> Summary 🍺 /usr/local/Cellar/coreutils/8.23: 214 files, 10M
PATHの順序次第では標準のcoreutilsをすべてbrew版に置き換えることもできるが、今回はsortコマンドだけ使えればよかったので
# ~/.bashrc alias sort='/usr/local/opt/coreutils/libexec/gnubin/sort'
で逃げることにした。
$ sort --version sort (GNU coreutils) 8.23 $ echo -e "a\nb\nc" | sort -R c b a
無事、sortコマンドの-Rオプションが使えるようになった。
参考
Parallelsshを使ってsshコマンドを多ホストで実行
install (MacOS)
$ brew install pssh
ホストリストを作成 (host.list)
user@host1.test user@host2.test user@host3.test:12345 …
実行
$ pssh -h /tmp/ssh.list "hostname" [1] 14:49:28 [SUCCESS] user@host1.test [2] 14:49:28 [SUCCESS] user@host2.test [3] 14:49:28 [SUCCESS] user@host3.test:12345
iオプションで実行結果を表示できる
$ pssh -h /tmp/ssh.list -i "hostname" [1] 14:48:28 [SUCCESS] user@host1.test host1.test [2] 14:48:28 [SUCCESS] user@host2.test host2.test [3] 14:48:28 [SUCCESS] user@host3.test:12345 user@host3.test
sudoをしようとするとttyが無いと怒られるので、必要であればssh先のsudoersを書き換える