需求是本地撸代码,
command+s 保存时自动触发操作,将文件上传到服务器
Run的时候自动连接服务器,用服务器上的环境跑代码,能将调试结果下载到本地
简单的说就是,本地开发 + 远程同步 + 远端调试
很完美,pycharm 已经解决了这个需求,只需要设置一下。。easy easy
来首音乐作为背景。。。
Environment
Ubuntu Remote Server
MacBook Air
Pycharm
Prepare
以我在服务器上的一个 proj 为例
以默认 Ubuntu 用户登录,在主目录下有一个 web_server 文件夹,此作为映射上来说的根目录
本地有个wechatserver 文件夹,最终目标就是该文件夹下的改动自动上传到 web_server 中
Deployment Setting
1. Pycharm preference > Build,Execution,Deployment > Deployment > + > Connection
Sftp 是 ssh 协议簇中的一个,都懂的。
域名呗,填服务器的公网 ip 也可以的
ssh 默认是 22 端口,为了安全我改成了 167。。反正得和服务器配置一样
Root path 就是上传的根目录, 系统把这个输入当成'/'
Amazon 必须要 密钥登陆,所以我 Auth type 选的是 Key-pair 并制定密钥存放地。你也可以用密码啊,还有一个不知道什么鸟玩意儿的
最后一项可以不设置,只是为了快速打开调试网站而已。对我当前 proj 来说。卵用啊
2. Mapping
Local path 就是本地要同步的文件夹路径
第二项是要映射的remote 目录。。这里的'/'-> 前面设置的 Root path。。组合起来就是/home/ubuntu/web_server就是服务器上的文件夹了。自己可以灵活调的
第三项是告诉他,web 服务器的主目录在哪。。我目前不写前端,队伍无所谓啦。。。
3. Test
现在就可以开发了,如果代码已经在服务器上了。可以先 Download 下来
顺便把 Automatic upload 勾上。
如果不是 on explicit save 可以在 Option 里面改。
这样子就可以在每次保存时自动同步。
Remote debug
先指定远程环境
1. Pycharm preference >Project interpreter > Add Remote
就会出现如下配置窗口。
因为前面已经配置了 remote server 所以此处出现了服务器连接配置
注意:我引用的是虚拟环境下的 interpreter,你要自己指定路径
填好了以后。回到上上图选择你刚选的 interpreter 。
能自动加载出服务器已安装的库,就说明没问题了
撸好代码,远程同步完成,要调试了,还得配一下 Run config
2. Run configurations
python interpreter 一项选择刚设置的服务器解释器。
Single only 是单线程调试。不开这个的话会有端口占用问题。
如果是 web 开发的话注意这里端口为 8080, linux 规定 要监听 1000 以下的端口需要 sudo 权限。这会比较麻烦。
但是可以在服务端实现端口转发,将原本访问 80 端口的流量转给 8080。曲线救国嘛
Server 端输入以下,
表示去年学的 iptables 已经全忘了, Google 大法好
Result
现在就可以本地写代码,自动同步服务器,远程调试了。
(:发送一张图,然后回复微信服务器的临时网址,省的我其他操作
Thoughts
IDE 很强大,还要好好发掘发掘,提升效率利器。
你能想象曾经傻逼一样的,先是本地vim开发,然后开一个terminal来上传,再开一个terminal登陆服务器,运行。。。简直了
另发现我端口一开,就记录到有人嗅探这个网段,不对,是有脚本。。
先看我有没有开 phpadmin 后台管理入口,有的话应该就上爆破了。。
So,,
Get 到一条经验,数据库(or 涉及到安全的东东)入口不能用默认的,
同时还得设白名单。
领取专属 10元无门槛券
私享最新 技术干货