首页 > 数据库 >docker 中使用 php--apache并加入 mysql 插件

docker 中使用 php--apache并加入 mysql 插件

时间:2024-04-11 17:59:23浏览次数:33  
标签:插件 -- 7.4 mysql apache docker php

官方镜像说明页:

可根据自己需要,选择对应版本的 php 进行下载。

这里使用 php 7.4 + apache 服务的镜像为例:

docker pull php:7.4.33-apache

运行容器:

docker run --name jiuta-php-apache-7.4 -d -p 9000:80 \
-v /mnt/datadisks/docker-root/jiuta/www:/var/www/html \
 --log-opt max-size=10m --log-opt max-file=3 php:7.4.33-apache

默认情况下,apache 的根目录在 /var/www/html 下,可以向上面直接映射进去

/mnt/docker-root/jiuta/www 宿主机php源代码地址 映射到容器里面的目录 /var/www/html

--name jiuta-php-apache-7.4 容器名称 jiuta-php-apache-7.4

默认情况下,镜像内部是没有安装 pdo_mysql、mysqli 扩展的

会遇到错误:Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'

​ Uncaught Error: Call to undefined function mysql_connect() in /var/www/html

需要手动执行安装

# 进入容器
docker exec -it  jiuta-php-apache-7.4 /bin/bash

# 安装 mysql 扩展
 docker-php-ext-install pdo pdo_mysql

重启容器后自动生效

标签:插件,--,7.4,mysql,apache,docker,php
From: https://www.cnblogs.com/z_lb/p/18129760

相关文章

  • 新建一个mysql存储过程
    CREATEDEFINER=`root`@`%`PROCEDURE`updateWorker303`()BEGINDECLAREdoneINTDEFAULTFALSE;DECLARErosteridVARCHAR(50);DECLAREphoneVARCHAR(50);DECLAREworkStatsVARCHAR(50);DECLAREcur1CURSORFORSELECTF_Id,F_Phone,F_WorkerStatusFRO......
  • 并发同步工具CyclicBarrier 的使用介绍
    概念CyclicBarrier是Java中的另一个同步辅助类,它可以让一组线程互相等待,直到所有线程都达到一个屏障点后再继续执行。与CountDownLatch不同的是,CyclicBarrier的计数器可以循环使用,当所有线程都到达屏障点后,计数器会重置,可以被复用。所谓Cyclic即循环的意思,所谓Barrier......
  • 并发同步计数器 CountDownLatch
    概念解释CountDownLatch是Java中的一个同步辅助类,它可以让一个或多个线程等待其他线程完成操作后再继续执行。CountDownLatch内部维护了一个计数器,当计数器的值减为0时,所有等待的线程就会被唤醒。 CountDownLatch的主要方法包括:构造方法:CountDownLatch(intcount)构......
  • php编写函数取得上一月的最后一天
    <?phpdate_default_timezone_set('PRC');/***获取给定月份的上一月最后一天*@param$datestring给定日期*@returnstring上一月最后一天*/functionget_last_month_last_day($date=''){if($date!=''){......
  • 关于git的上传远程仓库的常用命令总结
    我一般上传的步骤:(注意在那个文件夹下打开你要传送的项目)(1)gitinit(2)gitadd.(3)gitcommit-m"上传的项目"(4)与你需要的仓库建立连接gitremoteaddorigin(SSH/HTTPS)(5)gitpush-uoriginmaster/main出现发现远程仓库需要删除的文件下如何进行修改.........
  • 无参构造和有参构造
    在Java中,如果一个类没有显式地定义任何构造方法,那么编译器会自动为它生成一个默认的无参数构造方法(也称为默认构造方法或零参数构造方法)。这个默认的构造方法会简单地调用父类的无参数构造方法(如果存在并且可访问的话)。但是,一旦你在类中定义了至少一个构造方法(无论是有参数的还是......
  • 实验二
    1.实验任务11#include<stdio.h>2#include<stdlib.h>3#include<time.h>45#defineN567intmain()8{9intnumber;10inti;1112srand(time(0));1314for(i=0;i<N;++i){15......
  • 复杂度来源------高可用
           软件系统复杂度的第二个来源高可用系统无中断地执行其功能的能力,代表系统的可用性程度,是进行系统设计时的准则之一。       定义中的关键在于“无中断”,因为无论是单个硬件还是单个软件,都不可能做到无中断,硬件会出故障,软件会有bug;硬件会逐渐老化,软件......
  • 如何在 Pytest 中添加日志记录
    前言在编写和运行测试时,对于调试和排查问题,添加日志记录是一种非常有用的技术。Pytest是一个流行的Python测试框架,开发者通过pytest可以轻松地编写和运行各种测试。本文将介绍如何在Pytest中添加日志记录,以便更好地理解测试执行过程中的细节和问题。pytest.ini我们之前有......
  • tracer ftrace笔记(23)—— 上层trace打印流程-TODO
    1.ATRACE_INT打印不出来分析#defineATRACE_INT(name,value)atrace_int(ATRACE_TAG,name,value)///system/core/libcutils/include/cutils/trace.hstaticinlinevoidatrace_int(uint64_ttag,constchar*name,int32_tvalue){ if(CC_UNLIKELY(atrace_is_tag_enabl......