こもろぐ @tenkoma

What We Find Changes Who We Become -- Peter Morville著『アンビエント・ファインダビリティ 』

広告:本ブログで紹介している書籍等商品の紹介でAmazonアソシエイトを利用していることがあります。

ローカル開発環境のPHPをphpenv から php-build + direnv に変えた

engineering.otobank.co.jp

こちらやってみました。

php-build を使う

GitHubリポジトリを管理する ghq はインストール済みとして, まず php-build をインストールする

$ ghq get php-build/php-build
$ ghq look php-build
$ ./install.sh
$ exit

現在最新の PHP 7.1.6 をビルドしてみる

php-build -i development 7.1.6 ~/local/php/7.1.6
$ ~/local/php/7.1.6/bin/php -v
PHP 7.1.6 (cli) (built: Jun 10 2017 16:21:37) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.1.6, Copyright (c) 1999-2017, by Zend Technologies
    with Xdebug v2.5.4, Copyright (c) 2002-2017, by Derick Rethans

direnv を使って、ディレクトリごとにphpのバージョンを指定する

direnv では cd した時に .envrc の内容を実行します。 そのファイルで $PATH を変更することでディレクトリごとにPHPバージョンの切り替えが実現できます。

path/to/project/.envrc

PATH_add $HOME/local/php/7.1.6/bin

.envrc を保存したとき、

direnv: error .envrc is blocked. Run `direnv allow` to approve its content.

と怒られる場合は

$ direnv allow

を実行するとdirenvが使えるようになります。 ここまでセットアップすれば以下のように切り替わります。

$ php -v
PHP 7.0.19 (cli) (built: May 21 2017 11:56:11) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
$ cd ~/projects/sample_projects/direnv_sample
direnv: loading .envrc
direnv: export ~PATH
$ php -v
PHP 7.1.6 (cli) (built: Jun 10 2017 16:21:37) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.1.6, Copyright (c) 1999-2017, by Zend Technologies
    with Xdebug v2.5.4, Copyright (c) 2002-2017, by Derick Rethans

PHPのバージョンアップがあったときは

新しいバージョン定義が追加されていれば、(Pull Requestで更新されてます) git pull して ./install.sh すれば新しいバージョンをビルドできます。以下のような感じです。

$ ghq look php-build
        cd /Users/tenkoma/src/github.com/php-build/php-build
bash-3.2$ git pull
Already up-to-date.
bash-3.2$ ./install.sh
Installing php-build in '/usr/local'
  - creating directories... done.
  - copying files... done.
Done.

PHP BLT #7 でGitLab Review Apps の話でLTしました

2017/5/22 に株式会社メルカリで開催されたPHP BLT #7でLTしてきました。PHP BLT初参加です。

とりあえず参加登録後に過去の発表資料をチェックしたら、ほとんどPHPの話だったので、そういう縛りがあるのかーPHPネタは難しいな、と思ったのですが杞憂でした。 最近取り組んでいるGitLab CI を使った自動化の例として、レビュー環境を自動生成する話の(私が勉強中の)現状について紹介しました。

発表内容は、GItLab CI + Review Appsの簡単な紹介と .gitlab-ci.yml の設定例です。

CakePHPで自作したデプロイツール(gitリポジトリURLを指定すれば「デプロイ」ボタンを押すだけでレビュー環境が更新される、HTTP認証も設定できるというもの)を運用しているのですが、gitコマンドまわりでバグがあったり、push時に自動でデプロイする機能がまだなく使い勝手がまだまだです。しかし、Review Appsならそのあたりをイイ感じに解決できそう、という感想です。

LT中にでてくる唯一のPHP要素、 .htdigest ファイルを生成するワンライナーは以下の通りです。

php -r 'printf("%s:%s:%s\n", $argv[1], $argv[2], md5("{$argv[1]}:{$argv[2]}:{$argv[3]}"));' $HTTP_USER "$HTTP_REALM" $HTTP_PASSWORD >> $SRC_PUBLIC_DIR/.htdigest

紹介した設定ファイルのコードは以下で参照できます。

GitLabは使い方を覚えれば、できる自動化が増えていって楽しいですね。

プルリクメモ 4/15

CakePHP Cookbook修正のプルリクエスト

2年前に追加された説明を削除してシンプルにするものだったので丁寧な説明を心がけた。 検証もして、8時間くらいかかった。

説明は以下の順で構成した。

  • 何をするプルリクかを1行で説明
  • あらすじ、何が問題か
  • どう改善したか
    • 設定の記述を1つにまとめた。検証したらまとめられることがわかった。
    • この節はPretty URLを実現するためのRewrite設定の説明なので、直接的な部分だけ先に明示した。
  • 検証結果・メモ

nginx の設定で試行錯誤したので勉強になった。

Windows 7 on Bootcamp で Wifiが使えない(解決を断念?)

WiMAXWifiルーターを使っていて、USBで接続した時は使えるのにWifi経由で利用できない、ということがあった。 どうもWifi のドライバをインストールしてなかったらしい

前提条件

解決策

ディスクユーティリティで1GB以上の容量があるUSBメモリをFATでフォーマットする 以下のURLから、マシンに合ったBoot Camp Support Softwareを見つけ出し、USBメモリに展開する

アップル - サポート - ダウンロード

僕のは Macbook Air 13-inch, Late 2010なので Boot Camp Support Software 4.0.4033 みたい

ダウンロードしたzipファイルを展開してUSBメモリのルートにコピーする

f:id:tenkoma:20131123174808p:plain

こんな感じになる。再起動して、Windows 7を起動する

setup.exeを実行して表示されるメニューで修復を実行する。再起動を促されるので再起動する

・・・ってここまでやってみたけど結局Wifi使えず。 BootCampで使えないと困るほどでもないので、断念しようと思う。

Macのアプリをクラッシュさせるやつ

ブラクラ作れるかも?と思ったのでやってみた。(下のボタンをクリックするとMacのSafariChromeでクラッシュします。Mac OS X 10.8.2で確認)

※注意※ 以下のコードは不具合の影響を調べることを目的としたものであり、コンピュータやその利用者に被害を与えることを意図したものではありません。

window.prompt() を使うことで簡単にクラッシュできますね。またFirefoxはクラッシュしません。

ブラクラ作成がはかどる…