Vagrantで共有ディレクトリーの静的ファイルが更新されない

Vagrantを利用して、共有ディレクトリーのファイルを更新しても、Apache側に反映されない問題が起きた。
以下の設定をApacheの設定ファイルのDirectoryセクションに書くことで更新が反映するようになったのでメモ。

fuelphpでフォームのrequiredを出力しない方法

fuelphpでtinymceを利用した際にchromeでan invalid form control with name is not focusableなエラーが表示されて、フォームのsubmitが機能しなくなった。調べたところ、textareaにつくrequired属性がダメな感じ。

まあ、各フォームにnovalidateを付けてもいいんだけど、面倒なので、fuelphpのcoreのfieldを拡張することで対応させた。
問題の箇所は、Fieldset_Fieldクラスのadd_ruleメソッド内でrequiredを付与していた。この部分を書き換え、以下のようなクラスを作成した。

このままだと、利用されないので、bootstrap.phpで読み込むようにした。
以下の表をAutoloader::register();の後あたりに追加。

これで、requiredが挿入されなくなり、tinymceが正常に動作した。

iPhoneアプリのsubmit時のエラー

アプリをsubmitしようとしたら、こんなエラーが表示された。

This bundle is invalid. Apps that include an armv7s architecture are required to include armv7 architecture.

調べたところ、iPhoneを接続した状態でビルドするとダメなようだ。
確かに、iPhoneは接続されていたので、外したら大丈夫だった。

http://stackoverflow.com/questions/19211654/ios-application-loader-shows-bundle-error

ansibleが便利です

今までは良くvagrant+chefを利用して開発環境等の構築をおこなっていましたが、ansibleなるものを知人に教わり、試してみた所、これが最高に便利なので、紹介します。

まず、なにがchefより便利なのかというと、chefの場合は、cookbook単位でレシピを作成することになり、これはこれで再利用可能なのと、様々な機種で対応できるため、なかなか慣れないと把握に難しい点がありました。ansibleの場合には、playbook.ymlというファイルにサーバーの構築手順をそのまま書くことでそのとおりのサーバーが作成されます。個人的には、これがとてもわかり易く直感的に扱えるため、便利だと思いました。ただ、例えば、redhat系とdebian系を分ける場合には、その判断もこのファイル内に書く必要があるため、注意が必要です。

Apache2+PHP+NTP+MySQL+PHPMyAdmin+Composerを自動的にインストールするplaybookは例えば、以下の感じになります。

このファイルをvagrantから実行することで、自動的にサーバーが構築されます。

公式サイト http://www.ansible.com/home

laravel4でカスタムバリデーション

ちょっとした仕事でLaravel4でカスタムバリデーションを作成する機会があった。以下、備忘録。

まず、start/global.phpにresolverを追加する。

ここでは、Extensions以下のクラスをapp/extensions以下に配置したいので、composer.jsonのautoloadに設定を追加する。

ここで、artisanでdump-autoloadを実行する。

作成するカスタムバリデータークラスはCustomValidatorとし、Extensions\Validate名前空間を利用することにする。
app/extensions/Validate以下にCustomValidator.phpを作成する。

ポイントは、メソッド名の先頭はかならずvalidateとすること。
あとは、通常のバリデーションルールと同様に利用できる。

yumのアップデートでエラー!!

久々の更新です。借りているサーバーを久々にメンテナンスしようとしてyumってみた所、いきなりエラー発生!

なんか、python関連でエラー??
とりあえず、

としてみるも、エラーは変化しない。しょうがないので、rpmのリビルドDBとクリーンアップを行なってみる。

これで、エラーはなんとか解決!後は、そのままアップデートを行った。一瞬焦った!

phpmyadminのログイン切れの防止策

デフォルトで1440秒でセッションが切れてしまい、開発中に何度もログインするのはとても煩わしい。
以下の修正をphpmyadminのconfig.inc.phpにすることで、この煩わしさから開放される。

vagrantでcssが更新されない件で

久々にCSSを触っていたら、vagrantの環境でCSSが更新されない。なぜ??
調べたところ、静的なファイルはアクセスを必要としない時に、カーネルのsendfileを使って送るようになっているためのようで、Apacheの設定ファイルを変更することで対応できた。

httpd.conf等に

と記述すればOK。

jBossの開発でeclipseでファイル数が多いとエラー

久々にJavaでの開発を行おうと重たい腰を上げた。折角なので、仕事でも使うことからjBoss+struts2にすることに。eclipseにjBossのプラグインを入れて、サーバー設定をしていたら、「多くのファイルを開きすぎです」というエラーがでた。どうやら、jBossのプラグインを使う上で、OSの想定値よりも多く使うようだ。初期値はdebianでは1024個となっている。この設定は以外にも簡単にできる。以下の設定を行い、サーバーを再起動することで、このエラーは消えた。

http://orablogs-jp.blogspot.jp/2011/02/osb-and-ubuntu-1004-too-many-open-files.html