2014-01-01から1年間の記事一覧

EC2 で CentOS 6 の HVM の AMI をゼロから作る

AWS

最近 AWS Marketprice で CentOS 7 の HVM の AMI が使えるようになりましたが、CentOS 6 の HVM の AMI は AWS Marketprice にはまだありません。 CentOS 6 でも t2.micro インスタンスが使いたかったので、ゼロから AMI を作成してみました。 概ね参考記事…

Eclipse PDT + MakeGood でも SSH 経由で PHPUnit を実行する

PhpStorm 8 が正式にリリースされましたね。 PHP Remote Interpreters というものが実装されたので PHPUnit を SSH 経由で実行するのがとても簡単になりました。 が、少し触ってみたところちょっと微妙なことろもありました。下記の記事にも記載されています…

cmd.exe のコマンドラインの解釈と Windows と Linux のプロセス作成の違い

PHP の escapeshellarg の実装が Windows だと謎すぎたので調べていたら下記の記事にたどり着きました。 cmd.exe のコマンドラインの仕様を解析してみた - 永遠に未完成 わりと長いこと Windows を使っているつもりなのですが知らなかったこともあり、とても…

PhpStorm 7 で SSH 経由で PHPUnit を実行する

下記の記事によると PhpStorm 8 では SSH 経由で PHPUnit が実行できるようです。 Vagrantユーザに朗報!PhpStorm8ではPHPUnitをSSH経由で実行できる ホストが Windows で開発環境の VM が Linux(CentOS) なわたしは PhpStorm から PHPUnit が実行できるよう…

ストリームラッパーを使って素の PHP で自動エスケープ

PHP

素の PHP をテンプレートとして使うフレームワークは今でも結構あるようです。 素の PHP をテンプレートに使う、というのがどういうことかというと、簡単な例ですが次のようなものです。 index.php <html> <head> <meta charset="utf-8"> <title></title> </head> <body> Hello </body></html>

MySQL の where 狙いと order by 狙い

わたしは参加していないのですが YAPC::Asia Tokyo 2014 で次のような発表があったようです。 Where狙いのキー、order by狙いのキー このセッションを聞いている人を WHERE gender = 'male' なら ORDER BY を狙った方がいいだろうし、WHERE gender = 'female…

AWS で WordPress を RDS とか s3fs とか使って動かしてみる

AWS

前回は WordPress にアップロードされた画像などのファイルを AWS SDK for PHP の S3 ストリームラッパーを使って無理やり S3 に保存しましたが、 AWS で WordPress を RDS とか S3 とか使って動かしてみる s3fs-fuse を使えばもっと簡単そうなのでやってみ…

AWS で WordPress を RDS とか S3 とか使って動かしてみる

AWS

少し前に AWS で DRBD やら Pacemaker やら Heartbeat やら GlusterFS を使って WordPress を HA 構成にしてみましたが、 AWS で HA クラスタで WordPress を動かす なんで RDS とか S3 とか使わないの? 馬鹿なの? 死ぬの? とセルフツッコミが入ったので …

Zend Framework 2 で Smarty を使うためのモジュール

そういえばだいぶ前に Zend Framework 2 で Smarty を使うためのモジュールを作りました。 ngyuki/zf2-smarty なお、ZfcTwig を大いに参考にしました。 最初に作ったのは1年ぐらい前だったと思います。その当時に GitHub とかで同じようなものを探してみた…

AWS で HA クラスタで WordPress を動かす

最近お仕事でも AWS を使わざるを得ない状況になってきたので、ためしに AWS で WordPress を HA 構成にしてみました。 なお、RDS や S3 は使っていないのであまり AWS っぽくはありません(オンプレをできるだけそのまま AWS に移行する想定だったので)。 …

ISC dhcpd で IP アドレスに基いてホスト名を自動設定

AWS EC2 のインスタンスを立ち上げたとき、(AMI によるかもしれませんが)DHCP で付与された IP アドレスに基いて ip-10-11-12-13 のようにホスト名が設定されるのを見て、さすが AWS は不思議なチカラでよくわからんことをしよる、と思いました。 と、思っ…

CentOS 7 の dhcpd で DDNS が失敗する

次のような感じで、リースした IP アドレスを Dynamic DNS でネームサーバに登録する DHCP サーバを CentOS 6 で作っていたのですが、なぜか CentOS 7 にすると同じような設定でも DDNS での更新が失敗するようになりました。 dhcpd.conf log-facility daemo…

PHP のクラス定数のちょっと奇妙な話

PHP

このコードは Notice なく実行できる。よく考えると奇妙じゃない?

MySQL で ORDER BY 狙いのインデックスがある列で NULL を下に持ってくる

