广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >docker本地PHP开发环境搭建
  • 738
分享到

docker本地PHP开发环境搭建

phpdockernginxlinux安装PHP运行环境 2023-09-02 05:09:24 738人浏览 泡泡鱼
摘要

一、搭建本地PHP开发环境 概述 本文简单介绍通过启动一个Nginx和fpm容器来搭建一个php WEB运行环境,以文档命令为例,H:/home/code/Docker/web 目录下可以放多个子项目,只需针对不同的项目配置不同的nginx

一、搭建本地PHP开发环境

概述

本文简单介绍通过启动一个Nginx和fpm容器来搭建一个php WEB运行环境,以文档命令为例,H:/home/code/Docker/web 目录下可以放多个子项目,只需针对不同的项目配置不同的nginx站点文件,在站点中指定下级项目目录即可,以后台项目admin为例, 则具体的子路径为H:/home/code/docker/web/admin,容器内路径为/var/www/html/admin

启用多项目需要修改的站点配置:

  1. root目录指定到下级项目路径

  2. fastcgi_param  SCRIPT_FILENAME 指定到下级项目路径

启用其他版本的php

如果需要启动其他PHP的版本,只需要再使用别的端口重新启动一个php-fpm容器即可,只需要在 -d 参数后修改依赖的镜像版本,比如:php:8.1-fpm-alpine、php:7.4-fpm-alpine、php:5.5-fpm-alpine

注:官方PHP镜像缺少常用扩展,比如Redis,gd等,需自行基于官方镜像安装扩展二次打包, 或启动后手动安装扩展,也可使用其它途径提供的带常用扩展的镜像。

其它

使用docker compose 一次性编排多个容器,可一键启动项目所需全部容器, 见下文。

具体步骤

前置条件 : 已安装docker

方法一:手动搭建

1. 启动一个docker网络

docker network create --driver=bridge  nginx_network

2. 启动php8.1版本的 php-fpm容器

docker run --name  php-fpm-81 \-v H:/home/code/docker/web:/var/www/html \--network nginx_network \--ip 172.18.0.3 \--privileged=true \-d php:8.1-fpm-alpine

3. 启动nginx容器

docker run --name nginx-common \-p 8008:80 \-v H:/home/code/docker/web:/var/www/html \-v H:/home/docker/nginx_conf.d:/etc/nginx/conf.d \--network nginx_network \--ip 172.18.0.4 \--privileged=true \-d nginx

上述命令参数解析:

--name   为启动的容器命名

-p 映射端口,把本地宿主机的8008端口 映射到容器的80端口,访问本地8008端口即访问容器80端口

-v  映射本地文件目录 到 容器内部目录,比如项目代码目录

--network 关联容器网络

--ip 指定容器ip

--privileged 启用桥接

-d  后台启动一个容器,使用名为为php ,tag为 8.1-fpm-alpine 的镜像,本地不存在会从官方仓库拉取

4. 创建nginx站点配置

 创建项目 admin.conf 文件, 把文件放到 H:/home/docker/nginx_conf.d 目录中,也就是启动nginx容器时 -v 命令映射的本地nginx站点配置文件夹

