镜像介绍

  • PHP8 + Apache 的官方仓库: https://hub.docker.com/_/php?tab=tags
  • 在该仓库如下位置搜索 Apache 相关的镜像
  • 我下载的是下面这个, PHP 版本是 8.0.6

具体操作步骤

  • 下载镜像: docker pull php:apache-buster, 下载下来后使用 docker images 可以查看到如下信息:
  • 创建容器: docker run -itd --name php -p 80:80 -v /Users/xiaosheng/docker:/var/www/html -v /Users/xiaosheng/docker/etc:/usr/local/etc -v /Users/xiaosheng/docker/conf:/etc/apache2/sites-enabled php:apache-buster
    • 命令详解:
    • --name php: php 表示创建出来的镜像名称
    • -p 80:80: 表示本机的 80 端口映射到容器内的 80 端口, 其中第一个 80 是本机的
    • -v /Users/xiaosheng/docker:/var/www/html: 数据卷挂载, 将本机的代码文件夹映射到容器内的代码文件夹, 冒号前面的是本机的文件夹地址
    • -v /Users/xiaosheng/docker/etc:/usr/local/etc: 将容器内 PHP 的配置文件映射到本机, 这样方便修改配置文件, 冒号前面的是本地的文件夹地址
    • -v /Users/xiaosheng/docker/conf:/etc/apache2/sites-enabled: 将容器内 Apache 站点的配置文件映射到本地, 方便添加和修改站点配置文件, 冒号前面的是本地的文件夹地址
    • php:apache-buster: 表示的是使用哪个镜像来创建容器, 即 镜像名称:tag名称
  • 以上步骤就可以创建出来一个容器, 使用 docker ps -a 来查看容器

PHP 安装扩展

以安装 pdo-mysql 扩展为例

  • 容器中 PHP 没有 MySQL 的扩展, 所以需要自己手动下载, 下载步骤可以参考该链接 https://www.yoyoask.com/?p=122
  • docker-php-source : 在 /usr/src 目录下创建出来 php 文件夹
  • 进入 /usr/src/php/ext 文件夹, 使用 docker-php-ext-install 安装所需要的扩展, 如安装 pdo-mysql 扩展, 可以使用 docker-php-ext-install pdo_mysql 来安装
  • 修改 PHP 的配置文件
    • 去掉 ;extension=pdo_mysql 前面的 ;
  • 使用 docker restart 容器ID 来重启容器

搭建 PHP 站点

  • 在从 Apache 中映射出来的文件夹中添加站点配置文件, 我这里添加了一个 ceshi.conf的文件

    • 文件内容如下:

      <VirtualHost *:80>ServerName www.xiaoming.testDocumentRoot /var/www/html/api.ceshi.test/public<Directory "/var/www/html/api.ceshi.test/public">SetOutputFilter DEFLATEAllowOverride AllRequire all grantedDirectoryIndex index.php index.html index.htm default.php default.html default.htm</Directory>ErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined
      </VirtualHost>
      
  • 重启容器: docker restart 容器ID
  • 在本机 host 文件中添加站点信息
    127.0.0.1 www.xiaoming.test

  • 如果想要在容器内部使用 vim 的话, 可以使用如下命令
    apt-get update apt-get -y install vim

