首页 » 网站建设 » docker安装phpfpm技巧_运用Dockerfile基于74fpmbuster镜像搭建php74微做事情形

docker安装phpfpm技巧_运用Dockerfile基于74fpmbuster镜像搭建php74微做事情形

访客 2024-11-08 0

扫一扫用手机浏览

文章目录 [+]

大家根福哥学会了利用Dockerfile创建Docker镜像的技巧了,那么我们现在搭建做事器环境就不须要再去下载软件的源代码了,也不须要编译安装了,更加不用操心软件和操作系统的各种兼容问题了。

本日福哥带着大家先安装php的环境,基于微做事思维一个Docker里面只安装最基本的软件即可,之以是要选择fpm版本的PHP环境是由于apache版本的PHP环境不能通过docker-compose发布,这个真是硬伤啊~~毕竟apache的功能远远超过nginx+fpm的组合,这下一夜回到解放前了。


docker安装phpfpm技巧_运用Dockerfile基于74fpmbuster镜像搭建php74微做事情形

2. 镜像

2.1 tag

docker安装phpfpm技巧_运用Dockerfile基于74fpmbuster镜像搭建php74微做事情形
(图片来自网络侵删)

php:7.4-fpm的tag有很多,福哥选择的是php:7.4-fpm-buster版本,这个版本是基于debian操作系统的。

2.2 构造

照例我们先把镜像拉取下来,然后启动一个容器,看看里面都有什么,弄明白了自己才好捣鼓啊!

2.2.1 拉取镜像

dockerpullphp:7.4-fpm-buster

2.2.2 启动临时容器

启动容器的时候把9000端口映射导网关IP上去,这样可以给nginx容器拿来运行php做事。

dockerrun-tid--namephp7.4-hphp7.4-p10.16.1.1:9000:9000php:7.4-fpm-buster

2.2.3 切入临时容器

dockerexec-tiphp7.4/bin/bash

2.2.4 查看目录构造

php程序

root@php7:/var/www/html#ls/usr/local/bin/php/usr/local/bin/php/usr/local/bin/php-config/usr/local/bin/phpdbg/usr/local/bin/phpize

php配置文件

root@php7:/var/www/html#ls/usr/local/etc/php/conf.dphp.ini-developmentphp.ini-production

fpm程序和配置文件

root@php7:/var/www/html#find/-iname"fpm"/usr/local/etc/php-fpm.conf/usr/local/etc/php-fpm.d/usr/local/etc/php-fpm.conf.default/usr/local/sbin/php-fpm/usr/local/php/man/man8/php-fpm.8/usr/local/php/php/fpm

2.2.5 停滞临时容器

dockerstopphp7.4

2.2.6 删除临时容器

dockerrmphp7.43. PHP源代码

3.1 docker-php-source

如果须要源代码可以利用docker-php-source的extract命令将源代码导入到容器的/usr/src/php下面。

docker-php-sourceextract

用完了可以利用docker-php-source的delete命令删除掉源代码。

docker-php-sourcedelete4. PHP扩展

4.1 docker-php-ext-install

4.1.1 安装

安装扩展通过docker-php-ext-install命令,例如:福哥要安装mysql支持的话。

docker-php-ext-installpdo_mysql

4.1.2 卸载

对不起,没有!
由于你不须要就不会去安装它嘛,既然安装了就得用它了!

4.2 docker-php-ext-configure

docker-php-ext-configure是用来给docker-php-ext-install安装扩展时候添加自定义参数的,正常情形下docker-php-ext-install安装扩展只会利用默认参数。

4.3 docker-php-ext-enable

4.3.1 启用

启用扩展通过docker-php-ext-enable命令,例如:福哥要启用mysql支持的话。

docker-php-ext-enablepdo_mysql

4.3.2 禁用

对不起,一样的没有,不想用就别启用咯~~

5. 手动安装

福哥先在临时容器里面手动安装一遍环境,然后再整理到Dockerfile里面,这样大家会看得比较清楚一些~~

5.1 更新apt

我们须要安装一些工具,须要用到apt命令,用之前须要先更新一下。

