English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Docker で PHP インストール

PHPイメージのインストール

方法1、docker pull php

検索 Docker Hub のphpイメージ:

Sort byをクリックして他のphpバージョンを確認できます。デフォルトでは最新バージョンが表示されます php:latest

また、docker search phpコマンドを使用して利用可能なバージョンを確認できます:

w3codebox@w3codebox:~/php-fpm$ docker search php
NAME                    DESCRIPTION                                     STARS   OFFICIAL   AUTOMATED
php                                   PHPTやウェブ開発向けに設計されたが、PH...   1232      [OK]       
richarvey/nginx-php-fpm Nginxを実行中のコンテナ + PHP-FPM対応...   207                  [OK]
phpmyadmin/phpmyadmin   MySQLおよびMariaDBのためのウェブインターフェース。          123                  [OK]
eboraas/apache-php        PHP5 Apache(SSLサポート付き)上で構築された...   69                   [OK]
php-zendserver            Zend Server - 統合PHPアプリケーション...   69        [OK]       
million12/nginx-php       Nginx + PHP-FPM 5.5、 5.6、 7.0(NG)、CentOS...   67                   [OK]
webdevops/php-nginx       PHPとともにNginx-FPM                              39                   [OK]
webdevops/php-apache      PHPとともにApache-FPM(webdevopsに基づく/php)    14                   [OK]
phpunit/phpunit           PHPUnitはプログラマー-指向テスト機能...   14                   [OK]
tetraweb/php              PHP 5.3、 5.4、 5.5、 5.6、 7.0 CIおよび実行用...   12                   [OK]
webdevops/php             PHP(FPMおよびCLI)サービスコンテナ             10                   [OK]
...

ここでは、公式のイメージを、タグが5.6-fpm

w3codebox@w3codebox:~/php-fpm$ docker pull php:5.6-fpm

ダウンロードが完了したら、ローカルのイメージリストでREPOSITORYがphp、タグが5.6-fpmのイメージ。

w3codebox@w3codebox:~/php-fpm$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
php                 5.6-fpm             025041cd3aa5        6 days ago          456.3 MB

Nginx + PHP デプロイメント

Nginxのデプロイメントについては以下を確認してください:Docker で Nginx インストール、Nginxの設定の一部についてはこの記事を参照してください。

PHPを起動  :

$ docker run --name  myphp-fpm -v ~/nginx/www:/www  -d php:5.6-fpm

コマンドの説明:

  • --name  myphp-fpm : コンテナの名前をmyphpにします。-fpm。

  • -v ~/nginx/www:/www : ホストのプロジェクトのディレクトリwwwをコンテナにマウントします。 /www

~を作成  ~/nginx/conf/conf.dディレクトリ:

mkdir ~/nginx/conf/conf.d

このディレクトリに追加 ~/nginx/conf/conf.d/w3codebox-test-php.conf ファイル、内容は以下の通りです:

server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    location ~ \.php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

設定ファイルの説明:

  • php:9000: 表示 php-fpmサービスのURL、以下で詳しく説明します。

  • /www/: は myphp-fpm 中のphpファイルの保存パスは、ローカルの~にマッピングされます。/nginx/wwwディレクトリ。

nginxを起動:

docker run --name w3codebox-php-nginx -p 8083:80 -d \
    -v ~/nginx/www:/usr/share/nginx/html:ro \
    -v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
    --link myphp-fpm:php \
    nginx
  • -p 8083:80ポートマッピング、以下を nginx の 80 はローカルの 8083 ポート。

  • ~/nginx/wwwはローカルの html ファイルの保存ディレクトリです。/usr/share/nginx/html はコンテナ内の html ファイルの保存ディレクトリです。

  • ~/nginx/conf/conf.dはローカルの nginx 設定ファイルの保存ディレクトリです。/etc/nginx/conf.d はコンテナ内の nginx 設定ファイルの保存ディレクトリです。

  • --link myphp-fpm:phpmyphp-fpm のネットワークを nginx、および以下の変更により nginx の /etc/hosts、ドメイン名 php マッピングして 127.0.0.1、nginx が php を通じてアクセスするようにします:9000 ファイルをアクセス php-fpm。

次に、~/nginx/www ディレクトリ下に index.php を作成し、以下のようになります:

<?php
echo phpinfo();
?>

ブラウザで開く http://127.0.0.1:8083/index.php、以下のように表示されます: