Docker配置apache+php7
应网友要求,最近决定尝试一下配置个docker环境用于 ShirneCMS的配套
本来是打算回去网络好点再做,无奈这macos开发环境太CD,不得不折腾一下。
先下载安装,并找相关的文档初步学习一下。
hub.daocloud.io资料看起来挺丰富的,国内的速度也快(此处有伏笔)。
由于网络慢,下载折腾了好久,趁机初步了解了下docker,还有些不太懂的,边试边理解吧。
hub.daocloud.io里面镜像也不少,首先下载了个centos7的镜像来尝试了下。
安装httpd,开启服务,运行
yum install httpd systemctl enable httpd systemctl start httpd
咦!怎么不能后台运行?
看来docker容器跟虚拟机是有区别的,据说开启某个选项就可以运行后台服务了。但是看到镜像里有现成的nginx和apache镜像,就先不那样折腾了。
看了下php的镜像介绍,里面居然有现成的php+apache
镜像列表里太多看不过来,选了个php7.2-apache
docker pull daocloud.io/php:7.2-apache
pull下来一看,8个月前(网站显示6天前)
应该没问题吧,无非不是最新版本的。
于是先开启一个容器看一下效果。php版本是7.2.20的,默认的模块依然没有gd等,pdo_mysql驱动也没有。
按说明安装吧
查了下系统,是debian10的,先改一下apt源,改为阿里云的,速度还是蛮给力的
pt-get update apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng12-dev docker-php-ext-install iconv mcrypt docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ docker-php-ext-install gd
libpng12-dev不存在.
搜索了下,有libpng-dev
结合各方资料,最终需要安装的库修改为以下
apt-get install -y libxmp-dev libfreetype6-dev libjpeg62-turbo-dev libpng-dev libwebp-dev devscripts
./configure失败
freetype-config not found
再三确认,freetype6-dev安装正常,并且也没有其它版本的freetype。
百度搜索这个错误,一律是 apt-get install libfreetype6-dev ,去TMD。
最终找到一篇博文解决了我的疑问
Ubuntu 19.04 PHP 7.3.5 GD库 无法启用 freetype的问题
那么,问题就在要修改php源码,还是换最新的php源码看有没有解决这个问题。改源码看起来挺麻烦。
在daocloud.io的php镜像列表中找了好久,貌似也没有最新版本的,坑!
那么,去docker官网看看吧。
虽然网速慢,但还是能成功的,从docker官网下载了个php:7.2.28-apache (当前php7.2的最新版本)
按上面相同的步骤安装扩展,没有再出现那个错误,算是初步测试成功。
又作了些默认配置及目录调整,最终docker配置参见
开发的话,目前的思路是创建容器后将工作文件拷贝进容器,代码用vscode的远程插件做开发测试,更新时拷贝出来同步git