apt-getupdate

5.2 安装依赖库和工具

部分扩展须要从表面下载,以是wget还是须要的。

apt-get-yinstallwgetlibwebp-devlibjpeg-devlibpng-devlibfreetype6-devlibc-client-devlibkrb5-devlibzip-dev

5.3 准备安装包目录

我们还是建立一个目录用来保存软件的安装包。

mkdir/packagescd/packages

5.4 安装gd扩展

先设置一些配置参数。

docker-php-ext-configuregd--with-jpeg=/usr/include--with-freetype=/usr/include/

现在就可以安装imap扩展了。

docker-php-ext-installgd

安装完毕后利用docker-php-ext-enable启用imap扩展。

docker-php-ext-enablegd

5.5 安装mysql扩展

可以直接安装pdo_mysql扩展。

docker-php-ext-installpdo_mysql

安装完毕后利用docker-php-ext-enable启用pdo_mysql扩展。

docker-php-ext-enablepdo_mysql

5.6 安装redis扩展

利用下面的命令可以安装redis扩展。

wgethttp://pecl.php.net/get/redis-4.1.0.tgztar-xzvfredis-4.1.0.tgzcdredis-4.1.0/usr/local/bin/phpize./configure--with-php-config=/usr/local/bin/php-configmake&&makeinstallcd../

安装完毕后利用docker-php-ext-enable启用redis扩展。

docker-php-ext-enableredis

5.7 安装imap扩展

先设置一些配置参数。

docker-php-ext-configureimap--with-kerberos--with-imap-ssl

现在就可以安装imap扩展了。

docker-php-ext-installimap

安装完毕后利用docker-php-ext-enable启用imap扩展。

docker-php-ext-enableimap

5.8 安装zlib扩展

修正扩展包缺点。

mv/usr/src/php/ext/zlib/config0.m4/usr/src/php/ext/zlib/config.m4

可以直接安装zlib扩展。

docker-php-ext-installzlib

安装完毕后利用docker-php-ext-enable启用zlib扩展。

docker-php-ext-enablezlib

5.9 安装mongodb扩展

利用下面的命令可以安装mongodb扩展

wgethttp://pecl.php.net/get/mongodb-1.7.4.tgztar-xzvfmongodb-1.7.4.tgzcdmongodb-1.7.4/usr/local/bin/phpize./configure--with-php-config=/usr/local/bin/php-configmake&&makeinstallcd../

安装完毕后利用docker-php-ext-enable启用mongodb扩展。

docker-php-ext-enablemongodb6. 配置

6.1 配置文件

利用生产环境的配置文件模板复制出php.ini文件。

cd/usr/local/etc/php/cpphp.ini-productionphp.ini

6.2 关闭缺点提示

display_errors=Off

6.3 设置缺点级别

error_reporting=E_ALL&~E_NOTICE&~E_STRICT&~E_DEPRECATED

6.4 设置缺点日志

error_log=/var/log/php_errors.log

6.5 设置时区

date.timezone=Asia/Shanghai7. 测试

通过实行一段代码测试时区设置和缺点设置是否精确。

php-r"echo\"Nowis\".date(\"Y-m-dH:i:s\").\"\n\";bad_fun_call();"

7.1 韶光

韶光没有问题。

Nowis2021-05-2414:02:33

7.2 缺点日志

缺点日志也没有问题。

root@php7:/usr/local/etc/php#cat/var/log/php_errors.log[24-May-202114:02:33Asia/Shanghai]PHPFatalerror:UncaughtError:Calltoundefinedfunctionbad_fun_call()inCommandlinecode:1Stacktrace:#0{main}throwninCommandlinecodeonline1

7.3 扩展模块

7.3.1 通过phpinfo验证

通过phpinfo查看前面安装的模块,可以看到全部都生效了。

7.3.2 通过代码验证

验证redis扩展

php-r"var_dump(class_exists('Redis'));"

验证mongodb扩展

php-r"var_dump(class_exists('\MongoDB\Driver\Manager'));"8. Dockerfile

末了福哥把前面的设置命令整理到一起写成Dockerfile,这样大家就可以通过Dockerfile安装环境了。

