当前位置: 首页 > 工具软件 > Docker-PHP > 使用案例 >

mac使用docker安装php开发环境

缪茂勋
2023-12-01

前言:mac本机项目工作目录:/Users/a1234/program/www,存放index.php,index.html、项目本身等

1、安装docker软件【这个不用说,自己搜索,傻瓜式安装】

2、打开mac本终端,拉取需要的镜像:

php-fpm:docker pull php:7.3-fpm【版本号自己选】

nginx:docker pull nginx:1.18.0【版本号自己选】

mysql:docker pull mysql:5.7【版本号自己选】

3、运行镜像,生成容器:

        (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  设置网络

4、nginx配置:

        (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相关信息

5、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

 类似资料: