<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>http://FreshStudent.github.io</id>
    <title>To Be Top~</title>
    <updated>2019-08-09T03:51:15.530Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="http://FreshStudent.github.io"/>
    <link rel="self" href="http://FreshStudent.github.io/atom.xml"/>
    <subtitle>be top together~</subtitle>
    <logo>http://FreshStudent.github.io/images/avatar.png</logo>
    <icon>http://FreshStudent.github.io/favicon.ico</icon>
    <rights>All rights reserved 2019, To Be Top~</rights>
    <entry>
        <title type="html"><![CDATA[高项流水账]]></title>
        <id>http://FreshStudent.github.io/post/gao-xiang-bei-kao-xin-lu-li-cheng-shu-chu</id>
        <link href="http://FreshStudent.github.io/post/gao-xiang-bei-kao-xin-lu-li-cheng-shu-chu">
        </link>
        <updated>2019-08-08T09:40:19.000Z</updated>
        <content type="html"><![CDATA[<h1 id="2019-08-09">2019-08-09</h1>
<blockquote>
<p>引用知乎的一篇文章<br>
<a href="https://zhuanlan.zhihu.com/p/41612455">70后老学员总分172一次通过高项心得，他怎么做到的？</a></p>
</blockquote>
<h2 id="总结了几点">总结了几点：</h2>
<h3 id="一-综合">一、综合 ：</h3>
<p>1、面授或者32小时通关 ：<br>
拓宽知识面。</p>
<p>2、刷历年真题：<br>
软题库刷题，错误的题保存在Anki里面。</p>
<h2 id="目标"><strong>目标：</strong></h2>
<p>综合准确率达到75%（56分）即可。</p>
<h3 id="二-案例">二、案例：</h3>
<p>1、案例-找茬题、简答题：<br>
背诵总表，项目管理的基本框架，五大过程组、十大知识域、47个过程。<br>
2、案例-计算题：<br>
记住方法公式，过几遍面授的计算题专题即可。</p>
<p>需要做几套真题模拟~</p>
<h3 id="三-论文">三、论文：</h3>
<p>自己手写+靠前反复读熟。</p>
<hr>
<h1 id="2019-08-08">2019-08-08</h1>
<p>今天准备任务分解了需要做些什么<br>
做了一份思维导图<br>
<img src="http://FreshStudent.github.io/post-images/1565257265416.png" alt=""></p>
<p>总结了一下：<br>
看书：把书读薄，用自己的话总结，摘录到A4纸里。<br>
单选：需要刷题，并且总结经验。<br>
案例：需要做计算题资料至少3遍。<br>
论文：根据面授修改自己的论文，同事提供的两篇论文需要参考。</p>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[2019-08-01]]></title>
        <id>http://FreshStudent.github.io/post/2019-08-01</id>
        <link href="http://FreshStudent.github.io/post/2019-08-01">
        </link>
        <updated>2019-08-01T03:34:10.000Z</updated>
        <content type="html"><![CDATA[<ul>
<li>
<h3 id="翻出去后的尴尬"><strong>翻出去后的尴尬</strong></h3>
</li>
</ul>
<blockquote>
<p>外面的世界很精彩，但是听、说、读、写的技能不足，世界再精彩也与你何干？</p>
</blockquote>
<p>酸酸乳后，发现很多国外的优秀的网站，也有一些论坛方面的信息，但是尴尬的是，用英文不能表达自己的想法，只能一个一个单词蹦出来，感觉自己是属于那种能看懂部分（借着Google翻译），要写出来时就尴尬的人。</p>
<ul>
<li>
<h3 id="听-说-读-写临时的解决方案"><strong>听、说、读、写临时的解决方案</strong></h3>
</li>
</ul>
<blockquote>
<p>作为一名搬砖人员，首先想到利用网络工具来进行辅助</p>
</blockquote>
<p>英文不会写，这个情况估计短时间提高不了，于是我做了以下两件事：</p>
<p>1、B站，看无字幕英文纪录片（自己感兴趣的），好处：</p>
<ul>
<li>练自己的听力；</li>
<li>学习一下外国人是如何表达的；</li>
<li>培养自己看“生肉”的习惯。</li>
</ul>
<p>2、对于长篇的中文，我的做法是先用google翻译成英文，然后用Grammary（chrom插件免费）对翻译后英文句子润色，然后自己再通读一遍，感觉没有明显问题，就可以粘贴到指定位置了~</p>
<p>3、看到比较优秀的外文PDF，需要翻译的话，可以先将大于2M的pdf切割成2M/每个，然后利用网站进行上传进行翻译。<br>
<a href="https://www.onlinedoctranslator.com/">必备网址onlinedoctranslator</a></p>
<ul>
<li>
<h3 id="对数字游牧很感兴趣"><strong>对数字游牧很感兴趣</strong></h3>
</li>
</ul>
<blockquote>
<p>Remote work 这个种子在大学的时候就已经埋下，静待发芽！</p>
</blockquote>
<p>做了以下事情：</p>
<ul>
<li>
<p>看完J大的个人网站<a href="https://jarodise.com/">jarodise</a>，参加了他的知识星球，然后进入组建的微信群（接触了很多digital nomad），也进入了J大建立的电报群。</p>
</li>
<li>
<p>浏览了upwork、fiverr。</p>
</li>
<li>
<p>用Google翻译耐着性子看完了J大知识星球推荐的Trello:<a href="https://trello.com/b/U9qsUJzn/how-to-become-location-independent-v20">how-to-become-location-independent-v20</a>。</p>
</li>
<li>
<p>进入了reddit的群。</p>
</li>
<li>
<p>进入了facebook全球digital nomad的群组。</p>
</li>
<li>
<p>通过J大的微信群，添加了几个有趣的公众号。</p>
</li>
<li>
<p>打算先从一个网站开始研究，贪多吃不下，研究透了一个，估计很多东西共同的吧？</p>
</li>
</ul>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-145004415-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-145004415-1');
</script>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[头像图标]]></title>
        <id>http://FreshStudent.github.io/post/tu-biao</id>
        <link href="http://FreshStudent.github.io/post/tu-biao">
        </link>
        <updated>2019-07-30T07:46:35.000Z</updated>
        <content type="html"><![CDATA[<p>设计了一个图标，比较简单<br>
<img src="http://FreshStudent.github.io/post-images/1564472813551.png" alt=""></p>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[技能清单]]></title>
        <id>http://FreshStudent.github.io/post/ji-neng-qing-dan</id>
        <link href="http://FreshStudent.github.io/post/ji-neng-qing-dan">
        </link>
        <updated>2019-07-25T06:43:32.000Z</updated>
        <content type="html"><![CDATA[<p>工作中用到的设备、技能、软件清单</p>
<blockquote>
<p>工作多年，想静下心来总结一下自己到底知道什么，用到什么，创造什么。这是一个持续的过程，所以这篇文章会不断更新。</p>
</blockquote>
<h2 id="硬件设备">硬件设备：</h2>
<ul>
<li>Mac Book Pro 13 inch</li>
<li>Magic Mouse 2</li>
<li>Filco 87 侧刻</li>
<li>Iphone7Plus</li>
<li>一台 历史久远的显示器</li>
<li>乐歌升降桌</li>
</ul>
<h2 id="软件">软件：</h2>
<h3 id="ios平台">ios平台：</h3>
<ul>
<li>知乎：查找相对正规的解答的地方。</li>
<li>B站：比较喜欢上面的一些纪录片。</li>
<li>Omnifocus：Mac+ios的任务同步。</li>
<li>有道云：Mac+ios同步。</li>
<li>懒饭：想不到吃什么的时候会看看，学做菜。</li>
</ul>
<h3 id="mac平台">Mac平台：</h3>
<ul>
<li>Idea：很强大的，日常Java程序开发。</li>
<li>有道云：用于存放一些个人心得、技巧、工作流程等。</li>
<li>Tower：Git代码管理。</li>
<li>Sublime Text 3：文本临时存放地点。</li>
<li>Omnifocus：多项目管理，当生活、工作、个人各种项目都堆积在一起的时候，你需要一个比较强大的管理工具。</li>
<li>Fantastical：轻量的提醒工具，很喜欢他的自然语言</li>
<li>Navicat Premium：访问Oracle和Mysq用的客户端。</li>
<li>Termius：远程SSH管理服务器的。</li>
<li>Postman：调试接口用的软件，谁用谁知道。</li>
<li>rdm：管理redis的客户端。</li>
<li>Homebrew：终端中各种服务安装的利器。</li>
<li>iterm：替换Mac自带终端的利器。</li>
<li>Alfred：快速启动，替换了Mac原生的。</li>
</ul>
<h2 id="技能">技能：</h2>
<h3 id="前端">前端：</h3>
<ul>
<li>JQuery：JSP页面中经常会用到。</li>
<li>JavaScript：JSP页面中经常会用到。</li>
<li>Html：JSP页面中经常会用到。</li>
<li>Jsp：JSP页面中经常会用到。</li>
<li>Ajax：异步请求，获得表单数据。</li>
</ul>
<h3 id="后端">后端：</h3>
<ul>
<li>Java：工作用到的语言。</li>
<li>Rabbitmq：用于削峰，流量大的时候用mq来处理比较理想。</li>
<li>Spring：整合各种技术的。</li>
<li>Redis：中间件， 主要用于存放一些频繁访问数据库的操作。</li>
<li>jetty：同一个项目，jetty比Tomcat快了不少。</li>
</ul>
<h3 id="db">DB：</h3>
<ul>
<li>MySql：基本的使用。</li>
<li>Hibernate：老项目维护常见的额。</li>
<li>Mybatis：目前主流的数据库中间件。</li>
<li>SQLServer：老项目用的比较多。</li>
</ul>
<h3 id="linux">Linux：</h3>
<ul>
<li>log日志排查</li>
<li>监控线程</li>
<li>基本的Linux命令</li>
</ul>
<h3 id="自动化构建">自动化构建：</h3>
<ul>
<li>Jenkins：自动化构建Gitlib - Jenkins - Tomcat</li>
<li>Gitlib</li>
</ul>
<h3 id="code管理">Code管理：</h3>
<ul>
<li>Git：<br>
Gitlib做的一个自动化构建流程，已经落地。利用Jenkins自动化发布，减少了之前很多手工操作的问题。</li>
<li>Svn：<br>
主要用于管理文档（虽然我已经很少用了，但是很多公司都在用）。</li>
</ul>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-145004415-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-145004415-1');
</script>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[购买搬瓦工vps]]></title>
        <id>http://FreshStudent.github.io/post/gou-mai-ban-wa-gong-vps</id>
        <link href="http://FreshStudent.github.io/post/gou-mai-ban-wa-gong-vps">
        </link>
        <updated>2019-06-17T02:53:39.000Z</updated>
        <content type="html"><![CDATA[<h1 id="购买搬瓦工vps">购买搬瓦工vps</h1>
<h2 id="1-官网">1 官网：</h2>
<p><a href="https://bwh1.net/">板瓦工</a></p>
<h2 id="2-安装系统">2 安装系统</h2>
<blockquote>
<p>Centos 6 x86_64 bbr</p>
</blockquote>
<h2 id="3-安装ss-sr">3 安装ss、sr</h2>
<blockquote>
<p>目前ss、sr的路径已经被隐藏了，所以需要登录官网直接点击连接跳转。<br>
跳转以后可以实现<strong>一键安装</strong>。</p>
</blockquote>
<p>ss的url：<a href="https://kiwivm.64clouds.com/main-exec.php?mode=extras_shadowsocks">搬瓦工Shadowsocks路径</a></p>
<p>sr的url：<a href="https://kiwivm.64clouds.com/main-exec.php?mode=extras_shadowsocksr">搬瓦工ShadowsocksR路径</a></p>
<h2 id="4-手机-pc安装客户端ss">4 手机、PC安装客户端ss</h2>
<h3 id="41-只有安装了ss的客户端才可以实现科学上网">4.1 只有安装了ss的客户端才可以实现科学上网</h3>
<h4 id="411-mac-本地安装了一个ss的dmg版本">4.1.1 mac 本地安装了一个ss的dmg版本</h4>
<h3 id="42-相关的github地址shadowsocks">4.2 相关的github地址：<a href="https://github.com/shadowsocks">shadowsocks</a></h3>
<h4 id="421-可以开启pac模式就可以智能的动态上网了">4.2.1 可以开启PAC模式，就可以智能的动态上网了。</h4>
<h2 id="5-谷歌浏览器安装-switchyomega">5 谷歌浏览器安装 SwitchyOmega</h2>
<h3 id="51-下载插件的位置switchyomega">5.1 下载插件的位置：<a href="https://www.switchyomega.com/">SwitchyOmega</a></h3>
<h3 id="52-下载插件后默认配置即可只要选择跟随系统即可">5.2 下载插件后，默认配置即可，只要选择跟随系统即可。</h3>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[BulletsNote]]></title>
        <id>http://FreshStudent.github.io/post/BulletsNote</id>
        <link href="http://FreshStudent.github.io/post/BulletsNote">
        </link>
        <updated>2018-08-23T09:19:18.000Z</updated>
        <content type="html"><![CDATA[<h1 id="子弹笔记使用教程">子弹笔记使用教程</h1>
<h3 id="概述步骤">概述步骤：</h3>
<ol>
<li>将所有任务列出来（包括临时插入的）。</li>
<li>根据任务情况，填写对应的符号。</li>
<li>一段时间后，更新相应的任务状态。</li>
</ol>
<h3 id="任务场景">任务场景：</h3>
<blockquote>
<p>早上上班的时候，W总说需要写一份gitflow的工作流程，用于代码的自动化构建。网上买的新的机械键盘今天到了，很高兴。打开Idea继续开发之前安排的用户管理功能。项目经理说，有一个JSP页面需要优先开发，要安排时间做。<br>
中午的时候，总公司发邮件需要开发人员参加下个月12号的技能培训。<br>
下午的时候，好兄弟告诉我，他准备求婚了，是一件高兴的事情。<br>
15点开会《代码审查技巧》小憩的时候，回忆起今天上班的时候刷手机的时候，看到了一个java的新技术Spring，想研究一下。<br>
下班后，和同事聊天的时候，他说了一句：“机会都是留给有准备的人的”，觉得这句话说得很对，触发我的思考了。 手机没话费了，马上用WX充了100块。</p>
</blockquote>
<p>总结一下，以上一天内发生了什么事情：</p>
<ul>
<li>w总安排我写一个Gitflow的工作流程</li>
<li>新买的机械键盘到了</li>
<li>继续开发用户管理的功能</li>
<li>JSP需求需要优先开发</li>
<li>下个月12号参加公司的培训</li>
<li>好兄弟准备求婚了</li>
<li>《代码审查技巧》心得、会议记录</li>
<li>JAVA的新技术Spring想研究</li>
<li>机会是留给有准备的人的。</li>
<li>手机充话费</li>
</ul>
<h4 id="对以上事情做一个归类">对以上事情做一个归类：</h4>
<h5 id="不能马上完成的需要持续一段过程的">不能马上完成的，需要持续一段过程的：</h5>
<ul>
<li>w总安排我写一个Gitflow的工作流程</li>
<li>继续开发用户管理的功能</li>
<li>JSP需求需要优先开发</li>
<li>《代码审查技巧》心得、会议记录</li>
</ul>
<h5 id="将来要做的事情">将来要做的事情</h5>
<ul>
<li>下个月参加公司的培训</li>
<li>JAVA的新技术Spring想研究</li>
</ul>
<h5 id="马上就做好的">马上就做好的</h5>
<ul>
<li>手机充话费</li>
</ul>
<h5 id="促进自己思考的事情-句子或者别的">促进自己思考的事情、句子或者别的</h5>
<ul>
<li>机会是留给有准备的人的。</li>
</ul>
<h5 id="发生的一些事件">发生的一些事件</h5>
<ul>
<li>新买的键盘到了</li>
<li>好兄弟准备求婚了</li>
</ul>
<hr>
<p>引入子弹笔记管理：<br>
步骤：<br>
一、先将要做的任务全部列出来</p>
<ul>
<li>w总安排我写一个Gitflow的工作流程</li>
<li>新买的机械键盘到了</li>
<li>继续开发用户管理的功能</li>
<li>JSP需求需要优先开发</li>
<li>下个月12号参加公司的培训</li>
<li>好兄弟准备求婚了</li>
<li>《代码审查技巧》心得、会议记录</li>
<li>JAVA的新技术Spring想研究</li>
<li>机会是留给有准备的人的。</li>
<li>手机充话费</li>
</ul>
<p>引入子弹笔记符号管理：</p>
<table>
<thead>
<tr>
<th style="text-align:center">符号</th>
<th style="text-align:left">内容</th>
<th style="text-align:left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">•</td>
<td style="text-align:left">任务初始状态</td>
<td style="text-align:left">最初记录任务的初始符号</td>
</tr>
<tr>
<td style="text-align:center">X</td>
<td style="text-align:left">完成的任务，需要标记为X</td>
<td style="text-align:left"></td>
</tr>
<tr>
<td style="text-align:center">&gt;</td>
<td style="text-align:left">任务迁移（任务持续）</td>
<td style="text-align:left">不能马上完成的项目，持续一段时间的</td>
</tr>
<tr>
<td style="text-align:center">&lt;</td>
<td style="text-align:left">任务预约（任务将来完成）</td>
<td style="text-align:left">较大任务，需要用项目分解才可做</td>
</tr>
<tr>
<td style="text-align:center">O</td>
<td style="text-align:left">事件是和日期相关的项目，无论是预约性质的（如“查理的生日”），又或者需要被完成的（如“签定租约”）。</td>
<td style="text-align:left"></td>
</tr>
<tr>
<td style="text-align:center">-</td>
<td style="text-align:left">事实、想法、思考和观察</td>
<td style="text-align:left">笔记是那些关于你想要记忆，但是不必马上完成的内容。这种子弹适合用于会议、演讲或课堂的笔记。</td>
</tr>
<tr>
<td style="text-align:center">*</td>
<td style="text-align:left">任务优先级别，标记在子弹的左边。这样你可以快速扫描到页面中最重要的项目。</td>
<td style="text-align:left"></td>
</tr>
<tr>
<td style="text-align:center">!</td>
<td style="text-align:left">用感叹号来表示，通常可以使用在笔记的部分。关于那些伟大的想法，个人咒语和灵光一现的天才见解！</td>
<td style="text-align:left"></td>
</tr>
<tr>
<td style="text-align:center">@</td>
<td style="text-align:left">用眼睛符号来表示。表示这个部分的内容需要进一步的研究、资讯和发现。</td>
<td style="text-align:left"></td>
</tr>
</tbody>
</table>
<p>根据子弹符号，以上一天的经历就变成：</p>
<p>2018-08-22</p>
<p><strong>&lt;-</strong>   W总安排我写一个Gitflow的工作流程（将来完成&lt;并且需要文档输出-的任务）<br>
<strong>O</strong>  新买的机械键盘到了（发生的一些高兴的事件O）<br>
<strong>&gt;</strong> *   继续开发用户管理的功能（持续的任务&gt;，优先级为*）<br>
<strong>&gt;</strong> **    JSP需求需要优先开发（持续的任务 &gt;，优先级为**）<br>
<strong>&lt;O</strong>  下个月12号参加公司的培训（将来完成&lt;,的事件O，需要添加到手机日历中，提醒自己的，可以用siri）<br>
<strong>O</strong>  好兄弟准备求婚了（发生高兴的事件O）<br>
<strong>&lt;-</strong> 《代码审查技巧》心得、会议记录（将来&lt;需要整理文档-的任务）<br>
<strong>&lt;@</strong>  JAVA的新技术Spring想研究（将来&lt;需要研究的）<br>
<strong>!</strong>  机会是留给有准备的人的（促进自己思考的！）<br>
<strong>X</strong>  手机充话费（马上就可以完成的子任务X）</p>
<hr>
<p>2018-08-23</p>
<p><strong>&gt;</strong>  继续开发用户管理的功能（只有一个任务，没有优先级）<br>
X   JSP需求需要优先开发（任务完成X）</p>
<p><strong>&lt;-</strong>   W总安排我写一个Gitflow的工作流程（将来完成&lt;并且需要文档输出-的任务）<br>
<strong>&lt;-</strong> 《代码审查技巧》心得、会议记录（将来&lt;需要整理文档-的任务）<br>
<strong>&lt;-</strong>  JAVA的新技术Spring想研究（将来&lt;需要整理文档-的任务）</p>
<hr>
<p>每天我就只需要建立我的子弹笔记，以一个月为单位，每天就根据任务的优先级来安排工作，有新工作来的也没关系，下班前修改一下当前的任务状态即可。</p>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[Jenkins启动tomcat与SSH启动区别]]></title>
        <id>http://FreshStudent.github.io/post/JenkinsAndSSHStartTomcat</id>
        <link href="http://FreshStudent.github.io/post/JenkinsAndSSHStartTomcat">
        </link>
        <updated>2018-08-21T06:20:09.000Z</updated>
        <content type="html"><![CDATA[<p>自动构建的Jenkins利用push over ssh 插件，将生成好的war包，远程发布到服务器中，并且利用bin/startup.sh启动Tomcat，发现Tomcat启动了(6-7s),正常加载项目后是需要10s左右的启动时间，但是项目却没有成功。</p>
<h4 id="启动失败时候的tomcat信息">启动失败时候的Tomcat信息：</h4>
<pre><code class="language-java">
[samp@tset-flow2 ~]$ ps -ef|grep 19011
samp     22930     1  7 09:53 ?        00:00:14 /usr/bin/java -Djava.util.logging.config.file=/u01/samp/soft/apache/tomcats/tomcat-balance-19011/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms512m -Xmx2048m -Djava.endorsed.dirs=/u01/samp/soft/apache/tomcats/tomcat-balance-19011/endorsed -classpath /u01/samp/soft/apache/tomcats/tomcat-balance-19011/bin/bootstrap.jar:/u01/samp/soft/apache/tomcats/tomcat-balance-19011/bin/tomcat-juli.jar -Dcatalina.base=/u01/samp/soft/apache/tomcats/tomcat-balance-19011 -Dcatalina.home=/u01/samp/soft/apache/tomcats/tomcat-balance-19011 -Djava.io.tmpdir=/u01/samp/soft/apache/tomcats/tomcat-balance-19011/temp org.apache.catalina.startup.Bootstrap start
samp     23041 16786  0 09:56 pts/0    00:00:00 grep 19011
</code></pre>
<blockquote>
<p>做了以下验证步骤：</p>
</blockquote>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox" id="task-item-6342149"> ssh进入tomcat的bin目录下手动重启Tomcat --&gt; 原来项目A（jdk1.8）可以正常启动。  【<strong>排除shell脚本问题</strong><label class="task-list-item-label" for="task-item-6342149"> ssh进入tomcat的bin目录下手动重启Tomcat --> 原来项目A（jdk1.8）可以正常启动。  【**排除shell脚本问题**】</label></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox" id="task-item-264718"> 替换B项目（jdk1.7）到webapps目录下，Jenkins启动 --&gt; 项目可以正常启动。   【<strong>排除tomcat配置问题</strong><label class="task-list-item-label" for="task-item-264718"> 替换B项目（jdk1.7）到webapps目录下，Jenkins启动 --> 项目可以正常启动。   【**排除tomcat配置问题**】</label></li>
</ul>
<h4 id="排除了shell脚本-tomcat配置问题那估计就是环境问题了">排除了shell脚本、tomcat配置问题，那估计就是环境问题了？</h4>
<blockquote>
<p>Tomcat没有报错，但是项目却启动不起来，于是根据启动的信息，检查一下jdk版本</p>
</blockquote>
<pre><code>[samp@tset-flow2 ~]$ /usr/bin/java -version
java version &quot;1.7.0_45&quot;
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)

</code></pre>
<blockquote>
<p>发现失败时候，tomcat加载的jdk是1.7版本的。</p>
</blockquote>
<h4 id="手动启动成功的tomcat信息">手动启动成功的tomcat信息</h4>
<pre><code>[samp@tset-flow2 bin]$ ps -ef|grep 19011
samp     23083     1 43 09:57 pts/0    00:00:43 /opt/java/bin/java -Djava.util.logging.config.file=/u01/samp/soft/apache/tomcats/tomcat-balance-19011/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms512m -Xmx2048m -Djava.endorsed.dirs=/u01/samp/soft/apache/tomcats/tomcat-balance-19011/endorsed -classpath /u01/samp/soft/apache/tomcats/tomcat-balance-19011/bin/bootstrap.jar:/u01/samp/soft/apache/tomcats/tomcat-balance-19011/bin/tomcat-juli.jar -Dcatalina.base=/u01/samp/soft/apache/tomcats/tomcat-balance-19011 -Dcatalina.home=/u01/samp/soft/apache/tomcats/tomcat-balance-19011 -Djava.io.tmpdir=/u01/samp/soft/apache/tomcats/tomcat-balance-19011/temp org.apache.catalina.startup.Bootstrap start
</code></pre>
<blockquote>
<p>Tomcat+项目成功启动。根据启动的信息，检查一下jdk版本</p>
</blockquote>
<pre><code>[samp@tset-flow2 bin]$ /opt/java/bin/java -version
java version &quot;1.8.0_45&quot;
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
</code></pre>
<h4 id="上下文对比发现jenkins启动的tomcat-和-ssh启动的tomcat加载的jdk不一样">上下文对比，发现Jenkins启动的tomcat 和 ssh启动的tomcat加载的jdk不一样。</h4>
<table>
<thead>
<tr>
<th>启动方式</th>
<th>加载jdk</th>
<th>路径</th>
</tr>
</thead>
<tbody>
<tr>
<td>Jenkins</td>
<td>java version &quot;1.7.0_45&quot;</td>
<td>/usr/bin/java -version</td>
</tr>
<tr>
<td>ssh</td>
<td>java version &quot;1.8.0_45&quot;</td>
<td>/opt/java/bin/java -version</td>
</tr>
</tbody>
</table>
<h3 id="难道jenkins启动和tomcat启动加载的jdk环境变量不一致">难道Jenkins启动和tomcat启动加载的jdk环境变量不一致？</h3>
<p>是的！</p>
<p><a href="https://blog.csdn.net/leshami/article/details/77198412">Linux 登陆shell，交互shell以及环境变量读取顺序</a></p>
<hr>
<h3 id="验证一下想法">验证一下想法：</h3>
<blockquote>
<p>直接指定Tomcat启动jdk版本，因为原项目A（jdk1.8）是需要启动jdk1.8的，而Jenkins是启动的jdk是默认的1.7。</p>
</blockquote>
<p><a href="https://www.cnblogs.com/xu-dong/p/6429301.html">Linux jdk安装多个版本并进行切换</a></p>
<h4 id="目前使用的是17的jdk估计jenkins读取的是这里的配置">目前使用的是1.7的jdk，估计Jenkins读取的是这里的配置：</h4>
<pre><code>[samp@tset-flow2 bin]$ alternatives --config java

There are 3 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   3           /usr/lib/jvm/jre-1.5.0-gcj/bin/java

</code></pre>
<h4 id="而ssh读取的是全局变量的">而ssh读取的是全局变量的</h4>
<pre><code>vi  /etc/profile 
</code></pre>
<h5 id="注意此文件配置的java_home-path">注意此文件配置的JAVA_HOME、PATH</h5>
<pre><code>export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
</code></pre>
<h2 id="解决方案">解决方案</h2>
<blockquote>
<p>既然此Tomcat运行的项目A是依赖于JDK1.8的，那么配置tomcat的启动依赖的jdk即可</p>
</blockquote>
<pre><code>vi /u01/samp/soft/apache/tomcats/tomcat-xxxxx-19011/bin/catalina.sh
</code></pre>
<h5 id="catalinash-文件修改位置制定jdk18的路径">catalina.sh 文件修改位置，制定jdk1.8的路径：</h5>
<blockquote>
<p>添加export JAVA_HOME=/opt/java、export JRE_HOME=/opt/java</p>
</blockquote>
<pre><code class="language-java">export JAVA_HOME=/opt/java
export JRE_HOME=/opt/java
JAVA_OPTS=&quot;-Xms512m -Xmx2048m&quot;
.....略.....
</code></pre>
<p>{% asset_img java_home.png JAVA_HOME位置 %}<br>
至此完毕！</p>
<hr>
<p>参考链接：</p>
<p><a href="https://www.cnblogs.com/xu-dong/p/6429301.html">Linux jdk安装多个版本并进行切换</a></p>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-145004415-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-145004415-1');
</script>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[购买搬瓦工vps]]></title>
        <id>http://FreshStudent.github.io/post/购买搬瓦工vps</id>
        <link href="http://FreshStudent.github.io/post/购买搬瓦工vps">
        </link>
        <updated>2018-06-01T09:26:42.000Z</updated>
        <content type="html"><![CDATA[<h1 id="购买搬瓦工vps">购买搬瓦工vps</h1>
<h2 id="1-官网">1 官网：</h2>
<p><a href="https://bwh1.net/">板瓦工</a></p>
<h2 id="2-安装系统">2 安装系统</h2>
<blockquote>
<p>Centos 6 x86_64 bbr</p>
</blockquote>
<h2 id="3-安装ss-sr">3 安装ss、sr</h2>
<blockquote>
<p>目前ss、sr的路径已经被隐藏了，所以需要登录官网直接点击连接跳转。<br>
跳转以后可以实现<strong>一键安装</strong>。</p>
</blockquote>
<p>ss的url：<a href="https://kiwivm.64clouds.com/main-exec.php?mode=extras_shadowsocks">搬瓦工Shadowsocks路径</a></p>
<p>sr的url：<a href="https://kiwivm.64clouds.com/main-exec.php?mode=extras_shadowsocksr">搬瓦工ShadowsocksR路径</a></p>
<h2 id="4-手机-pc安装客户端ss">4 手机、PC安装客户端ss</h2>
<h3 id="41-只有安装了ss的客户端才可以实现科学上网">4.1 只有安装了ss的客户端才可以实现科学上网</h3>
<h4 id="411-mac-本地安装了一个ss的dmg版本">4.1.1 mac 本地安装了一个ss的dmg版本</h4>
<h3 id="42-相关的github地址shadowsocks">4.2 相关的github地址：<a href="https://github.com/shadowsocks">shadowsocks</a></h3>
<h4 id="421-可以开启pac模式就可以智能的动态上网了">4.2.1 可以开启PAC模式，就可以智能的动态上网了。</h4>
<h2 id="~~5-谷歌浏览器安装-switchyomega-~~">~~5 谷歌浏览器安装 SwitchyOmega  ~~</h2>
<h3 id="51-下载插件的位置switchyomega">5.1 下载插件的位置：<a href="https://www.switchyomega.com/">SwitchyOmega</a></h3>
<h3 id="52-下载插件后默认配置即可只要选择跟随系统即可">5.2 下载插件后，默认配置即可，只要选择跟随系统即可。</h3>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[jenkins+gitLib+maven+SSh+war 自动化远程构建war包]]></title>
        <id>http://FreshStudent.github.io/post/jenkins-gitLib-maven-SSh-war</id>
        <link href="http://FreshStudent.github.io/post/jenkins-gitLib-maven-SSh-war">
        </link>
        <updated>2018-05-15T02:40:09.000Z</updated>
        <summary type="html"><![CDATA[<p>公司一直都是手动发布war包的，这里有一个问题，人为的操作是很容易出现问题的，于是想到用jenkins来进行发布war包，减少人工参与</p>
]]></summary>
        <content type="html"><![CDATA[<p>公司一直都是手动发布war包的，这里有一个问题，人为的操作是很容易出现问题的，于是想到用jenkins来进行发布war包，减少人工参与</p>
<!--more-->
<h2 id="一-安装jenkins常规操作过程不表">一、安装jenkins（常规操作过程不表）</h2>
<p>启动jenkins，修改默认端口号（8080）启动</p>
<ol>
<li>
<p>打开终端，cd 到Jenkins的安装目录（即jenkins.war所在目录），如：D:\Program Files (x86)\Jenkins</p>
</li>
<li>
<p>执行命令：<br>
<code>java -jar jenkins.war --ajp13Port=-1 --httpPort=9999</code></p>
</li>
</ol>
<h2 id="二-需要安装jenkins插件">二、需要安装jenkins插件：</h2>
<h3 id="1-集成gitlab插件">1、集成GitLab插件</h3>
<p><strong>GitLab Plugin</strong><br>
This plugin integrates GitLab to Jenkins by faking a GitLab CI Server.</p>
<p>用于：<br>
需要配置gitlib中的private Key等相关配置。</p>
<h3 id="2-构建maven项目需要用到的插件">2、构建Maven项目需要用到的插件</h3>
<p><strong>Maven Integration plugin</strong><br>
This plug-in provides, for better and for worse, a deep integration of Jenkins and Maven: Automatic triggers between projects depending on SNAPSHOTs, automated configuration of various Jenkins publishers (Junit, ...).</p>
<p>用于：<br>
指向本地的相关maven所在，用于打包命令。</p>
<h3 id="3-发布远程war包的将war包发送到远程tomcat中">3、发布远程war包的，将war包发送到远程Tomcat中</h3>
<blockquote>
<p>【注意！！！！！！！！】这种方法已经弃用，因为tomcat的自动发布功能经常出现故障，导致发布失败。</p>
</blockquote>
<p><s><strong>Deploy to container Plugin</strong></s><br>
<s>This plugin allows you to deploy a war to a container after a successful build.<br>
Glassfish 3.x remote deployment</s></p>
<p><s>目的：</s><br>
<s>指定jenkins服务器中的war包路径，通过配置tomcat目录下的tomcat-users.xml文件可以实现远程发布war包到指定路径。但是这里有一个问题，需要启动远程tomcat才可以成功提交，觉得这种方式不是很靠谱，想换一种基于shell命令的方式进行的项目部署。</s></p>
<h3 id="4-将本地war包上传到远端服务器然后执行shell脚本">4、将本地war包上传到远端服务器，然后执行shell脚本</h3>
<p><strong>Publish over SSH</strong></p>
<h3 id="5-远程运行shell脚本">5、远程运行shell脚本</h3>
<p>SSH<br>
配置在远程tomcat中可以执行的shell脚本命令</p>
<h2 id="三-相关步骤">三、相关步骤</h2>
<h3 id="31-jenkins启动">3.1 jenkins启动</h3>
<ol>
<li>
<p>启动jenkins<br>
由于我是使用homebrew来安装jenkins的，需要在终端中输入代码：</p>
<p><code>shell brew info jenkins</code></p>
</li>
<li>
<p>打开终端，cd 到Jenkins的安装目录（即jenkins.war所在目录）</p>
<p><code>cd /usr/local/Cellar/jenkins/2.102/libexec</code></p>
</li>
<li>
<p>启动jenkins，修改默认端口号（8080）启动，执行命令：</p>
<p><code>java -jar jenkins.war --ajp13Port=-1 --httpPort=9999</code></p>
</li>
<li>
<p>输入url，访问jenkins：</p>
<p><code>http://localhost:9999</code></p>
</li>
</ol>
<h3 id="32-jenkins-配置">3.2 jenkins 配置</h3>
<h4 id="321-系统管理">3.2.1 系统管理</h4>
<ol>
<li>系统设置：全局设置&amp;路径。</li>
</ol>
<ul>
<li>
<p>SSH remote hosts<br>
配置远端SSH连接相关参数<br>
填写相关参数后，需要点击“check connection”按钮检查是否能成功连通。<br>
<img src="http://FreshStudent.github.io/post-images/SSHremotehostsSetting.png" alt="配置远端SSH连接相关参数"></p>
</li>
<li>
<p>Gitlab<br>
Gitlib相关参数配置<br>
这一步需要填写gitLib中的相关参数，复制过来。<br>
<img src="http://FreshStudent.github.io/post-images/GitlabSetting.png" alt="配置gitLib中的相关参数"></p>
</li>
<li>
<p>Publish over SSH<br>
利用SSH，将文件复制到远程服务器特定文件夹中，并且可以执行自定义shell脚本。<br>
<img src="http://FreshStudent.github.io/post-images/publishOverSSHSetting.png" alt="利用SSH，将文件复制到远程服务器特定文件夹中，并且可以执行自定义shell脚本"></p>
</li>
</ul>
<ol start="2">
<li>全局工具配置： 工具配置，包括他们的位置和自动安装器。</li>
</ol>
<ul>
<li>Maven<br>
配置打包gitlib代码的相关命令。<br>
<img src="http://FreshStudent.github.io/post-images/MavenSetting.png" alt="配置打包gitlib代码的相关命令"></li>
</ul>
<ol start="3">
<li>管理插件：添加、删除、禁用或启用Jenkins功能扩展插件。<br>
使用的插件：</li>
</ol>
<ul>
<li>
<p>Git Parameter Plug-In<br>
Adds ability to choose from git repository revisions or tags。</p>
</li>
<li>
<p>GitLab Plugin<br>
This plugin integrates GitLab to Jenkins by faking a GitLab CI Server.</p>
</li>
<li>
<p>Publish Over SSH<br>
Send build artifacts over SSH</p>
</li>
<li>
<p>Maven Integration plugin<br>
This plug-in provides, for better and for worse, a deep integration of Jenkins and Maven: Automatic triggers between projects depending on SNAPSHOTs, automated configuration of various Jenkins publishers (Junit, ...).</p>
</li>
<li>
<p>SSH plugin<br>
This plugin executes shell commands remotely using SSH protocol.</p>
</li>
</ul>
<h4 id="322-项目配置">3.2.2 项目配置</h4>
<p><img src="http://FreshStudent.github.io/post-images/projectSetting.png" alt=""></p>
<ul>
<li>
<p>General<br>
<img src="http://FreshStudent.github.io/post-images/projectGeneral.png" alt=""></p>
</li>
<li>
<p>源码管理<br>
<img src="http://FreshStudent.github.io/post-images/codeManager.png" alt=""></p>
</li>
<li>
<p>构建触发器<br>
<img src="http://FreshStudent.github.io/post-images/buildTiggerSetting.png" alt=""></p>
</li>
<li>
<p>构建环境<br>
<img src="http://FreshStudent.github.io/post-images/buildEvmSetting.png" alt=""></p>
</li>
<li>
<p>Pre Steps<br>
<img src="http://FreshStudent.github.io/post-images/preStepsAndBuild.png" alt=""></p>
</li>
<li>
<p>Build<br>
<img src="http://FreshStudent.github.io/post-images/buildSetting.png" alt=""></p>
</li>
<li>
<p>Post Steps<br>
<img src="http://FreshStudent.github.io/post-images/PostStepsSetting.png" alt=""></p>
</li>
</ul>
<p>注意事项：<br>
<img src="http://FreshStudent.github.io/post-images/PostStepsSetting1.png" alt=""></p>
<ul>
<li>构建设置<br>
保持默认即可</li>
</ul>
<h3 id="33-shell脚本">3.3 shell脚本</h3>
<p>shell脚本步骤：</p>
<ol>
<li>备份原来war包解压的folder。</li>
<li>关闭运行中的tomcat。</li>
<li>复制上传后的war到webapps目录。</li>
<li>启动tomcat。</li>
<li>删除上传到临时文件夹中的war包。</li>
</ol>
<pre><code>#!/bin/bash
#defined

#TOMCAT_INFO
TOMCAT_HOME=&quot;/u03/samp/soft/apache/tomcats/tomcat-flow-19008&quot; 
TOMCAT_PORT=&quot;19008&quot;
TOMCAT_NAME=&quot;tomcat-flow-19008&quot;
TOMCAT_WEBAPPS_NAME=&quot;webapps&quot;
TOMCAT_SHUTDOWN=$TOMCAT_HOME/bin/shutdown.sh  
TOMCA_START=$TOMCAT_HOME/bin/startup.sh

PROJECT_NAME=&quot;fzsFlow&quot;

##临时上传的war包名称
TEMP_UPLOAD_WAR_NAME=&quot;tempUploadWar&quot;

## 时间戳 eg：20180510142558
DATE_TIME=$(date +%Y%m%d%H%M%S)

## 备份文件夹名称，备份服务器中正在运行的folder
BACKUP_RUNNING_WAR_FOLDER_NAME=&quot;backupRunningWar&quot;


#创建备份文件夹
function createBackFolder(){
	## 创建备份文件夹（若没有则创建） begin
	echo ---------------------------备份文件夹$TEMP_UPLOAD_WAR_NAME，备份临时上传的war（若没有则创建） beginning
	if [ -d &quot;$TOMCAT_HOME/$TEMP_UPLOAD_WAR_NAME&quot; ] ; then  
	echo &quot;文件夹存在！&quot;  
	else  
	echo &quot;文件夹不存在,创建文件夹：$TEMP_UPLOAD_WAR_NAME&quot;  
	cd $TOMCAT_HOME
	mkdir $TEMP_UPLOAD_WAR_NAME
	fi  
	echo ---------------------------备份文件夹$TEMP_UPLOAD_WAR_NAME，备份临时上传的war（若没有则创建） end

	echo ---------------------------备份文件夹$BACKUP_RUNNING_WAR_FOLDER_NAME，备份服务器中正在运行的folder（若没有则创建） beginning
	if [ -d &quot;$TOMCAT_HOME/$BACKUP_RUNNING_WAR_FOLDER_NAME&quot; ] ; then  
	echo &quot;文件夹存在！&quot;  
	else  
	echo &quot;文件夹不存在,创建文件夹：$BACKUP_RUNNING_WAR_FOLDER_NAME&quot;  
	cd $TOMCAT_HOME
	mkdir $BACKUP_RUNNING_WAR_FOLDER_NAME
	fi  
	echo ---------------------------备份文件夹$BACKUP_RUNNING_WAR_FOLDER_NAME，备份服务器中正在运行的folder（若没有则创建） end
	# 创建备份文件夹 end
}

#备份运行中的代码
function backUpRunningCode(){
	echo ---------------------------备份服务器原来文件夹 beginning
	## 先备份原war解压后的folder
	cd $TOMCAT_HOME/$TOMCAT_WEBAPPS_NAME
	zip -r $TOMCAT_HOME/$BACKUP_RUNNING_WAR_FOLDER_NAME/&quot;$PROJECT_NAME$DATE_TIME.zip&quot; $PROJECT_NAME
	echo 查看备份目录下的zip文件：
	ls -lt $TOMCAT_HOME/$BACKUP_RUNNING_WAR_FOLDER_NAME 
	echo ---------------------------备份服务器原来文件夹 end
}


#删除运行中的Tomcat
function killRunningTomcat(){
	## Kill 所有运行中的Tomcat begin
	echo ---------------------------找出所有的Tomcat pid 并kill掉  beginning
	TOMCAT_PID=$(ps -ef|grep $TOMCAT_NAME|grep start|grep -v 'grep'|grep -v 'jenkins_restart.sh'|grep -v 'zip -r'|awk '{print $2}')
	#遍历是否存在其他tomcat，如果有的话，kill掉
	while [ -n &quot;$TOMCAT_PID&quot; ]    
		do 
			echo &quot;scan tomcat pid :&quot; $TOMCAT_PID
		    $TOMCAT_SHUTDOWN
		    sleep 3s
		    kill -9 $TOMCAT_PID
			sleep 3s
			TOMCAT_PID=$(ps -ef|grep $TOMCAT_NAME|grep start|grep -v 'grep'|grep -v 'jenkins_restart.sh'|grep -v 'zip -r'|awk '{print $2}')  ##再查找一次tomcat的pid
	done
	echo ---------------------------找出所有的Tomcat pid 并kill掉  end
	## Kill 所有运行中的Tomcat end
}

## 删除webapps下的war包和war包解压后的文件夹
function removeOldWarFolder(){
	echo ---------------------------删除webapps下的war包和war包解压后的文件夹  beginning
	rm -rf $TOMCAT_HOME/$TOMCAT_WEBAPPS_NAME/$PROJECT_NAME.war
	rm -rf $TOMCAT_HOME/$TOMCAT_WEBAPPS_NAME/$PROJECT_NAME
	echo ---------------------------删除webapps下的war包和war包解压后的文件夹  end
}

## 复制war包到webapps目录
function copyUploadWar2Webapps(){
	echo ---------------------------复制war包到webapps目录 beginning
	cp $TOMCAT_HOME/$TEMP_UPLOAD_WAR_NAME/$PROJECT_NAME.war $TOMCAT_HOME/$TOMCAT_WEBAPPS_NAME
	echo ---------------------------复制war包到webapps目录 end
}


## 启动tomcat
function startTomcat(){
	echo ---------------------------启动Tomcat beginning
	$TOMCA_START
	echo ---------------------------启动Tomcat end
} 


## 删除之前上传的临时war包
function removeTempUploadWarPkg(){
	echo ---------------------------删除之前上传的临时war包 beginning
	rm -rf $TOMCAT_HOME/$TEMP_UPLOAD_WAR_NAME/$PROJECT_NAME.war
	echo ---------------------------删除之前上传的临时war包 end
}

## 删除1天前上传的备份的war包
function removeBackUpFiles(){		
	echo ---------------------------删除1天前上传的备份的war包 beginning
	find $TOMCAT_HOME/$BACKUP_RUNNING_WAR_FOLDER_NAME -mtime +0 -name &quot;$PROJECT_NAME*.zip&quot; -exec rm -rf {} \;
	echo ---------------------------删除1天前上传的备份的war包 end	
}

#创建备份文件夹（若没有则创建）
createBackFolder
#备份运行中的代码
backUpRunningCode
#关闭所有运行的Tomcat
killRunningTomcat
#删除服务器中的war+folder
removeOldWarFolder
#拷贝上传后的war到webapps
copyUploadWar2Webapps
#启动Tomcat
startTomcat
#删除上传的临时war包
removeTempUploadWarPkg
#删除1天前上传的备份的war包
removeBackUpFiles
</code></pre>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[域名映射博客]]></title>
        <id>http://FreshStudent.github.io/post/域名</id>
        <link href="http://FreshStudent.github.io/post/域名">
        </link>
        <updated>2018-05-03T06:20:09.000Z</updated>
        <content type="html"><![CDATA[<h1 id="域名映射关键步骤">域名映射关键步骤</h1>
<h2 id="quick-start">Quick Start</h2>
<h3 id="登录阿里云">登录阿里云</h3>
<p><a href="https://wanwang.aliyun.com/?spm=5176.8142029.388261.277.a7236d3eP22Jis">相关Url:</a><br>
<img src="http://FreshStudent.github.io/post-images/aliyunSearch.png" alt="打开阿里云域名"></p>
<h3 id="搜索域名">搜索域名</h3>
<p><img src="http://FreshStudent.github.io/post-images/aliyunSearchYouWant.png" alt="搜索你想要的域名"></p>
<h3 id="购买域名">购买域名</h3>
<p><img src="http://FreshStudent.github.io/post-images/aliyunBuy.png" alt="购买选中的域名"></p>
<h3 id="查找博客对应的ip用于映射">查找博客对应的IP，用于映射</h3>
<p><img src="http://FreshStudent.github.io/post-images/findGitHubIOIpAddress.png" alt="查找gitHubIO中对应的IP地址"></p>
<h3 id="域名解析">域名解析</h3>
<p><img src="http://FreshStudent.github.io/post-images/aliyunSiteToYourWebStep1.png" alt="将域名与GitHub捆绑起来"><br>
<img src="http://FreshStudent.github.io/post-images/aliyunSiteToYourWebStep2.png" alt="将域名与GitHub捆绑起来"></p>
<h3 id="github的io项目中捆绑域名">gitHub的IO项目中捆绑域名</h3>
<p><img src="http://FreshStudent.github.io/post-images/aliyunGitHubSetSiteStep1.png" alt="将域名与GitHub捆绑起来"><br>
<img src="http://FreshStudent.github.io/post-images/aliyunGitHubSetSiteStep2.png" alt="将域名与GitHub捆绑起来"><br>
在本地Hexo文件夹source中创建CNAME（Linux 命令： touch CNAME）文件，注意该文件名没有后缀，内容是刚申请的域名。</p>
<pre><code>Linux code ：touch CNAME
</code></pre>
<p><strong>ps：如果没有在本地source文件夹中创建CNAME文件，则每次提交（hexo g -d）后，域名映射会失效。</strong><br>
<img src="http://FreshStudent.github.io/post-images/creatLocalCNAMEFile.png" alt="将域名与GitHub捆绑起来"></p>
<blockquote>
<p>Done！</p>
</blockquote>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-145004415-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-145004415-1');
</script>]]></content>
    </entry>
</feed>