分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

用Docker启动php-5.6 fpm服务配合宿主机nginx运行php测试环境

发布时间:2023-09-06 02:22责任编辑:赖小花关键词:nginxDocker

因为Ubuntu18.04默认的openssl版本就是1.1.0, 而PHP5.6无法在openssl 1.1下编译 "PHP 5.6 is receiving only security fixes and OpenSSL 1.1 is not supported. Please use PHP 7.x if you want to use OpenSSL 1.1", 所以在Ubuntu18.04下需要通过docker配合宿主机配置php5.6的环境.

在docker hub上PHP官方提供的docker image系列有单独的php, 和apache打包的php, 以及提供fpm服务的php, 因为本机已经安装了nginx, 所以只需要用docker提供fpm服务就可以. 

下载并运行

# 下载docker imagedocker pull php:5-fpm# 创建容器, 因为这里是本机开发环境, 使用默认的网络docker run -d --name phpfpm -v /home/milton/somewhere/wwwroot:/var/www/html php:5-fpm# 查看一下实际分配的IP地址docker network inspect bridge# 测试一下服务端口是否打开telnet 172.17.0.2 9000

修改本地nginx配置

因为php-fpm的服务要修改为docker提供, 而且在docker中php文件的目录是 /var/www/html, 而本地原先使用的是/home/milton/somewhere/wwwroot 需要修改一下配置文件.

原先的配置

 ???????location ~ \.php$ { ???????????root ??????????/home/milton/somewhere/wwwroot; ???????????fastcgi_pass ??127.0.0.1:9000; ???????????fastcgi_index ?index.php; ???????????fastcgi_param ?SCRIPT_FILENAME ?/$document_root$fastcgi_script_name; ???????????include ???????fastcgi_params; ???????} ???????location / { ???????????root ??/home/milton/somewhere/wwwroot; ???????????index ?index.html index.htm index.php; ???????} ???}

需要修改的是 fastcgi_pass 和 fastcgi_param 这两行, 修改为

fastcgi_pass ??172.17.0.2:9000;fastcgi_param ?SCRIPT_FILENAME ?/var/www/html$fastcgi_script_name;

.写一个phpinfo, 重启nginx后, 看看是否能正确被解析.

安装必要的工具和扩展

默认的php:5-fpm不带ifconfig, ping等工具, 也缺一些常用的扩展, 需要自行安装

# 进入docker命令行docker exec -it phpfpm /bin/bash# 安装 ifconfig, pingapt updateapt install net-tools iputils-ping# 安装依赖(安装gd扩展等必须要先安装系统依赖)apt install libfreetype6-dev libmcrypt-dev libpng-dev libjpeg-dev libpng-dev sendmail zlib1g-dev

用 docker-php-ext-install 安装扩展, 这个脚本会自动编译并配置指定的扩展

docker-php-ext-install mysqldocker-php-ext-install gddocker-php-ext-install zipdocker-php-ext-install mbstringdocker-php-ext-install pdo_mysql

重启docker后, 刷新phpinfo页面查看是否生效.

docker的网络

因为docker所处于的默认bridge, IP:172.17.0.x 是可以直接访问宿主机以及外网的, 后续的使用中, 宿主机的服务就要通过宿主机的外部IP而不是127.0.0.1来访问.

用Docker启动php-5.6 fpm服务配合宿主机nginx运行php测试环境

原文地址:https://www.cnblogs.com/milton/p/9946056.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved