mac m1 安装docker docker 安装php 5.6 和 7.2 避坑指南

news2024/10/6 22:33:08

通过该link可以下载兼容mac m1核心的docker-desktop:

Docker Desktop - Docker

所有基于amd64架构核心的都加上--platform linux/amd64来运行,这样就能愉快的玩耍了:

docker search centos7 php56 #搜索

docker images #显示所有镜像

docker pull sglim2/centos7

建议使用lnmp一键安装php环境

个人还是喜欢先运行好docker,然后进入后,采用一键lnmp的方式安装,因为后面要用到nginx服务器,lnmp一键安装链接(这个可以节省你太多太多时间,linux下装软件是一个很痛苦的过程,千万别去尝试,除非你是运维):lnmp、lamp、lnmpa一键安装包(Updated: 2022-03-14) | Linux运维笔记

这里有各种php版本绝对够用了,还有php完整版的扩展,非常方便,虽然没有python的conda那么屌,但也是解决方案。

装完后,重启后环境变量不能自动引入,跟虚拟机还是有点差别:我们手动来搞

vim ~/.bashrc 尾部添加 source /etc/profile

以后重启后系统就会自动载入环境变量了。

将虚拟机配置成ssh方式可以连接:

第一步,就是暴露端口下方的连接中已经将端口暴露为1022了;

第二步,就是一轮ssh操作,具体参考链接:

(centos7)创建支持ssh服务的docker镜像_还好还好啦的博客-CSDN博客_docker 创建支持sshd的centos 镜像

yum -y install passwd openssl openssh-server openssh-clients

mkdir /var/run/sshd/

sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

#以下keygen不要加口令密码,不然你链接时要输入一堆密码,比较恶心

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key

ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

/usr/sbin/sshd -D & #报个UsePAM啥的不能用警告,直接忽略

#改密码,就可以登陆了

passwd

phpstorm中建立远程连接:

配置完成后,本地就可以使用远程的php解释器了,此外采用docker共享文件夹的方式,可以做到代码修改的是同一个位置,达到了无需再将phpstorm上传到docker中去

使用php56调试:

唯一注意点是,docker机器在mac上无法桥接,这个有点二逼,但没办法,只有用给定的host,docker才能将远程调试信息发过来,如图配置不能少:

此时右键就可以调试了。

docker run -dit --platform linux/amd64 --privileged -v /Users/senwang/workspace:/home -p 1022:22 -p 8080:80 -p 15672:15672 c13a516c5bea /usr/sbin/init

# elasticsearch docker 配置
docker run -dit --platform linux/amd64 --privileged --name elastic -v /Users/senwang/workspace:/home -p 2202:22 -p 8088:80 -p 15672:15672 -p 9200:9200 -p 9300:9300  c13a516c5bea /usr/sbin/init

php5.6.40中xdebug没有附带安装解决方案:

这里本来不应该是个问题的,可能40是最新版,直接通过pecl无法安装,很神奇,经过比对,xdebug2.5.4对应php5.6.40,从github上找到xdebug,进行编译安装:

GitHub - xdebug/xdebug at XDEBUG_2_5_4  下载zip,解压,然后按照github的步骤,一步步搞下来,就装成功了

在配置xdebug.ini时,参照以下截图,docker访问宿主机时必须是要docker自己提供的host才能访问,再次强调

[xdebug]

zend_extension=xdebug.so

xdebug.remote_enable=1

xdebug.remote_host=docker.for.mac.host.internal

xdebug.remote_port=9000

配置完毕后,就可以用远程解释器调试代码了

进如docker命令:

docker exec -it 容器ID /bin/bash

通过docker ps -a 可以查看容器ID

学习docker入门,直接看bilibili的狂神说docker,通俗易懂,看完就会了:【狂神说Java】Docker最新超详细版教程通俗易懂_哔哩哔哩_bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/77449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何让青少年在AI时代抢占先机