FROMphp:7.4-fpm-busterMAINTAINERAndyBogateMAINTAINERtongfu@tongfu.netMAINTAINERhttps://tongfu.net/dockerfileMAINTAINER2021/5/24MAINTAINERv1.0.0EXPOSE9000WORKDIR/var/www/html#envRUNapt-getupdate\&&apt-get-yinstallwgetlibc-client-devlibkrb5-devlibzip-dev#sourceextractRUNdocker-php-sourceextract#packagebuildRUNmkdir/packages#redisextensionRUNcd/packages\&&wgethttp://pecl.php.net/get/redis-4.1.0.tgz\&&tar-xzvfredis-4.1.0.tgz\&&cdredis-4.1.0\&&/usr/local/bin/phpize\&&./configure--with-php-config=/usr/local/bin/php-config\&&make&&makeinstall\&&cd../\&&docker-php-ext-enableredis#imapextensionRUNdocker-php-ext-configureimap\--with-kerberos\--with-imap-ssl\&&docker-php-ext-installimap\&&docker-php-ext-enableimap#zlibextensionRUNmv/usr/src/php/ext/zlib/config0.m4/usr/src/php/ext/zlib/config.m4\&&docker-php-ext-installzlib\&&docker-php-ext-enablezlib#mongodbextensionRUNcd/packages\&&wgethttp://pecl.php.net/get/mongodb-1.7.4.tgz\&&tar-xzvfmongodb-1.7.4.tgz\&&cdmongodb-1.7.4\&&/usr/local/bin/phpize\&&./configure--with-php-config=/usr/local/bin/php-config\&&make&&makeinstall\&&cd../\&&docker-php-ext-enablemongodb#confiugureRUNcd/usr/local/etc/php\&&cpphp.ini-productionphp.ini\&&sed-i's/display_errors\s=./display_errors=Off/'php.ini\&&sed-i's/error_reporting\s=./error_reporting=E_ALL\&~E_NOTICE\&~E_STRICT\&~E_DEPRECATED/'php.ini\&&sed-i's/;error_log\s=\sphp_errors\.log/error_log=\/var\/log\/php_errors.log/'php.ini\&&sed-i's/;date\.timezone\s=./date.timezone=Asia\/Shanghai/'php.ini#packagedeleteRUNrm-rf/packages#sourcedeleteRUNdocker-php-sourcedelete9. 总结

本日福哥带着大家利用Dockerfile基于7.4-fpm-buster镜像搭建了php7.4的微做事环境了,可以创造利用Dockerfile办法搭建环境我们真的只须要关心我们须要关心的部分,繁琐的编译参数、依赖库、环境参数等等一系列的问题根本镜像都给我们办理好了。

下一课,福哥会带着大家利用前面学到的关于Dockerfile的技巧综合到一起搭建TFUMS项目的运行环境,敬请期待~~

https://m.tongfu.net/home/35/blog/513321.html

标签:

相关文章

PHP实现文字转图片的代码与应用

图片处理技术在各个领域得到了广泛应用。在PHP编程中,文字转图片功能同样具有很高的实用价值。本文将针对PHP实现文字转图片的代码进...

网站建设 2025-03-02 阅读1 评论0

NAN0017探索新型纳米材料的奥秘与应用

纳米技术作为一门新兴的交叉学科,近年来在材料科学、生物医学、电子工程等领域取得了举世瞩目的成果。其中,NAN0017作为一种新型纳...

网站建设 2025-03-02 阅读3 评论0

L26368XO代码其背后的创新与突破

编程语言在各个领域发挥着越来越重要的作用。在众多编程语言中,L26368XO代码以其独特的优势,成为了业界关注的焦点。本文将深入剖...

网站建设 2025-03-02 阅读1 评论0

HTML字体背景打造个化网页设计的关键元素

网页设计已经成为现代网络传播的重要手段。在众多网页设计元素中,字体和背景的搭配尤为关键。本文将从HTML字体背景设置的角度,探讨其...

网站建设 2025-03-02 阅读1 评论0