server {    listen       80;    server_name  192.168.0.195;    location / {        if (!-e $request_filename){            rewrite ^/(.*) /index.php last;        }        root   /var/www/html/admin;        index  index.html index.htm index.php;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /var/www/html/admin;    }    location ~ \.php$ {root   /var/www/html;        fastcgi_pass   172.18.0.3:9000; #php容器的ip地址        fastcgi_index  index.php;        fastcgi_param  SCRIPT_FILENAME  /var/www/html/admin/$fastcgi_script_name; #fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;        include        fastcgi_params;    }  }

访问  8008端口 打开admin项目

方法2:docker-compose一键启动

也可使用docker-compose服务编排,一键启动上述php和nginx等服务容器

创建 docker-compose.yml 文件,内容如下,修改项目路径和配置文件路径为自己的电脑文件夹路径:

#yaml 配置实例version: '3'services:  php:    container_name: php-fpm-81    image: php:8.1-fpm-alpine    restart: always    networks:    - nginx_network    ports:      - "9000:9000"    volumes:      - "H:/home/code/docker/web:/var/www/html" #代码目录      #- "H:/home/code/docker/php81/etc:/usr/local/etc" #php配置文件夹,可选      #- "H:/home/code/docker/php81/log:/var/log/php" #log,可选    networks:     nginx_network:      ipv4_address: 172.18.0.3  nginx:    container_name: nginx-common    image: nginx:latest    restart: always    environment:      - TZ=Asia/Shanghai    ports:      - "8008:80"    depends_on:      - "php"    volumes:      - "H:/home/code/docker/web:/var/www/html" #代码目录      - "H:/home/docker/nginx/nginx_conf.d:/etc/nginx/conf.d" #配置文件目录      #- "H:/home/docker/nginx/log:/var/log/nginx" #log,可选    networks:    nginx_network:        ipv4_address: 172.18.0.4      networks:  nginx_network:    driver: bridge    ipam:     config:     - subnet: 172.18.0.0/16    

在上述文件存在的目录 执行  docker-compose up -d  命令启动容器, 访问8008端口查看项目运行情况

二、redis 和 Mysql 的启动

redis启动

创建redis配置文件 myredis.conf , 对应本地文件夹为H:/home/code/docker/redis

port 6379timeout 65maxclients 10000databases 16maxmemory 1048576000appendonly yes#protected-mode no #关闭保护模式#bind 0.0.0.0 requirepass 123456 #设置密码

启动redis

docker run \--name php-redis \--restart=always \--log-opt max-size=100m \--log-opt max-file=2 \-p 6375:6379 \-v H:/home/code/docker/redis/myredis.conf:/etc/redis/redis.conf \-v H:/home/code/docker/redis/data:/data \--network nginx_network \--ip 172.18.0.5 \--privileged=true \-d redis redis-server /etc/redis/redis.conf \--appendonly yes  --requirepass 123456 

mysql启动

创建配置文件my.cnf,放入目录为 H:/home/code/docker/mysql/conf

[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]init_connect='SET collation_connection = utf8_unicode_ci'init_connect='SET NAMES utf8'character-set-server=utf8collation-server=utf8_unicode_ciskip-character-set-client-handshakeskip-name-resolve

启动mysql

docker run -p 3307:3306 \--name mysql \--restart=always \-v H:/home/code/docker/mysql/data:/var/lib/mysql \ #数据目录-v H:/home/code/docker/mysql/conf:/etc/mysql/conf.d \ #配置目录-v H:/home/code/docker/mysql/log:/var/log/mysql \ #log目录--network nginx_network \--ip 172.18.0.6 \--privileged=true \-e MYSQL_ROOT_PASSWord=123456 \-d mysql:5.7

docker-compose启动 php+nginx+redis+mysql

附带php、nginx、redis、mysql 版本的docker-compose.yml 文件如下

#yaml 配置实例version: '3'services:  php:    container_name: php-fpm-81    image: php:8.1-fpm-alpine    restart: always    networks:    - nginx_network    ports:      - "9000:9000"    volumes:      - "H:/home/code/docker/web:/var/www/html" #代码目录      #- "H:/home/code/docker/php81/etc:/usr/local/etc" #php配置文件夹,可选      #- "H:/home/code/docker/php81/log:/var/log/php" #log,可选    networks:     nginx_network:      ipv4_address: 172.18.0.3  nginx:    container_name: nginx-common    image: nginx:latest    restart: always    environment:      - TZ=Asia/Shanghai    ports:      - "8008:80"    depends_on:      - "php"    volumes:      - "H:/home/code/docker/web:/var/www/html" #代码目录      - "H:/home/docker/nginx/nginx_conf.d:/etc/nginx/conf.d" #配置文件目录      #- "H:/home/docker/nginx/log:/var/log/nginx" #log,可选    networks:    nginx_network:        ipv4_address: 172.18.0.4  redis:    image: redis:latest    container_name: php-redis    restart: always    privileged: true #root权限    ports:      - "6375:6379"    volumes:      - "H:/home/code/docker/redis/myredis.conf:/etc/redis/redis.conf"#配置目录      - "H:/home/code/docker/redis/data/:/data" #数据目录    networks:      nginx_network:      ipv4_address: 172.18.0.5    command: redis-server /etc/redis/redis.conf #已对应的配置文件启动  mysql:      image: mysql:5.7      container_name: php-mysql      privileged: true      ports:        - "3307:3306"      volumes:        - "H:/home/code/docker/mysql/data:/var/lib/mysql" #数据目录        - "H:/home/code/docker/mysql/conf:/etc/mysql/conf.d" #配置目录        - "H:/home/code/docker/mysql/log:/var/log" #log目录      environment:        - MYSQL_ROOT_PASSWORD=123456      networks:        nginx_network:         ipv4_address: 172.18.0.6networks:  nginx_network:    driver: bridge    ipam:     config:     - subnet: 172.18.0.0/16    

三、docker常用命令参考

查看镜像

docker images

查看容器

docker ps 

docker ps -a

构建自定义镜像

docker build -t my_images:1.0 .

查看容器信息

docker inspect 容器id

登录docker容器内部

docker exec -it 容器id bash

宿主机和容器复制文件

docker cp /home/docker/nginx/xxx  容器id:/etc/nginx/xxx

docker cp 容器id:/etc/nginx/xxx   /home/docker/nginx/xxx  

docker网络

查看网络列表:docker network list

查看网络详情:docker network inspect  网络名称

来源地址:https://blog.csdn.net/github_39164078/article/details/129441871

--结束END--

本文标题: docker本地PHP开发环境搭建

本文链接: https://www.lsjlt.com/news/389798.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • docker本地PHP开发环境搭建
    一、搭建本地PHP开发环境 概述 本文简单介绍通过启动一个nginx和fpm容器来搭建一个php web运行环境,以文档命令为例,H:/home/code/docker/web 目录下可以放多个子项目,只需针对不同的项目配置不同的nginx...
    99+
    2023-09-02
    php docker nginx linux安装PHP运行环境
  • docker怎么搭建php开发环境
    要搭建PHP开发环境,可以使用Docker来快速部署。以下是基本的步骤:1. 安装Docker:根据你的操作系统,安装适合的Dock...
    99+
    2023-08-18
    docker php
  • docker如何搭建php开发环境
    要搭建一个基于Docker的PHP开发环境,可以按照以下步骤进行操作:1. 安装Docker:根据你的操作系统,安装适合的Docke...
    99+
    2023-08-23
    docker php
  • 本地使用Docker搭建go开发环境的全过程
    目录前言安装1.docker安装2.go安装3.配置4.运行5.完成总结前言 对于我这种小白来说,本地环境搭建常规的操作一向是直接去go官网下载go安装包,本机进行安装,然后配置相应...
    99+
    2022-11-13
  • 怎么搭建本地K8s开发环境
    这篇文章主要介绍“怎么搭建本地K8s开发环境”,在日常操作中,相信很多人在怎么搭建本地K8s开发环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么搭建本地K8s开发环境”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-15
  • docker搭建php环境
    PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根...
    99+
    2023-08-31
    php 开发语言 服务器
  • Docker版PHP多版本环境搭建
    目录 1. 前言 2. 目标 3. 实现原理图 4. 环境准备 5. 实战演练 (1)创建挂载目录 (2)默认配置文件 (3)网络配置 (4)启动容器 (4)Nginx配置 (5)重启容器,进行验证即可 6. 扩展相关 (1)修改源 (2)...
    99+
    2023-09-14
    Nginx PHP 容器 docker
  • docker怎么搭建python开发环境
    要搭建Python开发环境,可以使用Docker来进行部署。以下是一些步骤来设置Docker中的Python开发环境:1. 首先,安...
    99+
    2023-08-18
    docker python
  • 使用Docker Compose轻松搭建PHP开发环境
    随着时代的发展,开发环境搭建越来越迅速高效。而Docker Compose作为一种容器编排工具,可以让我们轻松地配置和管理多个Docker容器,从而快速搭建PHP开发环境。本文将介绍如何使用Docker Compose搭建PHP开发环境,并...
    99+
    2023-10-21
    Docker PHP compose
  • 如何使用Docker快速搭建多版本PHP开发环境
    本篇内容主要讲解“如何使用Docker快速搭建多版本PHP开发环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Docker快速搭建多版本PHP开发环境”吧!目标支持 PHP 5.6.x...
    99+
    2023-07-04
  • 如何利用Docker搭建本地https环境
    这篇文章将为大家详细讲解有关如何利用Docker搭建本地https环境,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是 https我们都知道 web app 的运行都是建立在网络应用层 http 协议...
    99+
    2023-06-07
  • win10怎么搭建本地php环境搭建
    在WEB开发中,PHP也许是最常用的服务器端脚本语言之一。为了更加方便的开发与测试,希望在本地电脑上搭建PHP环境,那么如何实现呢?下面是具体的步骤说明。步骤一:安装Web服务器搭建PHP环境的关键是安装Web服务器,Windows系统下可...
    99+
    2023-05-14
  • Windows 11 本地 php 开发环境搭建:PHP + Apache + MySQL +VSCode 安装和环境配置
    目录 前言1. PHP 的下载、安装和配置1.1 下载 php1.2 安装 php1.3 配置 php 系统变量1.4 配置 php.ini 2. Apache 的下载、安装和配置2.1...
    99+
    2023-09-02
    php apache 后端 php环境配置 windows
  • docker搭建nginx+php环境
    一、docker拉取nginx和php镜像 命令如下: docker pull nginx:latestdocker pull php:7.4-fpm 创建本地挂载路径: mkdir -p /dock...
    99+
    2023-09-02
    nginx php docker
  • docker搭建oracle开发环境的方法
    本篇内容主要讲解“docker搭建oracle开发环境的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker搭建oracle开发环境的方法”吧!oracle太大了,对于开发人员来说,在...
    99+
    2023-06-19
  • Docker中怎么搭建Golang开发环境
    今天就跟大家聊聊有关Docker中怎么搭建Golang开发环境,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。获取Docker镜像我们使用官方最新稳定...
    99+
    2022-10-18
  • Linux搭建PHP开发环境
    集百家之所长搭建的PHP环境 文章目录 集百家之所长搭建的PHP环境1安装SSH和Xftp2安装宝塔面板3安装Mysql4 安装ApachePHP 安装配置Apache至此环境搭建成功 ...
    99+
    2023-08-31
    php linux mysql apache 服务器
  • 实例介绍:使用Docker快速搭建多版本PHP开发环境
    本篇文章给大家带来了关于PHP的相关知识,其中主要介绍了关于怎么使用docker快速搭建多版本PHP开发环境的相关内容,下面一起来看一下希望对大家有帮助。文章中使用的软件:Mac:11.4(macOS Big Sur) ,处理器为:Inte...
    99+
    2023-05-14
    php
  • docker搭建php环境安装
    目录 一、什么是php?  二、docker拉取nginx和php镜像 三、创建容器   四、 测试 一、什么是php? PHP定义:一种服务器端的HTML脚本/编程语言,是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高...
    99+
    2023-09-22
    php 开发语言 docker
  • Docker搭建PHP运行环境
    目录 Docker 安装 PHP Docker 安装 Nginx  ​编辑运行nginx容器 nginx安装成功 Nginx + PHP 部署PHP项目 启动 PHP:  启动 nginx: 查看正在运行的容器:  访问域名测试搭建结果 D...
    99+
    2023-09-04
    php docker 运维
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作