docker 中搭建 PHP8 + Apache 环境相关推荐

  1. 使用docker镜像搭建svn+Apache环境

    2019独角兽企业重金招聘Python工程师标准>>> 环境准备 虚拟机装好之后,按照官网步骤检查虚拟机内核版本,必须在3.10以上版本,故此处安装redhat_7.2 # unam ...

  2. linux docker安装svn,使用docker镜像搭建svn+Apache环境

    环境准备 虚拟机装好之后,按照官网步骤检查虚拟机内核版本,必须在3.10以上版本,故此处安装redhat_7.2 # uname -r 3.10.0-327.el7.x86_64 安装docker: ...

  3. 修正《用Docker快速搭建Go开发环境》文章中的一处错误

    上周写的文章<五分钟用Docker快速搭建Go开发环境>,文章发出去后有不少阅读量,而且从后台看的数据 60%的人都读完了.今天我自己用下面命令往 容器里的 Go 项目里下载包时发现了一处 ...

  4. OSGI企业应用开发(二)Eclipse中搭建Felix运行环境

    上篇文章介绍了什么是OSGI以及使用OSGI构建应用的优点,接着介绍了两款常用的OSGI实现,分别为Apache Felix和Equinox,接下来开始介绍如何在Eclipse中使用Apache Fe ...

  5. 4.1 MyEclipse中搭建Struts2开发环境

    4.1 MyEclipse中搭建Struts2开发环境 (尊重劳动成果,转载请注明出处:http://blog.csdn.NET/qq_25827845/article/details/5320594 ...

  6. Docker Compose搭建consul群集环境(了解Docker Compose及常用命令,Docker四种网络,Doker指定端口)

    文章目录 Docker Compose搭建consul群集环境 认识Docker Compose IConsul Docker Compose容器编排 Dasker Compose配置常用字段 Bos ...

  7. docker配置python环境_PyCharm使用Docker镜像搭建Python开发环境

    在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装.本 ...

  8. 在Eclipse中搭建Python开发环境之三新建python 提示django not found

    python 不是内部或外部命令 现在我假设你的python安装在C:\Python26目录下,设置环境变量方法如下: 方法一.我的电脑->属性->高级->环境变量->系统变量 ...

  9. linux python开发环境_如何在Linux系统中搭建Python编程环境

    1 在大多数的Linux系统中,基本上都默认安装了Python,也就是说,在Linux的系统中基本上是不需要安装什么软件,就可以使用Python. 下面以ubuntu操作系统为例,看看如何在Linux ...

最新文章

  1. Class.forName 和 ClassLoader 到底有啥区别?
  2. 如何制定一份永远完不成的年度计划?
  3. linux 删除mysql
  4. linux偏向swap,solaris/linux 增加swap交换空间的方法
  5. spring aop 注入源码解析 1
  6. android学习资料_5G到来未来五年,纯应用的安卓开发者如何学习通过音视频破局?...
  7. fatal: remote origin already exists.解决方法
  8. bash下: () {} [] [[]] (())的解释
  9. 荣耀9igoogle模式_iGoogle个性化主页的6种替代方法
  10. jQuery源码分析
  11. leetcode72 编辑距离
  12. fscanf不读取_思考了一天,终于把matlab的fscanf中的sizeA搞清楚了
  13. 快速安装 Moodle 指南
  14. 半导体八大工艺流程图_深度研究——半导体之光刻胶,看五大龙头谁能迈出国产化第一步?...
  15. 长春理工大学计算机科学与技术学分,计算机科学与技术专业本科人才培养方案-长春理工大学教务处.PDF...
  16. unity3D: visual Studio 调试 unity
  17. 2022软件项目管理案例教程期末考知识点汇总(期末复习用)
  18. 计算机相关常数,地址常数
  19. [论文笔记]Rob-GAN: Generator, Discriminator, and Adversarial Attacker(CVPR 2019)
  20. 弗洛伊德求最小简单环

热门文章

  1. java接口防_java接口如何有效防止恶意请求
  2. win10 死机 无响应
  3. 20230210使AIO-3568J开发板在Android12下调通3个USB
  4. 初学树莓派——(九)DHT11数据传入ONENET
  5. Linux_CentOS_dmidecode命令详解
  6. matlab处理矩阵的原理,MALAB原理及编程
  7. 美到极致是疯狂(转载)
  8. RGB (255,0,0)或0x00FF0000
  9. Apollo2.0自动驾驶quickstart文件夹之apollo_2_0_hardware_system_installation_guide_v1.md
  10. 数字图像处理(matlab版)课本源码和图片