1. 众所周知,Mac M1 如果不用Docker 对于开发者来说就是个摆设,很多软件都不支持原生的ARM内核的系统,在以下处理之前,我好像还改了啥,大概就是让mac支持intel系统的软件
2. 这个docker一旦下载用起来,没事不要升级,我因为闲着蛋疼升级了Docker,导致容器找不到共享卷,网上也没有相关解决方案,大概率是这种问题不会出现在其他系统里;


docker search centos7 #搜索
docker images #显示所有镜像
docker pull couchbase/centos7-systemd
这里讲解下/bin/bash 和/usr/sbin/init的区别,下面的启动容器中会用到
首先,docker run -it centos 的意思是,为centos这个镜像创建一个容器
-it就等于 -i和-t,这两个参数的作用是,为该docker创建一个伪终端,这样就可以进入到容器的交互模式?(也就是直接进入到容器里面)
后面的/bin/bash的作用是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器启动后就会马上kill itself,这个/bin/bash就表示启动容器后启动bash。
/usr/sbin/init 启动容器之后可以使用systemctl方法
--privileged=true 获取宿主机root权限(特殊权限-)
su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。
补充一个知识点,每次启动服务只有都要手动执行一次source /etc/profile,这个很麻烦,在这里找到了解决方案
在~/.bashrc里面加一句
source /etc/profile
以上方式可以解决这个问题,这个脚本里还可以配置一些初始化的别名和脚本

个人还是喜欢先运行好docker,然后进入后,采用一键lnmp的方式安装,因为后面要用到nginx服务器,lnmp一键安装链接(这个可以节省你太多太多时间,linux下装软件是一个很痛苦的过程,千万别去尝试,除非你是运维):lnmp、lamp、lnmpa一键安装包(Updated: 2022-03-14) | Linux运维笔记
这里有各种php版本绝对够用了,还有php完整版的扩展,非常方便,虽然没有python的conda那么屌,但也是解决方案。
装完后,重启后环境变量不能自动引入,跟虚拟机还是有点差别:我们手动来搞
vim ~/.bashrc 尾部添加 source /etc/profile
以后重启后系统就会自动载入环境变量了。
第一步,就是暴露端口下方的连接中已经将端口暴露为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
# 编辑配置文件
vim /etc/ssh/sshd_config
# 关闭DNS解析
UseDNS no
# 关闭GSS认证(不过我发现不关闭这个,问题也能解决)
GSSAPIAuthentication no
配置完成后,本地就可以使用远程的php解释器了,此外采用docker共享文件夹的方式,可以做到代码修改的是同一个位置,达到了无需再将phpstorm上传到docker中去
唯一注意点是,docker机器在mac上无法桥接,这个有点二逼,但没办法,只有用给定的host,docker才能将远程调试信息发过来,如图配置不能少:
此时右键就可以调试了。
下面给出一种启动方式,早之前参数顺序不是必须的要求的,但现在参数的顺序好像按照下面的方式才不会报错,否则会报端口设置无效等问题,注意参数间只能有一个空格
docker run -dit --platform linux/amd64 --privileged -p 2022:22 -p 8083:80 -p 9505:9501 --name=php72 -v /Users/senwang/workspace:/home 8ef27e80b336 /usr/sbin/init
为啥不是/bin/bash,因为/usr/sbin/init可以初始化sshd,否则你设置的sshd启动后,不是自动启动sshd服务,外界链接,只能通过docker命令行链接进去,这样远程连接解释器就多了一个步骤

这个按钮省去了你手输命令的时间,当然有些打字不快,还喜欢耗费时间输入脚本的可以忽略图形界面操作。
下面是Elaticsearch的运行脚本方式
# 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
这里本来不应该是个问题的,可能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 exec -it 容器ID /bin/bash
通过docker ps -a 可以查看容器ID
学习docker入门,直接看bilibili的狂神说docker,通俗易懂,看完就会了:【狂神说Java】Docker最新超详细版教程通俗易懂_哔哩哔哩_bilibili
安装composer 提示PHP Warning: copy(): SSL operation failed with code 1. OpenSSL Error messages:
问题描述
#php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
PHP Warning: copy(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in Command line code on line 1
PHP Warning: copy(): Failed to enable crypto in Command line code on line 1
PHP Warning: copy(https://install.phpcomposer.com/installer): failed to open stream: operation failed in Command line code on line 1
解决方法
下载证书http://curl.haxx.se/ca/cacert.pem
wget http://curl.haxx.se/ca/cacert.pem
或者使用网页下载再上传至linux
mkdir -p /usr/local/openssl/ssl/certs/
mv cacert.pem /usr/local/openssl/ssl/certs/cacert.pem
修改php.ini
;openssl.capath=
openssl.cafile=/usr/local/openssl/ssl/certs/cacert.pem
问题解决
重新安装composer即可
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
当我执行>rvminstall1.9.2时一切顺利。然后我做>rvmuse1.9.2也很顺利。但是当涉及到ruby-v时..sam@sjones:~$rvminstall1.9.2/home/sam/.rvm/rubies/ruby-1.9.2-p136,thismaytakeawhiledependingonyourcpu(s)...ruby-1.9.2-p136-#fetchingruby-1.9.2-p136-#downloadingruby-1.9.2-p136,thismaytakeawhiledependingonyourconnection...%Total%Rece