Docker 安装 PHP
1. 查看可用的 php 版本
访问 php 镜像库地址:https://hub.docker.com/_/php。
可以通过 Sort by 查看其他版本的 php。默认是最新版本 php:latest 。
可以通过 Sort by 查看其他版本的 php,默认是最新版本 php:latest。
此外,我们还可以用 docker search php 命令来查看可用版本:
$ docker search php NAME DESCRIPTION STARS OFFICIAL AUTOMATED php While designed for web development, the PH... 1232 [OK] richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 207 [OK] phpmyadmin/phpmyadmin A web interface for MySQL and MariaDB. 123 [OK] eboraas/apache-php PHP5 on Apache (with SSL support), built o... 69 [OK] php-zendserver Zend Server - the integrated PHP applicati... 69 [OK] million12/nginx-php Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS... 67 [OK] webdevops/php-nginx Nginx with PHP-FPM 39 [OK] ...
2. 拉取指定版本的 php 镜像
这里我们拉取官方的 php 镜像,标签为5.6-fpm。
$ docker pull php:5.6-fpm
3. 查看本地镜像
使用以下命令来查看是否已安装了 php:5.6-fpm:
$ docker images 执行结果: REPOSITORY TAG IMAGE ID... php 5.6-fpm 025041cd3aa5
4. 运行 php 容器
$ docker run -d --name php-fpm -v ~/nginx/www:/www php:5.6-fpm
命令说明:
--name php-fpm : 将容器命名为 php-fpm。
-v ~/nginx/www:/www : 将主机中 php 项目的目录 ~/nginx/www 挂载到容器的 /www
5. 制作 nginx 配置文件
创建 ~/nginx/conf/conf.d 目录:
$ mkdir -p ~/nginx/conf/conf.d
在该目录下添加 ~/nginx/conf/conf.d/php-test.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 服务的端口号。
- /www/: 是 php-fpm 中 php 文件的存储路径,映射到本地的 ~/nginx/www 目录。
6. 启动 nginx 容器
docker run --name 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 php-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 php-fpm:php: 把 php-fpm 的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。
7. 验证 php nginx 容器工作情况
我们在 ~/nginx/www 目录下创建 index.php,代码如下:
<?php echo phpinfo(); ?>
浏览器打开 http://127.0.0.1:8083/index.php,显示如下:
下一章:Docker 安装 MySQL
MySQL 是世界上最受欢迎的开源关系型数据库系统,广泛应用于各个行业。MySQL 凭借其可靠性、易用性和高性能,已经成为 Web 应用首选数据库。Docker Hub 提供了各个版本的 MySQL Docker 官方镜像。本文介绍如何使用 Docker 安装 MySQL。