Docker アプリ導入

install_php72_base_docker.sh

helper.sh が配布するスクリプトです。/data/php7.2 の構成を作成し、php.ini がなければ基本設定を書き込み、php:7.2-fpm を取得してアプリケーション、設定、ログをマウントした自動再起動コンテナを起動します。

ワンライナー

curl -fL 'https://www.helper.sh/install_php72_base_docker.sh' -o './install_php72_base_docker.sh'

このコマンドは同梱ファイルをダウンロードするだけで、実行しません。保存したソースを確認し、バージョンを照合してから実行するか判断してください。

保存したファイルを照合

このページのビルドに同梱されたバイト列と照合します。ファイルはこのタブ内で処理し、この機能は送信・保存しません。上限は2 MiBです。

期待する SHA-256
16e8a4eadeee92eb8c1cef84932dbeaf10bacb92e43a7003f632e6a0b3204b9b

同梱ファイルのバイト数: 4402

チェックサムファイルを保存

スクリプトとチェックサムを同じディレクトリに保存してください。GNU Coreutils のある Linux では次のコマンドでバイト列だけを検査できます。スクリプトは実行しません。コマンドには元のファイル名が必要です。

sha256sum --check './install_php72_base_docker.sh.sha256'

まだ照合していません。

スクリプトとチェックサムは同じサイトから取得し、独立した署名ではありません。一致しても安全性、上流の真正性、ホストへの適合性は証明しません。可変の依存先は別途確認してください。

検証と制限を読む

実行条件

  • Linux と systemd が動作し、Docker と root 権限を利用できること
  • 既定ではホストの 9000 番ポートが未使用であること
  • ホストの /data に書き込み権限があること

適用場面

  • PHP 7.2 が必要な既存アプリの互換性を隔離環境で確認する
  • PHP コード、設定、ログをホストの /data/php7.2 以下で管理する
  • Nginx などの前段 Web サーバーを接続する前に、レビュー済みの構成を再現する

主なポイント

  • /data/php7.2/www、conf.d、logs を作成する
  • php:7.2-fpm を取得し、自動再起動設定付きコンテナとして実行する
  • 実用的な初期値の php.ini を、ファイルがない場合に作成する
  • すぐに確認できるよう、存在しない場合はサンプル index.php を作成する

推奨手順

  1. Docker とホストのポート設定を確認し、対象ホストでの変更をレビューします。
  2. 実行する場合は sudo または root 権限が必要です。
  3. /data/php7.2 の既存ファイルを保全してから、ディレクトリとコンテナの変更内容を確認します。
  4. HTTP サイトとして使う場合は、別途 Web サーバーから PHP-FPM へ内部接続を設定し、疎通を確認します。

注意事項

  • PHP 7.2 はサポート終了済みです。互換性が必要な場合に用途を限り、移行を計画してください。
  • PHP-FPM は HTTP サーバーではありません。FPM ポートを公開せず、確認済みの Web サーバーから内部接続してください。
  • このスクリプトはバックアップを作成せず、同名コンテナを強制削除して再作成します。実データでは使わず、先に /data/php7.2 を保全してください。

対応範囲と制限

  • Linux、systemd、Docker、root 権限が必要です。既定では 9000 番ポートを公開します。PHP 7.2 はサポート終了済みのため、旧アプリとの互換性が必要な場合に限ってください。
  • 指定できる引数は --data-dir、--container-name、--port です。起動するのは PHP-FPM で、HTTP サーバーではありません。確認済み Web サーバーから内部接続し、FPM ポートを公開しないでください。
  • dry-run とバックアップはありません。再実行時、同名コンテナがあれば強制削除して置き換えます。ホスト側のマウントディレクトリは再利用されます。

変更されるファイル、サービス、データ

  • /data/php7.2/www、conf.d、logs を作成します。php.ini とサンプル index.php は存在しない場合だけ作成します。
  • Docker が停止中なら起動し、変更され得る php:7.2-fpm タグを取得します。ホストの 9000 番からコンテナの 9000 番を公開し、自動再起動コンテナを作成します。
  • ホスト側ディレクトリ内の既存ファイルは残り、コンテナにマウントされます。準備確認の `php -v` は、Web サーバー経由の FPM リクエストを検証しません。

読み取り専用の確認

  • `docker ps --filter name=php72` と `docker logs --tail 100 php72` を確認します。
  • `docker inspect php72 --format '{{json .HostConfig.PortBindings}} {{json .Mounts}}'` でポート公開とマウントを確認します。
  • `docker exec php72 php -v` でランタイムを確認します。FPM 接続は設定済みの内部 Web サーバー経由で別途検証します。

失敗した場合

コンテナが準備できない場合は Docker ログ、ポート競合、/data/php7.2 内のファイルを確認してください。`php -v` は HTTP サイトが応答している証明にはなりません。再試行前にマウント済みファイルを保全してください。

実行前にダウンロードして内容を確認し、バージョンを検証してください。ハッシュはこのバイト列を識別するだけで、安全性を証明しません。pipe 実行は取得した内容を直ちに実行し、上流の依存関係は変化することがあります。

関連トピック

Docker サービス: 接続口と残存データを確認

HTTP、SQL、キャッシュ、FastCGI、イメージ内アプリを、プロトコルとデータ・置換影響で選びます。

トピックを見る

旧 PHP: 互換性とアプリの準備状態を分けて確認

PHP 7.2 と Workerman 3.5.24 は、移行計画を伴う既存環境の互換性確認に限定してください。

トピックを見る