バージョン 2.0.0
2026年2月
有限会社 パオ・アット・オフィス
https://www.pao.ac/
1.4 Python版との違い
2.5 レンタルサーバーについて
3.4 Web サーバーの設定
4.4 元に戻してみよう
5.4 コマンド一覧
7.4 Docker
8.3 注意事項
paozip for PHP は、PHP のソースコードを暗号化するツールです。
暗号化すると、ソースコードはバイナリデータになって読めなくなります。
でも——実行はそのままできます。php sample.php でも、ブラウザからでも、まったく同じように動きます。
こんな時に便利: - 自社開発の PHP アプリを納品したい(でもソースは見せたくない) - WordPress のプラグインを配布したい(でもコードはコピーされたくない) - Laravel で作った業務システムを設置したい(でもロジックは秘密にしたい)
| 特長 | 説明 |
|---|---|
| 完全透過 | 暗号化ファイルをそのまま php で実行できる。コード変更不要! |
| ファイル名そのまま | sample.php は暗号化後も sample.php。拡張子は変わらない |
| Web でも CLI でも | Apache, Nginx, PHP-FPM, コマンドライン——すべて対応 |
| フレームワーク対応 | Laravel, WordPress, CakePHP, Symfony... 全部動く |
| 高速 | C言語で書かれた PHP 拡張なので、実行時のオーバーヘッドはほぼゼロ |
| 圧縮効果 | 暗号化時に zlib 圧縮するので、ファイルサイズが小さくなることも |
paozip for PHP の最大の特長は 透過型 であること。
┌───────────────────────────────────────────────────────────┐
│ 暗号化するとき │
├───────────────────────────────────────────────────────────┤
│ │
│ sample.php(ソースコード) │
│ ┌──────────────────────┐ │
│ │ <?php │ │
│ │ function secret() { │ │
│ │ return 42; │ paozip sample.php │
│ │ } │ ──────────────────▶ │
│ └──────────────────────┘ │
│ │
│ sample.php(暗号化済み) │
│ ┌──────────────────────┐ │
│ │ 09 50 41 4F 5A 49 50 │ │
│ │ 57 09 A3 7B 2D F1 ... │ │
│ │ (バイナリデータ) │ │
│ └──────────────────────┘ │
│ │
│ sample.php.pao(元ファイルのバックアップ) │
│ │
└───────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────┐
│ 実行するとき │
├───────────────────────────────────────────────────────────┤
│ │
│ php sample.php │
│ │ │
│ ▼ │
│ PHP が sample.php を読み込もうとする │
│ │ │
│ ▼ │
│ paozip 拡張が横取り! │
│ 「あ、これ暗号化ファイルだ。復号してあげるね」 │
│ │ │
│ ▼ │
│ メモリ上で復号 → PHP に渡す │
│ │ │
│ ▼ │
│ PHP が普通に実行 │
│ │
│ ※ ディスクには復号ファイルは書き出されない! │
│ ※ コードの変更は一切不要! │
│ │
└───────────────────────────────────────────────────────────┘
これが透過型のすごいところ:
- php sample.php のコマンドは暗号化前と同じ
- include 'sample.php' や require 'sample.php' もそのまま動く
- ブラウザからのアクセスも変わらない
- ラッパーファイルも不要
- 何もしなくても、ただ動く
paozip には PHP版と Python版があります。大きな違いは「透過型」か「ラッパー型」か。
【PHP版 — 透過型】 【Python版 — ラッパー型】
sample.php(暗号化済み) app.py(ラッパー)→ logic.pye(暗号化)
php sample.php python app.py
│ │
▼ ▼
自動で復号&実行 ラッパーが復号&import
ファイル: 1つだけ ファイル: 2つ必要
変更: 不要 変更: ラッパーを書く
拡張子: .php のまま 拡張子: .pye に変更
| 比較 | PHP版 | Python版 |
|---|---|---|
| 暗号化方式 | 透過型(自動復号) | ラッパー型 |
| 必要なファイル数 | 1つ(暗号化ファイルだけ) | 2つ(ラッパー + 暗号化ファイル) |
| コード変更 | 不要 | ラッパーに1行追加 |
| 拡張子 | .php のまま |
.pye に変更 |
| 動作方式 | PHP拡張(C言語) | Python import フック |
PHP版は拡張機能として動くので、コード変更が一切不要なのが最大のメリットです。
| OS | 対応 |
|---|---|
| Ubuntu / Debian | ✅ |
| CentOS / RHEL / AlmaLinux | ✅ |
| Amazon Linux | ✅ |
| Alpine Linux | ✅ |
| macOS | ✅(開発用) |
| Docker | ✅ |
| PHP バージョン | 対応 |
|---|---|
| PHP 7.4 〜 8.4+ | ✅ |
| 環境 | 対応 |
|---|---|
| コマンドライン (CLI) | ✅ |
| Apache + mod_php | ✅ |
| Apache + PHP-FPM | ✅ |
| Nginx + PHP-FPM | ✅ |
| Docker | ✅ |
| フレームワーク/CMS | 対応 |
|---|---|
| Laravel | ✅ |
| WordPress | ✅ |
| CakePHP | ✅ |
| Symfony | ✅ |
| CodeIgniter | ✅ |
| FuelPHP | ✅ |
| その他 | ✅ |
透過型なので、フレームワーク側の変更は一切不要です。
| サーバータイプ | 対応 |
|---|---|
| VPS / クラウド(AWS, GCP, さくら VPS 等) | ✅ |
| 専用サーバー | ✅ |
| 共用レンタルサーバー | ❌ 多くの場合不可 |
共用レンタルサーバーでは PHP 拡張を自由にインストールできないため、 root 権限のある VPS やクラウドサーバーをおすすめします。
いきなり本番サーバーに入れるのは心配? Docker なら安心して試せます。
必要なもの: Docker Desktop(Windows / Mac)
Step 1: Docker 環境を起動
cd paozip-php-test
docker-compose up -d --build
初回はビルドに少し時間がかかります。コーヒーでも飲んで待ちましょう。
Step 2: コンテナに入る
docker-compose exec paozip-php-test bash
Step 3: セットアップ
cd /app/paozip-php
./setup.sh
╔══════════════════════════════════════╗
║ paozip for PHP セットアップ ║
╚══════════════════════════════════════╝
[1/3] システム確認...
✔ root権限
✔ PHP 8.3
✔ phpize, gcc, make, zlib
[2/3] PHP拡張をビルド...
✔ paozip.so ビルド完了
[3/3] paozip コマンドをビルド...
✔ paozip コマンドビルド完了
══════════════════════════════════════════════════
セットアップ完了!
══════════════════════════════════════════════════
Step 4: 確認
php -m | grep paozip
paozip と表示されれば OK!
必要なもの: root 権限、PHP 7.4+、開発パッケージ
# Ubuntu/Debian
sudo apt install php-dev gcc make zlib1g-dev
# CentOS/RHEL
sudo dnf install php-devel gcc make zlib-devel
# paozip-php フォルダをアップロードしてセットアップ
cd /tmp/paozip-php
sudo ./setup.sh
php -m | grep paozip # → paozip
paozip --version # → バージョン表示
セットアップ後、Web サーバーを再起動してください:
# Apache
sudo systemctl restart apache2
# Nginx + PHP-FPM
sudo systemctl restart php-fpm
paozip sample.php
✔ sample.php を暗号化しました
元ファイル: sample.php.pao
たったこれだけ!
cat sample.php
# → バイナリデータ(読めない!)
元のソースコードは完全に読めなくなっています。
php sample.php
暗号化前とまったく同じ出力! ソースコードは読めないのに、実行はできる。これが透過型暗号化です。
includeやrequireで読み込んでも動きます。ブラウザからも動きます。
paozip --restore sample.php
.pao ファイルから元のソースコードが復元されます。
.paoファイルは大切に保管してください。本番環境には配布しないでください。
paozip <ファイル>
sample.php → 暗号化、sample.php.pao → バックアップ(自動生成)。
すでに暗号化されているファイルはスキップされます。
paozip --restore <ファイル>
.pao ファイルから元のソースコードを復元します。
paozip *.php # カレントディレクトリの全 PHP
paozip app/Controllers/*.php # 特定ディレクトリ
paozip app/Models/*.php app/Services/*.php # 複数指定
| コマンド | 説明 |
|---|---|
paozip <file> |
ファイルを暗号化 |
paozip *.php |
ワイルドカードで一括暗号化 |
paozip -r <file> |
復元(--restore) |
paozip -f <file> |
確認なしで上書き(--force) |
paozip -h |
ヘルプ表示 |
paozip -V |
バージョン表示 |
string|null paozip_encrypt(string $data)
文字列データを暗号化します。
| パラメータ | 型 | 説明 |
|---|---|---|
$data |
string | 暗号化するデータ |
| 戻り値 | string|null | 暗号化されたデータ |
string paozip_decrypt(string $data)
暗号化されたデータを復号します。CLI モード・root 権限が必要です。
通常の実行では自動復号されるので、この関数を呼ぶ必要はありません。
object paozip_seed()
暗号化キーの情報を返します(CLI・root 限定)。
bool paozip_is_licensed()
製品版なら true、体験版なら false。
array paozip_get_product_info()
$info = paozip_get_product_info();
// ['product' => 'paozip for PHP', 'version' => '2.0.0',
// 'manufacturer' => 'Pao@Office', 'licensed' => true, 'email' => '...']
paozip app/Http/Controllers/SecretController.php
paozip app/Models/SecretModel.php
paozip app/Services/*.php
artisan コマンドも Composer オートロードも問題なく動作します。
paozip wp-content/plugins/my-plugin/*.php
paozip wp-content/themes/my-theme/*.php
paozip my-batch.php
php my-batch.php --arg1 --arg2 # 暗号化前と同じ
cron ジョブに設定しているスクリプトも、暗号化後そのまま動作します。
FROM php:8.3-cli
COPY paozip-php/ /tmp/paozip-php/
RUN cd /tmp/paozip-php && ./setup.sh
COPY app/ /app/
RUN paozip /app/src/*.php && rm -f /app/src/*.pao
CMD ["php", "/app/src/main.php"]
ビルド時に暗号化し
.paoを削除すれば、配布イメージにソースは含まれません。
暗号化キーは setup.sh 実行時に自動生成され、paozip.so と paozip コマンドの中に埋め込まれます。ファイルとしては保存されません。
開発サーバーで暗号化したファイルを本番サーバーで実行するには、同じ paozip.so を使う必要があります。
1. 開発サーバーで setup.sh を実行
2. ビルドされた paozip.so をコピー
3. 全サーバーに同じ paozip.so を配置
異なるサーバーで別々に
setup.shを実行すると異なるキーが生成されます。
paozip.so を紛失すると暗号化ファイルを復号できなくなります.pao ファイル(元のソースコード)は大切に保管してください.pao ファイルを配布しないでください| 症状 | 対処法 |
|---|---|
| 「PHP がない」 | apt install php php-dev / dnf install php php-devel |
| 「phpize がない」 | apt install php-dev / dnf install php-devel |
| paozip が読み込まれない | php.ini に extension=paozip.so と paozip.enable=1 を追加 |
| 暗号化ファイルが動かない | 同じ paozip.so を使っているか確認。php -m \| grep paozip で確認 |
| ブラウザで動かない | Apache / PHP-FPM を再起動: systemctl restart apache2 |
| セットアップ失敗 | setup.log を確認 |
paozip for PHP の使用について、paozip for PHP の使用者(以下「利用者様」と称します)と有限会社パオ・アット・オフィス(以下「弊社」と称します)は、以下の各項目についての内容に同意するものとします。
この使用許諾書は、利用者様が paozip for PHP を使用する場合に同意しなければならない契約書です。
利用者様が paozip for PHP を使用する時点で、本使用許諾書に同意されたものとします。同意されない場合は、paozip for PHP を使用する事はできません。
利用者様が paozip for PHP の製品版を使用して開発を行う場合には、1台の開発用コンピュータで paozip for PHP を使用するにあたり、1ライセンスを購入する必要があります。
お客様環境等、開発コンピュータでないマシンで paozip for PHP を使用する場合ライセンスは必要ありません。ランタイムライセンスフリーでございます。
paozip for PHP の著作権は、いかなる場合においても弊社に帰属いたします。
paozip for PHP の使用によって、直接的、あるいは、間接的に生じた、いかなる損害に対しても、弊社は補償賠償の責任を負わないものとします。
paozip for PHP 及びその複製物を第三者に譲渡・貸与する事は出来ません。paozip for PHP を開発ツールとして再販/再配布することを禁止します。なお、暗号化されたファイルを配布することは問題ございません。
弊社は paozip for PHP の仕様を予告無しに変更することがあります。その場合の利用者様に対する情報提供は、弊社 WEB サイトにて行う事とします。
本使用許諾条件は利用者様が paozip for PHP を使用した日より有効です。
paozip for PHP の製品版をご利用頂ける場合は、ライセンスを購入して頂く必要があります。
体験版について: すべての機能を制限なくお試しいただけます(機能制限なし)。
paozip for PHP で開発を行うパソコンの台数
11,000円(税込)
バグフィックス等のバージョンアップは原則として無償とさせて頂きます。
11,000円 × ライセンス数 を下記口座へ銀行振込、または、郵便振替による送金をして下さい。
| 銀行名 | 支店名(コード) | 口座番号 | 名義 |
|---|---|---|---|
| 三菱UFJ銀行 | 新宿支店 (341) | 普通 3831891 | ユ)パオアットオフィス |
| PayPay銀行 | すずめ支店 (002) | 普通 6461359 | ユ)パオアットオフィス |
| 郵便口座番号 | 名義 |
|---|---|
| 00150-0-576845 | 有限会社 パオ・アット・オフィス |
※ 振込手数料は利用者様負担でお願い致します。
見積書/納品書/請求書/領収証の発行は可能でございます。製品サイトでの手続きにより発行いたします。
製品に関するお問い合わせは、下記までお願いいたします。
有限会社 パオ・アット・オフィス
paozip for PHP — あなたの PHP コードを、透過的に、確実に、守ります。
© 2001-2026 有限会社 パオ・アット・オフィス / https://www.pao.ac/