Docker基于官方镜像构建PHP+Nginx环境
拉取 PHP 镜像
sudo docker pull php:7.4-fpm
新建容器并运行
sudo docker run --rm -it --name containerName php:7.4-fpm /bin/bash
在容器里安装扩展
docker-php-ext-install mysqli
安装zip unzip
apt-get install zip unzip
拉取最新 Nginx 镜像
sudo docker pull nginx
运行 Nginx
sudo docker run --rm -it --name nginx-test -p 8080:80 -d nginx
8080端口为宿主机端口
80端口为docker里nginx映射出来的
所以访问地址为
http://宿主机ip:8080
项目文件结构
└--nginx
| └--conf.d
| └--default.conf
└--www
default.conf 文件内容:
server {
listen 80;
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$ {
root /usr/share/nginx/html;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
关联宿主机目录并启动 php
sudo docker run --rm -d \
--name myphp \
-v "$PWD"/www:/usr/share/nginx/html \
--network my_net --network-alias php \
php:7.4-fpm
关联宿主机目录并启动 nginx
sudo docker run --rm -d \
--name mynginx \
--network my_net --network-alias nginx \
-v "$PWD"/www:/usr/share/nginx/html \
-v "$PWD"/nginx/conf.d:/etc/nginx/conf.d \
-p 8080:80 \
nginx
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!