博客
关于我
php取当天的最后一秒_Docker快速搭建PHP开发环境详细教程
阅读量:793 次
发布时间:2023-03-01

本文共 2845 字,大约阅读时间需要 9 分钟。

Docker 安装与配置实践指南

作为一名Web开发程序员,Docker技术无疑是你必须掌握的核心技能之一。Docker是一个开源的应用容器引擎,允许开发者将应用程序及依赖打包为可移植的容器,便于在任何支持Linux的服务器上运行。容器采用沙箱机制,确保各容器之间完全隔离,不会互相影响。

Docker 的核心优势

  • 多环境部署:在单一服务器上可以运行多个独立的环境,节省资源利用率。
  • 环境一致性:每个容器都有固定的环境配置,方便开发、测试和部署。
  • 快速部署:通过容器镜像快速启动应用程序,无需重复配置环境。
  • 接下来,我们将按照Docker标准,基于LAMP架构(Linux、Apache、MySQL、PHP/CGI、Perl/Python、Ruby)搭建一个PHP运行环境。


    安装 Docker

  • 安装 Docker
    使用以下命令安装 Docker:
    yum install docker
  • 验证安装
    查看 Docker 版本:
    docker --version
  • 配置镜像加速
    为提高镜像下载速度,编辑 daemon.json 文件:
    vim /etc/docker/daemon.json

    添加镜像源:

    {"registry-mirrors":["http://hub-mirror.c.163.com"]}

  • Docker 安装 MySQL

  • 拉取 MySQL 镜像

    从镜像库下载 MySQL 5.6 版本:

    docker pull mysql:5.6
  • 启动 MySQL 容器

    创建并运行 MySQL 容器:

    docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456abc --name mysql_1 mysql:5.6
    • -d:让容器在后台运行。
    • -p 3306:3306:将容器内的 MySQL 端口 3306 映射到主机的 3306 端口。
    • -e MYSQL_ROOT_PASSWORD:设置 MySQL 根用户密码。
  • 查看容器状态

    查看容器运行状态:

    docker ps -a

    也可以查看容器日志:

    docker logs -f --tail=10 mysql_1
  • 进入 MySQL 容器

    进入容器并配置用户:

    docker exec -ti mysql_1 /bin/bash
    • -t:创建一个伪终端。
    • -i:允许交互式输入。

  • 安装 PHP-FPM

  • 拉取 PHP-FPM 镜像
    下载 PHP 7.0 的 FPM 镜像:
    docker pull php:7.0-fpm
  • 运行 PHP-FPM 容器
    创建并运行 PHP-FPM 容器:
    docker run -d -v /var/nginx/www/html:/usr/share/nginx/html -p 9000:9000 --link mysql_1:mysql --name abc_phpfpm php:7.0-fpm
    • -v:将主机目录 /var/nginx/www/html 与容器目录 /usr/share/nginx/html 同步。
    • --link:与 MySQL 容器建立连接,确保 PHP-FPM 能够访问 MySQL。

  • 安装 PDO 扩展

  • 进入 PHP-FPM 容器
    docker exec -it abc_phpfpm /bin/bash
  • 安装 PDO 扩展
    执行以下命令安装 PDO_MYSQL 扩展:
    docker-php-ext-install pdo_mysql
  • 验证安装
    查看已安装的 PHP 模块:
    php -m

    可能会显示 pdo_mysql 说明安装成功。


  • 安装 Redis 扩展

  • 下载 Redis 源包
    下载最新版本的 Redis PHP 扩展包:
    curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/3.1.3.tar.gz
  • 解压并安装
    tar xfz /tmp/redis.tar.gzrm -r /tmp/redis.tar.gzmkdir -p /usr/src/php/ext/mv phpredis-3.1.3 /usr/src/php/ext/redis
  • 安装 Redis 扩展
    docker-php-ext-install redis

  • 安装 Nginx

  • 拉取 Nginx 镜像

    下载 Nginx 1.10.3 版本:

    docker pull nginx:1.10.3
  • 运行 Nginx 容器

    创建并运行 Nginx 容器:

    docker run -d -p 80:80 -p 443:443 -v /var/nginx/www/html:/usr/share/nginx/html --link abc_phpfpm:phpfpm --name nginx_1 nginx:1.10.3
    • -p 80:80-p 443:443:将 Nginx 的标准端口 80 和 443 映射到主机。
    • --link:与 PHP-FPM 容器建立连接,确保 Nginx 能够正确反向代理请求。
  • 配置 Nginx

    打开默认配置文件 /etc/nginx/conf.d/default.conf,添加以下内容:

    location ~ .+.php($|/) {    set $script $uri;    set $path_info "";    if ($uri ~ "^(.+.php)(/.+)") {        set $script $1;        set $path_info $2;    }    root /usr/share/nginx/html;    fastcgi_pass phpfpm:9000;    fastcgi_index index.php?IF_REWRITE=1;    fastcgi_param PATH_INFO $path_info;    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;    fastcgi_param SCRIPT_NAME $script;    include fastcgi_params;}
  • 测试访问

    创建 /var/nginx/www/html/index.php 文件,并访问服务器检查是否正常运行:

    curl http://localhost

  • 注意事项

  • 容器一致性:每次部署前,确保所有容器都从最新镜像拉取。
  • 容器日志管理:定期清理旧容器和日志,避免占用过多存储空间。
  • 环境安全:谨慎设置容器内的系统用户和密码,确保环境安全。
  • 通过以上步骤,你已经成功搭建了一个基于 Docker 的 LAMP 架构运行环境。如有问题,可以在评论区留言,我会尽力为你解答!

    转载地址:http://mjtfk.baihongyu.com/

    你可能感兴趣的文章
    PandoraFMS 监控软件 SQL注入漏洞复现
    查看>>
    PandoraFMS 监控软件 任意文件上传漏洞复现
    查看>>
    Parallel.ForEach的基础使用
    查看>>
    parallels desktop for mac安装虚拟机 之parallelsdesktop密钥 以及 parallels desktop安装win10的办公推荐可以提高办公效率...
    查看>>
    paramiko模块
    查看>>
    Spring Cloud 之注册中心 EurekaServerAutoConfiguration源码分析
    查看>>
    ParseChat应用源码ios版
    查看>>
    Part 2异常和错误
    查看>>
    Spring @Async执行异步方法的简单使用
    查看>>
    PAT 1027 Colors in Mars
    查看>>
    PAT 1127 ZigZagging on a Tree[难]
    查看>>
    PAT 2-07. 素因子分解(20)
    查看>>
    PAT-1044. Shopping in Mars (25)
    查看>>
    PAT-乙级-1040 有几个PAT
    查看>>
    PAT1093 Count PAT's (25)(逻辑题)
    查看>>
    PATA1038题解(需复习)
    查看>>
    Patching Array
    查看>>
    Path does not chain with any of the trust anchors
    查看>>
    Path形状获取字符串型变量数据
    查看>>
    PAT甲级——1001 A+B Format (20分)
    查看>>