ubuntu系统快速搭建开发环境
1.免密登陆
1.1 原理
ssh协议中用到了对称加密和非对称加密,如果不了解可以百度一下,原理引用一下这篇博客
在ssh中,非对称加密被用来在会话初始化阶段为通信双方进行会话密钥的协商。由于非对称加密的计算量开销比较大,因此一旦双方的会话密钥协商完成,后续的加密都将采用对称加密来进行。
1.2 rsa公钥秘钥生成
linux、mac系统都自带ssh工具,首先生成秘钥。
ssh-keygen -t rsa
系统提示你可以自定义公秘钥文件名字,因为机器上可能需要存多个秘钥来登录不同服务器,比如建立腾讯云的连接
Enter file in which to save the key (~/.ssh/id_rsa): id_rsa_txy
然后提示输入密码,是
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
这里直接如果不设置密码直接两次回车,然后私钥(id_rsa_txy)和公钥(id_rsa_txy.pub)就会在~/.ssh/生成。
因为自己配置了文件名 id_rsa_txy,所以要在~/.ssh/config文件中添加配置,如果没有该文件就touch生成一个
Host tx
HostName 148.70.xx.xx
User ubuntu
IdentityFile ~/.ssh/id_rsa_txy
ForwardAgent yes
ServerAliveInterval 60
1.3 公钥上传到服务器
首先,登录到远程主机
ssh [-l login_name] [-p 22] ip
ssh默认22端口,比如登录命令
ssh -l ubuntu 148.70.xx.xx
然后查看 ~/.ssh/authorized_keys 文件是否存在,如果不存在touch生成一个
touch ~/.ssh/authorized_keys
确保该文件600权限
chmod 600 authorized_keys
接下来复制本地id_rsa_txy.pub内的所有内容,粘贴到服务器的~/.ssh/authorized_keys文件中
1.4 连接测试
ssh tx
2.jdk环境
下载jdk,解压,mv到/usr/lib/jvm/jdk1.8
其实服务器一般只是用来运行程序,装jre就可以了,如果需要build项目,就需要jdk了。
vi ~/.bashrc,追加参数如下:
export JAVA_HOME=/usr/lib/jvm/jdk1.8(解压后的jdk文件夹路径)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
3.pip安装
发现ubuntu server原生提供python 2.7,但是没有pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
pip -V #查看pip版本
4.设置root密码
ubuntu不提倡设置root用户,系统安装成功后,root密码是随机的,那么在这种情况下如何得到root权限呢,具体方法如下,终端中输入:
sudo passwd root
此时重新设置原登录用户的密码。(输入两次密码确认)
设置成功后在终端继续输入:
su root
则出现#号,原用户名得到root权限。此时可以进行超级用户操作。
5.supervisor安装
使用pip安装supervisor
sudo pip install supervisor
sudo echo_supervisord_conf > /etc/supervisord.conf
但生成默认配置文件/etc/权限问题,由于上一步已经设置了root密码,直接提权。
su -
修改/etc/supervisord.conf,在最后[include]中,修改files路径,supervisor会维护该路径下所有配置文件中的项目(这里需要注意,;是注释符!!!这两行默认是被注释的,要删掉;)
[include]
files = /etc/supervisor/conf.d/*.conf
好,现在在/etc/supervisor/conf.d/ 目录下创建一个 test.conf 文件,内容如下
[program:test] ; 程序名称,在 supervisorctl 中通过这个值来对程序进行一系列的操作
autorestart=True ; 程序异常退出后自动重启
autostart=True ; 在 supervisord 启动的时候也自动启动
redirect_stderr=True ; 把 stderr 重定向到 stdout,默认 false
command=java -jar -Dserver.port=23432 test_deploy.jar ; 启动命令
user=cj ; 用哪个用户启动
directory=/Users/cj/git/test/ ; 程序的启动目录
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 10 ; stdout 日志文件备份数
stdout_logfile=/Users/cj/logs/test_stdout.log ; stdout日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录
supervisor手动启动:
supervisord [-c /etc/supervisor.conf]
supervisor手动关闭:
supervisorctl stop all #先关闭supervisor启动脚本,之后再关闭supervisord服务
kill [pid]
supervisorctl命令
status # 查看程序状态
stop program_name # 关闭 指定的程序
start program_name # 启动 指定的程序
restart program_name # 重启 指定的程序
tail -f program_name # 查看 该程序的日志
update # 重启配置文件修改过的程序
ubuntu系统快速搭建开发环境的更多相关文章
- 烂泥:学习ubuntu之快速搭建LNMP环境
本文由秀依林枫提供友情赞助,首发于烂泥行天下 现在公司使用的都是ubuntu系统,这几天由于个别项目需要,需要搭建一个LNMP环境.为了快速搭建这个环境,我使用是apt-get方式进行安装.具体的操作 ...
- Win10 IoT C#开发 1 - Raspberry安装IoT系统及搭建开发环境
Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. The ...
- React + webpack 快速搭建开发环境
因网上大多React + webpack快速搭建的运行不起来,便自行写了一个.在搭建开发环境的前需安装nodejs,npm. 新建一个工作目录,比如叫reactdome,在reactdome目录中运行 ...
- CH01基于Ubuntu系统的ZYNQ-7000开发环境的搭建
1.1概述 实验环境: Windows 10 专业版 Vmware workstation 14.1.1 Ubuntu 16.04.3 Xilinx SDx 2017.4 实验内容: 国内Window ...
- ubuntu环境下快速搭建开发环境
接触ubuntu已经半年了,虽然游戏啊qq啊在linux下配置稍微麻烦一些,但是作为开发环境,ubuntu真的是好东西,无论是c啊还是php and etc 看到官网上文档开发环境建议wamp,如果是 ...
- 重装Ubuntu系统并配置开发环境
安装 Ubuntu 并配置开发环境 写一篇文章详细记录下来所有的过程,以便以后参考. 安装前的准备 备份所有代码和配置文件 备份下载的各类文件 Ubuntu 安装 下载安装 Ubuntu14.04,下 ...
- Sublime Text3下如何快速搭建开发环境
安装好Sublime Text3之后,简单几步就可以搭建一个好用的开发环境. sublime的设置包括自定义设置以及插件系统. 打开菜单Preferences -> Settings,编辑自定义 ...
- Linux Ubuntu系统下Java开发环境搭建
操作系统:Linux x64 / Ubuntu 14.04 Java JDK版本:jdk-8u65-linux-x64.tar.gz 声明:转载请注明出处及本文链接 1. 前往ORACLE官网下载最新 ...
- ubuntu系统中java开发环境的搭建
Java环境可选择 Oracle 的 JDK,或是 OpenJDK,按http://wiki.apache.org/hadoop/HadoopJavaVersions中说的,新版本在 OpenJDK ...
随机推荐
- spring事务之多个业务之间怎么共享用同一个事务
应用场景:一个月前在学校做一个羽毛球馆的项目时,那个时候用的是springboot,然后项目分成几个模块,教练模块,学生模块,管理员模块,场地模块等等,然后Service层是按模块化进行的设计. 但是 ...
- 学习 JavaScript 树
学习 JavaScript 树 树(Tree) 在计算机科学中,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的操作和运算等的学科. 它包含三方面的内容: 数据的 ...
- ArcGIS for Server使用AD中的用户配置
ArcGIS for Server使用AD中的用户配置 1.概述 默认情况下,ArcGIS Server使用内置存储模式来管理用户和角色.该模式使用基于文件格式来存储信息.当然,ArcGIS Serv ...
- office转换为html在线预览
/// <summary> /// word 转换为html /// </summary> /// <param name="path">要转换 ...
- gamemakerstudio:加载精灵
如果精灵图片不是单一图片(拥有子图)可以称它为长条图,当gamemakerstudio加载这类精灵图片时,我们给图片名字命名为*_strip列数.*,这样当加载图片时gamemakerstudio会自 ...
- sudo cat > EOF权限问题
sudo bash -c 'cat << EOF > /etc/yum.repos.d/some-name.repo line1 line2 line3 EOF'
- 关于APIT定位算法的讨论
关于APIT定位算法的讨论 [摘要] 无线传感器网络节点定位机制的研究中,基于距离无关的定位技术得到快速发展,其中基于重叠区域的APIT定位技术在实际环境中的定位精度高,被广泛研究和应用. [关键 ...
- CF449C Jzzhu and Apples
嘟嘟嘟 这道题正解是怎么对的其实我也不清楚,总之靠感性理解吧. 首先当然要把1到n / 2的素数都筛出来,因为两两能配对的数一定都是这些素数的倍数.这也就说明对于(n / 2, n]的素数,他们一定不 ...
- 昨天刚看了Handler和HandlerThread这个东西,不明白为什么要用这么复杂的东西,而且Handler直接post的话好像还不是子线程运行。那我再开发的时候直接用Thread行不行?两个有什么区别?
Handler就是android中一个机制,主要是考虑到线程安全的! Handler是可以实现线程间通信的,LZ知道Android的UI线程不安全的吧,也就是说不可以在UI线程以外的其他线程对UI进行 ...
- POJ 2182 Lost Cows 【树状数组+二分】
题目链接:http://poj.org/problem?id=2182 Lost Cows Time Limit: 1000MS Memory Limit: 65536K Total Submis ...