前言:mac本机项目工作目录:/Users/a1234/program/www,存放index.php,index.html、项目本身等
php-fpm:docker pull php:7.3-fpm【版本号自己选】
nginx:docker pull nginx:1.18.0【版本号自己选】
mysql:docker pull mysql:5.7【版本号自己选】
(1)先创建一个叫:my-net 的网络,之后在run容器时进行关联,使之在同一个网络下面,实现容器之间的通信
docker network create -d bridge my-net
(2)mysql容器运行:
docker run -d --name mysql5.7 --privileged=true --restart always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --network my-net mysql:5.7
(3)php容器运行:
docker run -d -p 9000:9000 --name php7.3 -v /Users/a1234/program/www:/var/www/html --privileged=true --restart always --network my-net php:7.3-fpm
(4)nginx容器运行:
docker run -itd --name nginx1.18.0 -p 80:80 -v /Users/a1234/program/nginx/conf/conf.d:/etc/nginx/conf.d -v /Users/a1234/program/www:/usr/share/nginx/html --privileged=true --restart always --network my-net nginx:1.18.0
(5)参数解释:
-itd:后台运行,并返回一个容器内终端
-v 目录映射,冒号前面为宿主机的目录,后面是容器内目录
--name nginx1.18.0 容器命名
--privileged=true 容器内目录权限
--restart always 总是随着docker启动而启动
--network my-net 设置网络
(1)进入nginx容器内部:
docker exec -it nginx1.18.0 /bin/bash
进入之后先更新apt:apt update
容器内都是简单的linux内核,不包含多余命令,所以需要安装vim:apt install vim
(2)在工作目录创建/etc/nginx/conf/conf.d/default.conf,其中default.conf内容如下:
server {
listen 80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html; #nginx的默认项目目录
index index.html index.htm index.php; #添加index.php
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
root /var/www/html;#php项目的默认目录,和php启动映射的数据卷对应上
fastcgi_pass 127.0.0.1:9000;# 宿主机ip和php映射的宿主机的端口号一致
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #这块也修改一下
include fastcgi_params;
}
}
上述,注释的位置都需要修改,注意:127.0.0.1 要改为宿主机的IP地址
重启nginx:nginx -s reload
创建测试文件:index.php
<?php
phpinfo()
?>
访问:localhost/index.php,结果可以查到php相关信息
(1)zip:
a、安装zip扩展所需的依赖扩展
apt-get update && apt-get install -y zlib1g-dev && apt-get install -y libzip-dev
b、安装并启动zip扩展
docker-php-ext-install zip
(2)redis:
pecl install https://pecl.php.net/get/redis-5.3.5.tgz
docker-php-ext-enable redis
(3)mongodb:原mongo扩展不适用于php7.0以上的版本,且已经停止维护,高版本的需要mongodb扩展:
pecl install https://pecl.php.net/get/mongodb-1.12.0.
docker-php-ext-enable mongo
(4)bcmath:精度计算函数:docker-php-ext-install bcmath