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

Instalação do PHP no Docker

安装 PHP 镜像

方法一、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                       While designed for web development, the PH...   1232      [OK]       
richarvey/nginx-php-fpm                                         Container rodando Nginx + PHP-FPM capable...   207                  [OK]
phpmyadmin/phpmyadmin                                     Uma interface web para MySQL e MariaDB.          123                  [OK]
eboraas/apache-php                                         PHP5 no Apache (com suporte SSL), construído...   69                   [OK]
php-zendserver                                     Zend Server - a aplicação PHP integrada...   69        [OK]       
milhões12/nginx-php                                         Nginx + PHP-FPM 5d php:5, 5d php:6, 7.0 (NG), CentOS...   67                   [OK]
webdevops/php-nginx                                         Nginx com PHP-FPM                              39                   [OK]
webdevops/php-apache                 Apache com PHP-FPM (baseado em webdevops/php)    14                   [OK]
phpunit/phpunit                                     PHPUnit é um programador-testes orientados para...   14                   [OK]
tetraweb/php                                         PHP 5d php:3, 5d php:4, 5d php:5, 5d php:6, 7.0 para CI e run...   12                   [OK]
webdevops/php                                         PHP (FPM e CLI) service container             10                   [OK]
...

这里我们拉取官方的镜像,标签为5d php:6-fpm

w3codebox@w3codebox:~/php-fpm$ docker pull php:5d php:6-fpm

等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为php,标签为5d php:6-fpm的镜像。

w3codebox@w3codebox:~/php-fpm$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
php                 5d php:6-fpm             025041fpm					0
3cd
5        6 aa
          456d php:3 dias atrás

MB + Nginx

Instalação de PHP Instalação do Nginx no DockerVerificação de Nginx:

,algumas configurações de Nginx podem ser encontradas neste artigo.

Iniciar		PHP: --$	docker	run-fpm -v ~/nginx/www:/www  -nome		myphp5d php:6-fpm

.

  • --Commando de explicação: -fpm nome myphp-fpm。

  • -: Renomear o container para myphp/nginx/www:/www v ~ /www

: Montar o diretório do projeto do host www no container/nginx/conf/Criar ~

conf.d pasta:
/nginx/conf/conf.d

mkdir ~ ~/nginx/conf/conf.d/w3codebox-Adicionar na pasta: -test php.conf

O arquivo, contendo o seguinte conteúdo:

    server	{
       8listen
    0;
    server_name		localhost; / location
        root   /usr/share/nginx/html;
        {
    }
    index		index.html	index.htm	index.php;   5error_page 502 503 504  /500
    location	=	0x.html; /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;
    }
}

Explicação do arquivo de configuração:

  • php:9000: representa php-URL do serviço fpm, explicaremos detalhadamente mais à frente.

  • /www/: é myphp-fpm o caminho de armazenamento do arquivo php, mapeado para o ~ local./nginx/diretório www.

Iniciar nginx:

docker run --nome 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:80Porta de Mapeamento, Mapeie nginx de 80 Mapeado para o local 8083 Porta.

  • ~/nginx/www: É o diretório de armazenamento de arquivos html local,/usr/share/nginx/html é o diretório de armazenamento de arquivos html dentro do container.

  • ~/nginx/conf/conf.d: É o diretório de armazenamento de arquivos de configuração local do nginx,/etc/nginx/conf.d é o diretório de armazenamento de arquivos de configuração do nginx dentro do container.

  • --link myphp-fpm:php: Coloque myphp-fpm da rede integrada nginx,e através da modificação nginx do /etc/hosts,Coloque o domínio php Mapear para 127.0.0.1,faça com que o nginx passe pelo php:9000 Acesso ao php-fpm。

A seguir, no ~/nginx/Crie index.php no diretório www, o código é o seguinte:

<?php
echo phpinfo();
?>

Abrir no navegador http://127.0.0.1:8083/index.php,Mostrando assim: