2014-01-01から1年間の記事一覧
この記事は、Symfony Advent Calendar 2014 - Qiitaの7日目の記事です。 Symfony2で開発していると大抵の人がお世話になっている、StofDoctrineExtensionsBundleですが、Timestampable(作成日や更新日を自動挿入できる)以外にも便利な機能が提供されていたの…
GitやMercurialでSSH経由でcloneやpullなどをすることがかなり多くありますが、ポート番号や秘密鍵のパスがデフォルト(e.g. ~/.ssh/id_rsa) と異なっていたり、ProxyCommandなどのSSHオプションを付けたりしたいことも多くの場合あります。 今回は、そのよう…
VPCでサーバ構築していて、InternalELB(内部ELB)を使う必要がでてきました。 InternalELBというのは、インターネット(外部)からアクセスできず、VPC内でしかアクセスできないロードバランサです。InternalELBを作成すると、PublicELB(外部からアクセスできる…
td-agent(Fluentd)で集めたログをElasticsearchに格納して、Kibanaで見るということをやっています。 とりあえずということで、200G程度のVPSでログ収集環境を構築したのですが、問題なのはElasticsearchにログを格納し続けるとディスク容量を圧迫していまい…
先月、Amazon Linux AMI 2014.09がリリースされましたね。 仕事の案件でVPCを新規に構築しているのですが、せっかくなので最新のAMIを使おうと決めていました。今回は事情により、Instance Stored-backed(S3ベース)のEC2インスタンスを使う必要があったため…
更新間隔がまた空いてしまいました。 最近異動が決まりまして10月から東京に転勤することになりましたので引越し準備に追われていました。 Webサイトを作成する際、エンジニアやデザイナーにとって考えなければならないのが端末別のデザインへの対応だと思い…
以前にPostfixで受信したメールを別メールに転送する(エイリアス)でエイリアス設定して別メールに送信するということをしました。 しかし、この方法には1つ問題があります。 例えば、下図のようにメール転送を設定した場合、foo_contact@gmail.comのメールヘ…
最近、ブログ更新が滞っていました。今回は簡単なワンライナーです。 Serverspecでnginxのバージョンをテストしたい場合があったのでメモ。 $ nginx -v 2>&1 | egrep -o '[0-9]+\.[0-9]+\.[0-9]' 1.4.4 キモとなる部分が・・・ nginx のバージョン表示を標準エ…
珍しく(初めて?)AWSネタです。 仕事でAWSのVPCを構築しているのですが、画像を取り扱うサーバが欲しいとの要望がありました。 画像を表示するだけならCloudFront+S3だけで強力な画像(CDN)サーバを構築することができるのですが、今回は画像サイズもリアルタ…
今回もしつこくHeroku+Symfony2ネタです。 前回の記事で、HerokuでSymfony2アプリケーションをデプロイできるようになりましたが、そういえばテストを通していないなと思いました。 ちゃんとしたプロダクトを作るならテストは必須!ということで、オンライン…
かなり久しぶりの更新です。 前回では、HerokuでSymfony2を動かすようにしてみましたが、セッションをMemcachedに格納するところがどうしてもできずにいました。 しかし、PHP session handling on Herokuを見つけまして、試したらちゃんと動きました。 結局…
先日、関西PHP勉強会で@shin1x1さんがHerokuについての発表があり、以前FacebookアプリをHerokuで使ってた(挫折した)を思い出し、興味が出てきたので使ってみることにしました。 アプリケーションサーバ(Dynosというらしい)の稼働時間が1ヶ月で750時間までな…
久しぶりのブログ更新です。 今度、社内で新しい試みとしてもくもく会(各自がもくもくと開発する会)を開こうと思っています。今までもくもく会は1、2回しか参加したことが無いのでどんな風に進めればいいのかよく分かりませんが、記事の後半にルールやタイム…
大分時間が経ってしまいましたが、5月29日(水)ユーザテストLive! 見学会 in KYOTO - 「あなたは"ユーザーテスト"を見たことありますか?」にユーザ役として参加してきましたのでそのまとめをしようと思います。 場所は株式会社はてな(京都オフィス)で、初め…
前回の記事で、Zabbixサーバが使えるようになりました。 Zabbixサーバのみではサーバを監視することができないので、今回はZabbixエージェントをインストールしてサーバを監視できるようにしてみます。 Vagrantでローカル環境にサーバをたてる Zabbixサーバ…
前回の続きで、今回はZabbixサーバを動かし、モニタリングするための設定を行います。 Vagrantでローカル環境にサーバをたてる Zabbixサーバをインストールする Zabbixサーバを設定してモニタリングできる環境を構築する Zabbixエージェントをインストールし…
サーバを構築して運用するときに考慮しなければならないのが、サーバの監視です。 Webサービスのリリース直後は正常に動いていても、物理サーバの場合、時間が経過するとディスクや電源など至る所が故障したりして障害が発生することがあります。VPSやクラウ…
Vagrantのプラグインの1つに、vagrant-vbguestプラグインがあります。 これは仮想環境がVirtualBoxの場合、vagrant upしたときに自動的にGuestAdditionsをインストールしてくれるとても便利なプラグインです。 今までは仮想マシンにGuestAdditionsをインスト…
巷でVagrantが流行っているようです。Vagrant(ベイグラント)は仮想環境をコマンドで簡単に扱えるようにできるツールで、仮想環境なのでVirtualBoxやVMwareの他にAmazon EC2や1時間1円で使えるSSDクラウドなDigitalOceanでも使えます。 特に開発環境において…
Macのパッケージ管理といえば、MacPortsが有名ですが、最近はHomebrew(ホームブルー)が使われるようになってきたようです。MacPortsに比べてパッケージ(ソフトウェア)がインストールしやすいらしいので、Mac初心者の僕も使っています。 インストールが簡単と…
プログラムを作成しているときに、必要な情報(ログイン情報やエラー情報)をログに出力することが多いと思います。Monologは強力なロギングライブラリで、ただファイルに出力するだけでなく、データベースに保存したり、メール送信したり、FireBugに出力した…
皆さんは、PHPでメール送信する際に何を使っていますか? mail(), mb_send_mail(), PEAR::Mailなど様々な関数やライブラリがありますが、最近のモダンなライブラリとして SwiftMailer があります。 SwiftMailerはPHP5.2以上で動作するメールライブラリで、PE…
小ネタです。 仕事でバージョン管理にMercurialを使っています。バージョン管理(リポジトリに登録)されているファイル一覧を取得したい場合に「hg locate」コマンドを使うのですが、パターンを絞ってファイル一覧を取得したかったので、include,excludeオプ…
EC2インスタンスからMac book Airにファイルをrsyncで持ってこようとしたら以下のエラーが出ました。 $ rsync -av my-server:/home/foo/bar_* ~/ protocol version mismatch -- is your shell clean? (see the rsync man page for an explanation) rsync err…
前回の記事でnginxをソースからインストールしましたが、HTMLファイルしか実行できません。 PHPを実行するためには、PHP-FPMを組み込んでnginxと連携させる必要がありますので今回はその辺りをすすめます。
WebサーバといえばApacheが有名ですが、近年はnginx(エンジンエックス)が注目されるようになってきました。 nginxもApacheともにWebサーバなので、役割は同じですが、静的ページの表示に強く、リバースプロキシにも対応しているので、Apacheと共存させて静的…
Heartbleedの影響で、OpenSSLをアップデートして対応しましたが、その後cronが動いていないことが判明し、syslog(/var/log/messages)を確認したところ、以下のようなセグメンテーションフォルトが発生していました *1。 [plain] Apr 8 00:00:02 localhost ke…
PHPのフレームワークSymfony2を使いたいときに、必要な要件にIntlがインストールされていることがありました。 Intlをインストールするには、コンパイル時に --enable-intl をつけてインストールすれば簡単ですが、リコンパイルするのが面倒だったり本番サー…
Basic認証やユーザのパスワードなどにランダムな文字列を生成したいときがあります。 そういう場合、Webサイトやプログラムから生成しても良いのですが、mkpasswdコマンドを使えば簡単に生成生成できます。 今回はmkpasswdコマンドをインストールしてランダ…
サーバの起動時や停止時に特定のスクリプトを実行したい場合があります。 例えば、起動時に起動した旨をメール通知したり、停止時にログ(/var/log)をAWS S3などのストレージにバックアップで保存したりできます。若しくはApacheやnginxなどを野良ソースから…