点击蓝字关注我们AI TIME欢迎每一位AI爱好者的加入!11月17日,由智谱AI支持,北京市科委、中关村管委会科普专项经费资助的系列栏目“科普大佬说”很荣幸邀请到国家科技部“新一代人工智能创新发展与应用研究”项目、中小学人工智能教育服务平台…

在VSCode中用Markdown自动生成PPT详细使用指南,支持多种风格和排版,支持ppt转为pdf等

在VSCode中用Markdown自动生成PPT详细使用指南,支持多种风格和排版,支持ppt转为pdf等。 Marp 官网: https://marp.app/ 这款软件也能在 Windows 或 Linux 系统上使用,并不局限于 macOS 系统。 今天要介绍的是 Marp 推出的 VS Cod…

PLC-Recorder实现速度高达0.24ms准确周期采集的方法(带时间戳采集)

目录 1、PLC的发送程序 2、PLC连接配置 3、PLC-Recorder侧的通讯设置 4、PLC-Recorder的通道配置 5、PLC-Recorder的变量配置 6、正常通讯情况的界面 7、记录数据的情况 8、小结 如果要以非常高的速度高速采集各种控制器(典型的是PLC)的数据&…

【Linux】gcc/g++

目录 Linux编译器-gcc/g使用 No.1 背景知识 No.2 预处理(进行宏替换) No.3 编译(生成汇编) No.4 汇编(生成机器可识别代码) No.5 动态链接过程 No.6 gcc选项 Linux编译器-gcc/g使用 No.1 背景知识 预处理(进行…

什么是Serverless?

Serverless 无服务器;无主机; Serverless ,按中文翻译,称为「无服务器」。被认为是新一代的云计算发展方向。 在某些场景可以解读为一种软件系统架构方法,通常称为 Serverless 架构 关于 Serverless 的定义&#xf…

留学Assignment写作怎么注意论证方法?

Assignment的论证方法,对于一篇Assignment而言,学会如何论证,对Assignment的逻辑和内容,有一定的作用。掌握常用的论证方法,了解Assignment要求,在Assignment写作的过程中,学会加以应用&#xf…

VMware 安装、移除Ubuntu系统

目录 前言 安装虚拟机 1. 新建虚拟机 2. 进入向导 3. 选择系统镜像 4. 添加系统设置&#xff0c;用户名主机名密码 <实际没啥用...在系统安装过程中才设置的> 5. 设置虚拟机名称&#xff0c;存放位置 6. 磁盘容量 7. 设置虚拟机硬件配置 8. 自定义硬件 9. 开机…

如何实现jwt鉴权机制?

一、是什么 JWT&#xff08;JSON Web Token&#xff09;&#xff0c;本质就是一个字符串书写规范&#xff0c;如下图&#xff0c;作用是用来在用户和服务器之间传递安全可靠的信息 在目前前后端分离的开发过程中&#xff0c;使用token鉴权机制用于身份验证是最常见的方案&…

Unity 发布安卓包的配置

unity版本是&#xff1a;unity5.6.7&#xff0c;主要是我现在工作中只会在一些工业软件中会用到3d部分&#xff0c;所以版本低了一些&#xff0c;感觉低版本打开unity的速度反而更快一些。发布这个帖子主要目的是 Android SDK 可选项太多了&#xff0c;不熟悉的话&#xff0c;根…

数据技术篇之数据同步

第3章 数据同步 1.数据同步基础 直连同步 &#xff08;1&#xff09;什么是直连同步&#xff1f;直连同步是指通过定义好的规范接口 API 和基于动态链接库的方式直接连接业务库&#xff0c;如 ODBC/JDBC 等规定了统 一规范的标准接口&#xff0c;不同的数据库基于这套标准接口…

gnulib源码安装

接上文《autoconf-archive源码安装》&#xff0c; 链接如下&#xff1a; autoconf-archive源码安装_蓝天居士的博客-CSDN博客 上篇文章在构建autoconf-archive的时候&#xff0c;第一步引导构建就出现了错误&#xff0c;如下所示&#xff1a; $ ./bootstrap.sh ./bootstrap…

SSM+Mysql实现的大学校园兼职系统(功能包含注册登录,发布兼职、个人中心、论坛交流、系统公告、查看兼职信息、查看用户信息、私聊等)

博客目录SSMMysql实现的大学校园兼职系统实现功能截图系统功能使用技术代码完整源码SSMMysql实现的大学校园兼职系统 本系统是一个在线的大学校园兼职系统&#xff0c;商家可以在上面发布自己的兼职&#xff0c;学生可以根据自己的需要&#xff0c;联系兼职&#xff0c;给学生…

JavaScript 中如何实现并发控制?

一、并发控制简介 在日常开发过程中&#xff0c;你可能会遇到并发控制的场景&#xff0c;比如控制请求并发数。那么在 JavaScript 中如何实现并发控制呢&#xff1f;在回答这个问题之前&#xff0c;我们来简单介绍一下并发控制。 假设有 6 个待办任务要执行&#xff0c;而我们…

Kubernetes HPA 动态弹性扩缩容

1.HPA 1.1HPA介绍 1.在Kubernetes中&#xff0c;HPA自动更新工作负载资源&#xff08;例如&#xff1a;Deployment或者StatefulSet&#xff09;&#xff0c;目的是自动扩缩工作负载以满足需求&#xff0c;水平扩缩意味着对增加的负载的响应是部署更多的 Pod&#xff0c;与垂直…

算法工程师深度解构ChatGPT技术

引言 | 本栏目特邀腾讯知名语言文本项目算法工程师冉昱、薛晨&#xff0c;用专业视野带你由浅入深了解ChatGPT技术全貌。它经历了什么训练过程&#xff1f;成功关键技术是什么&#xff1f;将如何带动行业的变革&#xff1f;开发者如何借鉴ChatGPT思路和技术&#xff0c;投入到日…

西门子PLC S7-1500产生精确时间戳及各种数据处理的方法

目录 1、完整程序 2、将时钟转换成整型数 3、获取相对时间 4、转成微秒&#xff08;μs&#xff09;&#xff0c;并转成32位无符号整数 5、翻转的问题 6、有时间戳采集时的对时机制 在数据采集时&#xff0c;精准的相对时间是非常重要的。尤其是高速采集时&#xff0c;上位…

算法训练第四十五天 | LeetCode 70、322、279背包问题

LeetCode 70爬楼梯 题目简析&#xff1a; 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 思路分析&#xff1a; 用完全背包的思路来做&#xff0c;见注释 //普通dppublic int climbStairs(in…

Redis框架(四):大众点评项目 基于Redis的短信登录

大众点评项目 基于Session的短信登录需求&#xff1a;基于Redis实现短信验证登录基于Redis的短信登录实战优化为Redis login方法配置拦截器实现双重验证配置类实现异步/排序 拦截结果展示SpringCloud章节复习已经过去&#xff0c;新的章节Redis开始了&#xff0c;这个章节中将会…

【图像处理】DWT图像处理【含Matlab源码 198期】

⛄一、数字图像处理简介 图像处理基础教程链接 1 【基础教程】基于matlab图像处理&#xff08;表示方法数据结构基本格式类型转换读取点运算代数运算&#xff09;【含Matlab源码 834期】 2 【基础教程】基于matlab图像处理&#xff08;读写显示运算转换变换增强滤波分析统计&a…

jvm学习笔记(一)----jvm简史

文章目录1. JVM简单介绍2. java虚拟机介绍1. JVM简单介绍 虚拟机是一种抽象化的计算机&#xff0c;通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构&#xff0c;如处理器、堆栈、寄存器等&#xff0c;还具有相应的指令系统。Java虚拟机屏…