文章中使用的软件:Mac:11.4(macOSBigSur),处理器:IntelCore。Docker:3.3.3targetsupportPHP5.6.xenvironmentsupportPHP7.2.xenvironment下载Docker软件下载安装,不做过多解释,一步步安装即可。下载地址:https://www.docker.com/produc...代理设置"registry-mirrors":["http://registry.docker-cn.com","http://hub-mirror.c.163.com"],配置环境为PHP7.2.x,占用本地8081端口启动docker;下载压缩包:php7-2-x.zip并解压;进入php7-2-x目录,直接向上运行docker-compose;浏览器输入:http://127.0.0.1:8081/;PHP5.6.x,占用本地8082端口启动docker;下载压缩包:php5-6-x.zip并解压;进入php5-6-x目录,直接运行docker-composeup即可;浏览器输入:http://127.0.0.1:8082/;端口映射local.php72.com->127.0.0.1:8081因为在/etc/hosts文件中不能做端口映射,需要借助其他工具。我使用的工具是一个Chrome浏览器插件:SimpleProxy。下载方式:Chrome应用商店下载,搜索SimpleProxy。加载本地扩展,下载地址:chrome-simply-proxy看安装界面:配置成功后访问http://local.php72.com/local.php56.com->127.0.0.1:8082如上.备注docker-compose相关命令docker-composeup构建容器参数[-d]后台运行docker-composestartenable容器docker-composestop停止容器docker-composerestart重启容器docker-composedown删除容器docker-composeps查看当前容器状态php7-2-x目录介绍├──docker-compose.yml├──log│└──nginx│└──local.php72.com_access.log├──phpdocker│├──README.html│├──README.md│├──nginx││└──default.conf│└──php-fpm│├──Dockerfile│└──php-ini-overrides.ini└──web└──phpinfo└──index.php1、docker-compose.yml,容器编排的配置文件,无需改文件。版本:“3.1”服务:网络服务器:图像:nginx:alpinecontainer_name:php7-2-x-webserverworking_dir:/applicationvolumes:-.:/application-./phpdocker/nginx:/etc/nginx/conf.dports:-“8081:80”php-fpm:build:phpdocker/php-fpmcontainer_name:php7-2-x-php-fpmworking_dir:/applicationvolumes:-.:/application-./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini2,log/nginx为日志目录,包括_access.log和_php_errors.log,*为配置的虚拟域名.3、phpdocker/nginx为虚拟域名配置目录,default.conf中配置的虚拟域名为local.php72.com,不过解释太多,大家一看就懂,其他目录和文件也行不需要调整。服务器{听80;服务器名称local.php72.com;client_max_body_size108M;access_log/application/log/nginx/${server_name}_access.log;根/application/web/phpinfo;索引index.php;#尝试直接提供文件,回退到index.php位置/{try_files$uri/index.php$is_args$args;}if(!-e$request_filename){最后重写^.*$/index.php;}location~\.php${fastcgi_passphp-fpm:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;fastcgi_paramPHP_VALUE"error_log=/application/log/nginx/${server_name}_php_errors.log";fastcgi_buffers1616k;fastcgi_buffer_size32k;包括fastcgi_params;}}4。web为代码仓库目录,其中phpinfo为域名local.php72.com指向的代码目录。如果要添加虚拟域名(local.abc.com)配置,只需要3步:把代码文件夹abc放到web目录下;新增一个文件local.abc.com.conf,并将配置文件中的代码目录指向abc目录;重新启动容器docker-composerestart;php5-6-x目录的引入同上。zip文件是如何生成的?大家可能会有疑问,zip文件是怎么生成的,如果我想搭建其他版本的环境怎么办?这些文件在https://phpdocker.io/generator在线生成支持的PHP版本有:5.6.x、7.0.x、7.1.x、7.2.x、7.3.x、7.4.x等,也支持MySQL,MariaDB,Elasticsearch等。根据需要选择后,点击Generateprojectarchive生成压缩包。上面的php5-6-x.zip和php7-2-x.zip就是这样生成的,只是微调而已,比如配置log目录,web目录等等。更多的功能,我们自己去发掘。下载文章中使用的zip文件,请在“新良笔记”公众号回复:phpdocker。推荐阅读SSO单点登录
