Docker 安装 PHP

PHP 是一种流行的通用脚本语言,特别适合于 Web 开发。通过 Docker 安装和运行 PHP,我们可以快速搭建开发环境,并确保开发和生产环境的一致性。

1. 安装 PHP 镜像

我们可以通过以下两种方式来安装 PHP:

方法一:使用 docker pull 命令

docker pull php:5.6-fpm

方法二:使用 docker search 命令查找可用版本

docker search php

搜索结果示例

NAMEDESCRIPTIONSTARSOFFICIAL
phpWhile designed for web development, the PHP...1232[OK]
richarvey/nginx-php-fpmContainer running Nginx + PHP-FPM...207

2. Nginx + PHP 部署

在实际应用中,我们通常需要将 PHP 与 Web 服务器(如 Nginx)配合使用。以下是具体的配置步骤:

启动 PHP-FPM 容器

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

参数说明

  • --name myphp-fpm:设置容器名称
  • -v ~/nginx/www:/www: 将主机目录挂载到容器内
  • -d:后台运行容器

配置 Nginx

创建 Nginx 配置文件目录并添加配置:

mkdir -p ~/nginx/conf/conf.d

创建配置文件 ~/nginx/conf/conf.d/default.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;
    }
}

启动 Nginx 容器

docker run --name sean-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

3. 高级配置:PHP + MySQL + phpMyAdmin

启动 MySQL 容器

# 创建必要的目录
mkdir -p ~/docker/mysql/{data,logs,conf}

# 启动 MySQL 容器
docker run -p 3306:3306 --name mysql-server \
    -v ~/docker/mysql/conf:/etc/mysql \
    -v ~/docker/mysql/logs:/logs \
    -v ~/docker/mysql/data:/mysql_data \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -d mysql

启动 phpMyAdmin 容器

docker run --name myadmin -d --link mysql-server:db -p 8080:80 phpmyadmin/phpmyadmin

测试 PHP 安装

在 ~/nginx/www 目录下创建 index.php 文件:

<?php
echo phpinfo();
?>