pecl-IsolatorというPHPの拡張を作ってみた
気付けば今年も半分終わりかけ。
いい加減何か記事を書くかということで、作ったまま放ったらかしになっているPHP拡張の紹介をしたいと思います。
pecl-Isolator とは
私が今年の頭に作ってみたPHPの拡張モジュールです。
VirtualBoxやDockerのようなVM・コンテナを使うことなくPHP(とpecl-Isolator)だけで、隔離された環境でphpスクリプトを実行できるというもの。
コマンドラインベースでの利用のほか、CGIでも利用可能です。
https://github.com/rhykw/pecl-php-isolator
環境を壊したり汚したりすることなく、怪しいスクリプトも安心して実行できる。そこを目指して「絶縁体」「隔離物」といった意味の「Isolator」という名前をつけました。
pecl-Isolatorの中身
さくっと以下のような仕組みを組み合わせています。
- ホスト名・ネットワーク・プロセスを隔離する Linux 名前空間
- ファイルシステムを隔離する chroot
- 隔離しつつ既存のディレクトリツリーを使う bind mount
おや、まぁ。
あれです。
Linux コンテナを構成する要素の一部を切り出して、PHP拡張としてPHPから使えるようにしたもの。
だいたいそんな感じです。
https://github.com/rhykw/pecl-php-isolator
リポジトリにサンプルコードも置いているので試しに使ってもらえると嬉しいです。