MySQL で ORDER BY で NULL を下に持ってくるには下記の記事のような SQL で出来ますが、 MySQL の ORDER BY で NULL を先にもってきて NULL 以外は降順にする « をぶろぐ MySQL で NULL を一番最後にして昇順にソートする | Sun Limited Mt. MySQLでNULLを…

CentOS 7 を KickStart でインストールする ISO を作る

最近は開発用の VM の構築には Packer や Vagrant が流行っているようですが、自社では諸事情で VirtualBox や VMware で個別に VM を作るのが主流です。 が、VM を作るたびに CentOS のインストーラーの GUI をぽちぽちするのは苦痛なので、KickStart で一…

uopz 拡張で DI っぽいことしてみる

PHP

opcache のオプションを確認するために PHP のマニュアルを見ていたら uopz という面白そうな拡張を見つけたので試してみました。 PHP: uopz - Manual PECL :: Package :: uopz krakjoe/uopz インストール Linux な人は pecl でインストールできます。 $ pec…

Linux で Windows のバイナリを作成

口内炎が痛くてやるきでないので、気晴らしにクロスコンパイルしてみました。 クロスコンパイル、名前は知っていましたがやったことありません。なんだか必殺技みたいでかっこいいです。 試した環境は CentOS 6.5 です。 まず mingw32-gcc というものが必要…

mysql_use_result と Server Sent Events でデータをストリーム的にブラウザに返す

まず下記のような手順で 1000 万件のレコードを持つテーブルを作ります。 MySQL に大量のデータを手っ取り早く挿入する - Qiita $ mysql test -e " create table t ( id int not null primary key, str text not null ) " $ seq 10000000 | mysql test -e " …

PHP の FTP 関数のクソい動作

PHP

2年ぐらい前に書いてたネタを発掘したのでポスト、2年たってもクソいものはクソいです。 ある環境の PHP(5.3.2) の FTP 関数で、パッシブモードを指定しているはずなのに FTP サーバのログに PORT コマンドが残っていることがありました。 PHP の FTP 関数…

phpenv 環境で composer global でパッケージをバージョン別にインストールするプラグイン

PHP

Composer とても便利ですよね。 composer global require を使えばユーザーグローバルにもインストールできるので、phpunit などのインストールに pear の代わりに使えます。 PHP - composer global - Qiita がしかし、phpenv で複数の php を切り替えられる…

Redmine のシンタックスハイライトを Rouge にするプラグイン(他3点)

ここ最近、必要に迫られて ruby も rails もよく知らないのに Redmine のプラグインを何個か作ったので紹介します。 redmine_rouge https://github.com/ngyuki/redmine_rouge Redmine のシンタックスハイライトエンジンを Rouge に変更します。 Redmine はデ…

OpenShift Online に CandyCane をデプロイする

前回 OpenShift Online で PHP を使ってみましたが、無料枠で MySQL も使えるので試しに CandyCane をデプロイしてみました。 なお、CakePHP も CandyCane もまともに触ったこと無いので色々おかしいかもしれませんがご了承ください。 手順 前回と同じ手順で…

RedHat OpenShift で PHP を使う

はじめに RedHat の PaaS である OpenShift Online を触ってみました。 OpenShift へのサインアップはだいぶ前にやっていたので、サインアップの方法やドメインの登録、公開鍵の登録、などの手順はもう忘れました。 多分下記ページの右上の「SIGN UP」から見…

Google App Engine で PHP を使う

昨年の 10 月ごろに Google App Engine for PHP がオープンになったらしいので触ってみました。 SDK のインストール まずはローカルでアプリを実行したり Google App Engine へデプロイするために必要な SDK をインストールします。 Python 2.7 普段使ってい…

MySQL でクライアントが突然死したらロックが残ったままになった

珍しい現象に遭遇しました。冷静に考えると当たり前のことだし、MySQL に限ったことでは無いと思いますが。 MySQL のサーバとクライアントが別のホストになっているものとします(仮に DB サーバ と AP サーバ)。 192.0.2.1 => DB サーバ 192.0.2.2 => AP …

PHPUnit Selenium2 で phpunit.xml にリスナー指定でスクリーンショットを取得

PHP

下記の記事を見て PHPUnit_Extensions_Selenium2TestCase_ScreenshotListener はリスナーなので phpunit.xml で指定した方が良いかと思って試しました。 PHPUnit Selenium2で失敗時にスクリーンショットを取得する方法 — A Day in Serenity (Reloaded) — PHP…

Composer が PSR-4 に対応していた

PHP

Composer が PSR-4 に対応していたので試してみました。 PSR-4 - Composer PSR-0 と PSR-4 PSR-4 はオートローダーに関する規約で PSR-0 を置き換えるものです。 PSR-0 PSR-4 ざっくり PSR-0 と比べると次のような違いがあります。 クラス名に含まれるアンダ…