20180206

肖威工作总结

  • 上午:阿里云部署实战
  • 下午:阿里云部署总结
  • 晚上:阿里云部署思考

Linux 云服务器部署运维 http://wangjiao-blog.logdown.com/posts/2260929-linux-cloud-server-deployment-operation-and-maintenance

数一数教材《部署指南》上的坑,写给后来者………….XD.md http://activeliang-blog.logdown.com/posts/1652386-dry

一个landingpage的网页思考 http://sexualmeeting3.com/?u=uyhwwwl&o=6b78nnl&cid=31df39gdpoie2lmg

【被编程比赛榨干后产生的大量学习资源,与你分享】--JD魔改总结 http://hericpeng.logdown.com/

仓廪 GRANARY(浪费了自己成长的经历) STORES 50% OF FOOD AFTER GROWTH http://snowonion-blog.logdown.com/archives

阿里云发布网站大坑 http://kelvenstone-blog.logdown.com/posts/1760688

全栈之路--给人生另一种可能 http://zhengzhi1-blog.logdown.com/?page=5

一、我是如何知道全栈营的?

大学毕业,我从事了三年电力行业。在中国呢,跟能源沾边的行业很多事情就会很奇怪,至少显得很奇怪。比如说,这个行业里牛逼闪闪的企业都是这样的名字:华能、大唐、中电投。。你听到这几个名字你可能就知道我们这个专业的尴尬之处了。也就是说呢,要不然你就上一所牛逼闪闪的学校,要不然你就有深不可测的背景,否则,这些国有的企业绝对是与你无缘的。可惜的是,我跟着两个选项无缘。 庸庸碌碌的在一家台企干了三年,对这个行业充满了厌恶。好在大学快毕业的时候,知道了罗永浩这个人,听了很多他的经历,受到感染。尽管英语不好,工作的时候硬着头皮利用业余时间苦读英语。本想考一下托福,当个托福老师,因为这个行业收入不错,而且,在大学虽然不学无术,没有在专业领域练就什么拿得出手的本事,但是打过一些辩论赛,莫名其妙的拿到了省级的冠军,当然,也在那时候明白了其实内向的人在面对成百上千人这种场合的时候,表现的往往会比外向型性格的人好一些,这是有统计数据支持的。所以当时的想法与笑来老师后来讲过的一些东西不谋而合。就是我有两样优势,一个是拿得出手的托福成绩(当然后来没考),一个是面对大众演讲的能力。所以转行到英语培训行业,至少在当时的我看来,还是有一定优势的。 在准备托福的过程中知道了李笑来,尽管到现在也不是李笑来的粉丝,但在绝大多数时刻,发自内心的认同他讲的道理。去年第一期全栈营线下班,我就从笑来老师的微信公众号中知道了这个消息,当时第一不了解,第二价格高,所以与全栈营擦肩而过。同样的方式错过了第二期全栈班。当然,从我的内心来说,我是很想学编程的,我深刻地想过很多要学编程的理由。 在铁器时代,拼了老命也要弄一台能炼铁的炉子。在科举时代,悬梁刺股也要考取功名。在大航海时代,即使有一艘小破船也要出海。。。现在是互联网时代了,编程,正是我们这个时代的炉子、科举、和小破船。学会了,给你的人生另外一种可能。比尔盖茨、乔布斯、扎克伯格这些人去开煤矿、开饭馆不是说赚不了钱,以他们的能力,这几乎是不可能发生的,只不过,不在时代的潮流上,他们是永远做不出像现在这么伟大的企业的。 所以,线上班开始报名的时候,我一点也没有犹豫,尽管内心不确定自己行不行,依然第一时间报了名,买好了装备,开始了这六十天神奇的旅程。

二、如何度过这六十天

开课指南上面写,开课前rails101至少做三遍,相信我,做三遍肯定不行,怎么都不行。我开课前做了十遍,之后又补了一遍,我仔细观察过在魔改大赛中取得名次的小伙伴,发现大家其实都是做过很多遍。所以当我们看到一些人取得了一些什么,他们一定付出过比看起来多得多的艰辛。 当然,这其中不是没有经历过失落与焦虑的。自我否定与自我怀疑,从第一天开始就伴随着我。网络不好,科学上网不行,这些都是小事,真正的对于每个人来说都显得很沉重的打击,就是看到自己不如其他人,或者至少显得不如其他人。相信我,尽管我现在认为自己学的还不错,但是在很长一段时间内,我都是觉得自己不如其他人的。相信我,你并不孤独。 第一次出现这种强烈的感觉,就是在rails101的加分题中,我做了六遍,依然不知道如何做出那个题,当看到其他人做了三四遍就可以写出功能的时候,那种失落,是每一个经历过这种时刻的人都能深深地体会到的。那是一种丧失全部信心的失落,让人忌惮的失落。明明知道与别人比较是一种表现型人格,但是内心就是控制不住自己的情绪。当然,这次危机还是比较容易化解的,因为第七遍写rails101的时候,终于做出了这个题目。这也为下一次危机埋下了伏笔。 第二次危机紧接着就出现了,就是job-listing的魔改大赛。job-listing我同样做了很多遍,尽管依然搞不懂很多东西,但是从实际效果上来看,每天都觉得自己有进步。然后参赛,套版、学html、css,没过几天,就弄出了一个看起来还凑合的网站。然后发表了作品,上线之后得到一些票数,然后,就定格在某一票数彻底不动了。接着就是极度的失落、痛苦、迷茫、自我否定。这次对我影响最大的还不是这些。那段时间我已经开始全职学ROR了,然而你再一次发现,有些在职的同学,依然做出了比你作品复杂而且更加美好的作品。那种感觉,所有的信心一下子又跌落到了零。 当然,这个世界是这样的。如果你对一件坏事抱有不同的态度和看法的话,那坏事也可能变成好事。在作品彻底被碾压之后,我放弃了查看作品页面,不关注投票数,不关心有关魔改的一切,专心只做一件事,那就是,提升自己的水平。这段时间可能是我在整个全栈营期间,进步最快的一段时间了。我不断在作品上试错,这真的是一项在学习新技能过程中的绝技,通过试错,我对于真个ROR理解更深了一步。我知道了哪些是干什么的,哪些跟那些不一样,哪些跟哪些又有相似的地方。。。极快的速度进步着。除此之外,我在这段时间又掌握了另外一项技能,那就是:做出自己想要的功能。我可以通过gem google 一切手段,把那些我想要的功能用到我的作品上。这甚至是我受用至今的技能。现在回过头想想,真的是走在了一条正确的道路上。 然后,就是好运的到来。这其实已经说过太多遍,以至于没有什么可以再重复的了。问题的关键在于,时刻提升自己,然后,等待运气的到来就好了。

三、回首复盘

全栈营的学习,为人生提供了另外一种可能。没来学这个课之前,我从没想过自己会在这么短的时间内,做出一个完整的网站。从两个月前logdown内傻傻的报错记录,到现在有实力在很短的时间内帮助别人解决bug。从最开始连代码都打不对,到现在自己写功能、写代码。从最开始照着教材打代码,到现在可以纠正教材里面的错误,然后反馈给助教。从最开始的学员,到现在的准助教。这其中的鸿沟,恐怕只能用飞跃这个词来形容了吧。 我也在想,如果我没有参加全栈营会怎么样。依然做着自己不喜欢的工作,依然感觉每天都很压抑。做着不喜欢的工作,大概跟娶了一个讨厌的女人做老婆感受是差不多的吧?还好,我做了正确的选择,或者说我们都做了正确的选择,在这个时代,站在潮流上,给人生提供另外一种可能。

9月13日 orid 云部署 0 编程 2小时 英语 75min 有效交流 60min 云服务器部署运维

云服务

什么是云服务? 1)租用别人的电脑;

2)云服务器类型和厂商:

iaas: 阿里云

Paas: heroku(他的服务器其实是两个服务的总和:iaas 云服务器和 rails 的环境)

Saas : 金数据(人人都可用的在线表单工具)

租用云服务器(阿里云) Linux 指令入门

认识命令行cli界面 1)cli: 用文字输入的方式来操作电脑。

2)terminal, console和shell

Terminal: 是指cli 输入输出的界面程序。

Shell: 是指盒电脑沟通的指令, mac默认用bash

Console: 指某特定的指令语言环境。(mysql console, 输入sql指令)(rib console, 输入ruby程序)

3)terminal视窗操作技巧

4)一些简单的cli指令

5)认识path 环境变量

linux 档案操作 1)一些档案管理的指令(cp 复制档案,mv移动档案或目录, rm 删除档案, rm -r 删除整个目录和以下的档案)

2)如何编辑和浏览文件(nano abc.txt , control + x, y, enter)

3)如何传档案

4)如何打包压缩档案

Linux 权限管理 1)开自己的账号

2)sudo 权限

3)档案和目录权限

4)免密登入

网站服务器安装

更新和安装linux套件 1)拿到一台服务器,首先是先更新系统套件的清单,然后进行升级。

2)安装新的套件们,这些是ruby on rails 所需要的东西。

安装ruby 1)使用brighbox已经编译好的ruby套件

2)安装bundler gem

安装数据库服务器 1)本机电脑最好也换成和服务器一样的数据库,让本机环境与服务器环境尽量一致。

2)mysql

3)postgresql

安装 nginx + passenger 网站服务器 1)在本机开发的时候,我们使用 puma 这一套 由 ruby 写的网站服务器,无论是静态档案(图片/css/js)或是回进到rails 处理的动态网页,一律都是由puma来处理。

2) 图档/css/js等等静态资源,都会由nginx处理。

3)rails 动态网页的部分,我们会安装passenger这个nginx的扩充模组来执行ruby程序。

自动化部署 rails

新增deploy 用户 安装Capistrano 1)在项目中加入capistrano

2) 远端配合新增文件

完成 nginx 设定 Linux 基本运维

运维常用指令 1)如何检视log

2)如何查看系统状态(看cpu 负载情形, 哪些进程在忙)

3)网站服务器重启指令

4)在远端如何进rails console

5) 如何在远端跑rake?

整理log档案 异步处理 1)sidekiq安装

2)cron 固定排程

安全防护 1)调整服务器ssh设定

2)防火墙

服务器数据备份 1)哪些内容需要备份: 源代码, 数据库, 用户上传的档案

2)手动备份:汇出数据库, 数据库汇入

3)自动备份

第三方服务

E-mail 服务 档案存储服务 服务器监控服务 1)网站uptime 监控

2)rails 异常监控

3)效能监控

购买域名,https, http/2

域名购买和设定:国内可以从 阿里云(万网)购买 安装https 凭证和 http/2 1) lets encrypt 凭证申请

2)安装ssl 凭证

r i d

[SDE] Ubuntu server搭配Nginx-Passenger部署RoR App

本次部署組合 Passenger + Nginx + Ubuntu 12.04 為什麼挑這個組合呢....因為他的步驟看起來最少....

前一篇為 [SDE] windows上使用虛擬機架設Ubuntu server 這部分筆記是為了快速部署 單一 server使用,如果說你有多台server需部署 請搜尋Capstrino或是Mina這類專業的部署工具

創建Ubuntu使用者 這一步其實可以看自身需求要不要做,因為linux是個相當重視 權限的一個系統 我的考量是創立一個新的user來做deploy,這樣如果其他使用者有用的話也不會有干擾 我們ssh連線進入server中,如果你不知道怎麼ssh連線的話, 這篇文章最開頭有提示前一篇,裡面有提到一點,可以參考。

接著我們創立一個新的user 叫做deploy,顧名思義

$ sudo adduser deploy $ sudo adduser deploy sudo 接著我們切換使用者,換成deploy的身份登入 或是用下面的指令更替用戶。

$ su deploy 先安裝會用到的軟體 先確保資料都在最新的情況下

$ sudo apt-get update 安裝前置所需軟體,會跑一段時間,小小等待。

$ sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties Install RVM & Ruby 安裝rvm 這一步可以選擇用rbenv或是rvm,因為習慣所以我選擇rvm,先安裝一些必要的東西

$ sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev 接著開始安裝rvm

$ curl -L https://get.rvm.io | bash -s stable $ source ~/.rvm/scripts/rvm $ echo 'gem: --no-ri --no-rdoc' >> ~/.gemrc $ echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc 出現下圖即為完成!

安裝ruby 接著利用rvm安裝ruby,此處選擇安裝這時的最新版本2.1.2,並將它設為預設使用

$ rvm install 2.1.2 $ rvm use 2.1.2 --default 安裝完之後,$ ruby -v檢查版號是否安裝完成

$ ruby -v ruby 2.1.2p95 (2014-05-08 revision 45877) [i686-linux] OK,往下一步前進。

安裝Nginx & Passenger Passenger部分 gem install passenger Nginx部分 安裝Nginx的passenger模組

rvmsudo passenger-install-nginx-module 這邊簡單來說就是全部選擇預設,如果有缺什麼他會提醒你記得下載 Nginx的安裝目錄預設就是/opt/ngin/

歡迎光臨,請按enter繼續 歡迎光臨,請按enter繼續

請選擇Ruby 請選擇Ruby

它會自動幫你確認是否該裝的都有裝 它會自動幫你確認是否該裝的都有裝

懶人方法,全部都幫我裝謝謝!選1 懶人方法,全部都幫我裝謝謝!選1

按enter繼續,以預設值安裝 按enter繼續,以預設值安裝

裝完成功囉 裝完成功囉

等等會改到的地方,看一看就可以跳過了 等等會改到的地方,看一看就可以跳過了

到此算安裝完成 接著需要用到nginx啟動腳本這個東西 因為老實說我還不知道是什麼,所以就先暫且用中國專家chloerei提供的腳本

$ cd /etc/init.d $ sudo wget https://raw.github.com/chloerei/nginx-init-ubuntu-passenger/master/nginx 記得要跑到100%才算成功,有的時候會出錯... 記得要跑到100%才算成功,有的時候會出錯...

$ sudo update-rc.d nginx defaults $ sudo chmod +x nginx 接著我們嘗試運行Nginx

$ sudo service nginx start

  • Starting Nginx Server... [ OK ] 到此,如果在瀏覽器輸入主機ip,應該就能看到nginx的歡迎畫面,如下圖

Welcome to Nginx! Welcome to Nginx!

我們的Nginx之後可以用

$ sudo service nginx start啟動 $ sudo service nginx stop停止 $ sudo service nginx restart重新啟動

Fix the conf 接著修改設定,設定檔是/opt/nginx/conf/nginx.conf,看你要用什麼工具修改都可 只是它原本是設定readonly,所以記得在前面加上 sudo! 打開來會看到密密麻麻一大串,我們找到中間server的部分,進行修改

server { listen 80; server_name localhost; root /home/deploy/testapp/public; #加入這行 passenger_enabled on; #跟這行 } 後面有個location的部分在每一行行首加入#全部註解掉

location / {

root html;

index index.html index.htm;

}

首先我們看到server設定的部分,listen主要為server監聽的port, 照理來說都是80,如果你跟我一樣用虛擬機有設定自定的port則要改成你自定的

server_name可以填你的domain,網域名稱,不然放著localhost也行 root這行很重要,他 必須 指向你Rails App的Public資料夾 上面我寫的設定就是,我的rails app名稱為testapp,放在deploy下面。

Install Database (PostgreSQL) 安裝資料庫,因為我是使用postgresql,所以就拿這個來說明

$ sudo apt-get install postgresql postgresql-contrib 安裝完畢之後進入DB中建立role

$ sudo -u postgres psql psql (9.1.13) Type "help" for help. postgres=# create user deploy createdb createuser; CREATE ROLE postgres=# \q 建立完畢! 現在這個情況的話,連到server會呈現錯誤的狀態 但是已經可以看到是rails的錯誤畫面了!!

Bundle Install check all gem 首先,如果你是使用postgresql的話請先安裝這個,不然會無法安裝使用pg gem

$ sudo apt-get install libpq-dev 然後cd進你的app資料夾中,在Gemfile中找到一個叫做therubyracer 他預設是註解掉的,請將它取消註解,因為我們之後會用到它

接著$ bundle install 沒意外的話是會順利跑完的,如果有錯誤訊息的話通常會提示還需要安裝什麼 不用太擔心!

最後

$ RAILS_ENV=production rake db:create $ RAILS_ENV=production rake db:migrate 之後重啟passenger跟nginx

$ touch tmp/restart.txt $ sudo service nginx restart Success! 沒意外的話,連到server就會出現你部署的網頁囉 下面是兩個檢視找尋錯誤的方法

檢視nginx Error Log$ tail -f /opt/nginx/logs/error.log 檢視passenger log $ tail -f log/production.log

After deploy 20140617新增 New Project 如果想要換一個網站的話,可以直接修改nginx.conf的root路徑,在重新啟動即可。

New Rails 使用新版的Rails,所產生的database.yml可能會與之前的不太相同, 一樣要注意的是production的設定

production: <<: *default database: testapp_production username: deploy Could not find a JavaScript ... $ rake db:create rake aborted! ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime.... 需要nodejs或是therubyracer

config/secrets.yml 資料庫都建好了,結果nginx報錯,進到$ tail -f /opt/nginx/logs/error.log 如果看到下列

Exception RuntimeError in Rack application object (Missing secret_key_base for 'production' environment, set this value in `config/secrets.yml 這似乎是4.1版之後才會出現,重點在config/secrets.yml,你可進去裡面看, 會發現除了production之外其他兩個狀態都有類似密鑰的東西 用$ rake secret生成之後再放入config/secrets.yml中即可, 如果是local端,不用修改只接用bash_profile設定即可

~/.bash_profile export SECRET_KEY_BASE="RAKE_SECRET_RESULT" same command 一個新的project一樣要執行過這些,資料庫的name也要設定 assets:precompile沒做的話也可以,只是網站只會出現純文字,沒有js css 跟圖片 修改的話除非動到assets,不然直接niginx重啟即可。

$ RAILS_ENV=production rake db:create # 生成DB $ RAILS_ENV=production rake db:migrate # migrate $ RAILS_ENV=production bundle exec rake assets:precompile #很重要 $ sudo service nginx restart #記得重啟 Reference 大兜 - 大兜本人 GoRails - Deploy Ruby On Rails on Ubuntu 12.04 Precise Pangolin (感謝泡芙) joneslee85/ruby-journal-source - How to setup Rails app with puma and NGINX Michael Hsu.tw - Nginx + Passenger + Rails4 Setup on Ubuntu12.04 @ChingHanHo - 如何佈署 Rails 應用程式到 Amazon EC2 RubyChina - Passenger/Nginx/Ubuntu快速部署Rails 3.1

部署rails於vagrant ubuntu 14 trusty with nginx + passenger using capistrano http://sharefun.logdown.com/posts/712227-deploying-rails-on-ubuntu-14-trusty-with-nginx-passenger-using-capistrano

Part 1 虛擬環境設置 在這裡小卡關,因為機器沒有開啟Visualization,又因為一開始沒有在Vagrantfile裡打開virtualbox視窗的選項,所以看到錯誤訊息一直不明究理。總之,到BIOS設定開啟visualization後就好了。

參考資料

使用Vagrant + VirtualBox,使用ubuntu-trusty-64鏡像檔開啟後 vagrant ssh登入(預設會使用vagrant/vagrant登入) 因為user和ssh已經被Vagrant設定好了,這邊先跳過

之前用慣VirtaulBox的圖形介面,把Vagrant CLI與其相對應一下 vagrant init = 從image開新的vm vagrant up = 開啟該vm vagrant halt = 把該vm關機 vagrant destroy = 從VirtualBox移除該vm(image並不會移除) vagrant box list = 看有那些image(box) vagrant box remove box_name = 移除特定image(box)

(Vagrant基礎說明 http://www.codedata.com.tw/social-coding/vagrant-tutorial-4-guest-host-communication/)

Part 2 更新 sudo apt-get update sudo apt-get upgrade

Part 3 新增使用者sharefun sudo adduser sharefun or sudo adduser --disabled-password sharefun sudo passwd sharefun sudo su # retrieve root adduser sharefun sudo # make sharefun have sudo power exit sudo su sharefun # switch to sharefun

Part 4 ssh 登入 沒有公私鑰才使用下列指令 ssh-keygen -t rsa 複製本機的 ~/.ssh/id_rsa.pub 到機器的 /home/sharefun/.ssh/authorized_keys cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat >> ~/.ssh/authorized_keys' chmod 644 /home/sharefun/.ssh/authorized_keys chown sharefun:sharefun /home/sharefun/.ssh/authorized_keys

更改ssh登錄port,並拒絕密碼登入,在server的修改 sudo vi /etc/ssh/sshd_config

PasswordAuthentication no 執行sudo service ssh restart使之生效 如果之後搞壞.bashrc,導致登不進去(我就發生這個問題),可以在不跑.bashrc的情況登入(因為已經不能用密碼登入了) ssh -t [email protected] /bin/sh

Part 5 裝機 這兩篇寫得蠻詳細的,本篇主要照這兩篇來做,並在下方輔助一些參考資料

(極客技術網 http://www.rails365.net/articles/bu-shu-zhi-zai-a-li-yun-ubuntu-zhu-ji-shang-an-zhuang-ruby-on-rails-huan-jing-liu) (Ruby on Rails 實戰聖經部署篇 https://ihower.tw/rails4/deployment.html) (xdite http://rails101s.logdown.com/posts/247891-project-deploy-on-the-server)

先裝git sudo apt-get install git 調整時區 sudo dpkg-reconfigure tzdata 安裝常用套件,以實戰聖經為基礎,新增一些常用的套件,包含nodejs, imagemagick, redis // Build tool and library for ruby sudo apt-get install build-essential zlib1g zlib1g-dev libssl-dev libreadline6-dev libyaml-dev git-core bison openssl curl libsqlite3-0 libsqlite3-dev sqlite3 autoconf libc6-dev libpcre3-dev curl libcurl4-nss-dev libxml2-dev libxslt-dev libffi-dev redis-server imagemagick nodejs ruby-dev liblzma-dev libgmp-dev

// Nodejs升到最新版4.x curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - sudo apt-get install -y nodejs

// Install rvm and Ruby gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \curl -sSL https://get.rvm.io | bash -s stable // 預設裝在使者目錄 \curl -sSL https://get.rvm.io | sudo bash -s stable // 裝在/usr/local/rvm

rvm install 2.3.0 rvm --default use 2.3.0 gem install bunlder --no-doc --no-ri 裝postgres 請見postgresql on ubuntu 安裝完發現無法啟動 sudo service postgresql start 發現錯誤訊息,是因為語系沒有先設定好,所以安裝過程出錯

LANG="en_US.UTF-8" LANGAUGE="en_US.UTF-8" LC_ALL="en_US.UTF-8" sudo dpkg-reconfigure locale sudo pg_createcluster 9.3 main --start 再回去打第一條,打完收工~

裝Nginx + Passenger 移除系統預裝的nginx sudo apt-get purge nginx nginx-full nginx-light nginx-naxsi nginx-common sudo rm -rf /etc/nginx

gem install passenger --no-ri --no-rdoc which passenger-install-nginx-module rvmsudo 上面的輸出 碰到虛擬記憶體不足的問題,依建議輸入指令即可解決 驗證安裝是否成功 rvmsudo passenger-config validate-install 片尾有訊息說要改passenger和ruby的路徑,可用下列指令查詢,並在其下找passenger path which ruby which passenger

如果無法啟動rails server,出現這樣的訊息

The program 'rails' can be found in the following packages:

ruby-railties-3.2 ruby-railties-4.0 Try: sudo apt-get install 在.bashrc加入 source ~/.profile [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

接著我們設定 Nginx 啟動腳本:

git clone git://github.com/jnstq/rails-nginx-passenger-ubuntu.git sudo mv rails-nginx-passenger-ubuntu/nginx/nginx /etc/init.d/nginx sudo chown root:root /etc/init.d/nginx nginx操作

sudo service nginx start sudo service nginx stop sudo service nginx restart sudo service nginx configtest Part 6 用 Capistrano 部署 rails app Capistrano在本機運行,它的工作是登入你的伺服器,進行一系列shell操作。 首先先在本地端安裝capistrano gem gem install capistrano 然後在Gemfile中加上(實際上依applicatoin server的不同,下面會有所不同)

gem 'capistrano-rails', :group => :development gem 'capistrano-passenger', :group => :development 在專案下執行初始化capistrano cap install 會產生Capfile(基礎設施宣告,宣告會用到的外掛和自訂任務), config/deploy.rb(全域變數設定檔,會被所有stage引用), config/deploy/production.rb(不同的部署環境), config/deploy/staging.rb(不同的部署環境)

基本上,Capfile裡面就有說明文檔的連結,可以知道怎麽設定deploy.rb。看這篇了解這些生出來的檔案都寫了些什麽

做 deploy 前的檢查,並把遠端 (production) 需要的資料夾建立,如果有 error 請檢查錯誤訊息去 debug cap production deploy:check

把secret.yml, database.yml複製一份到server,並且使用rake secret得到本地端的secret_key_base,貼至server。 gitignore上述兩個檔案。

執行 deploy 程序正式運作自動化 deploy cap production deploy

bundle exec passenger start bundle exec passenger restart

passenger-config validate-install

passenger-status

passenger-config --root

If you want to restart using touch tmp/restart.txt, add this to your config/deploy.rb: set :passenger_restart_with_touch, true

在第二台機器部署時,跑passenger錯誤:

/home/deploy/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:2158:in method_missing': undefined methodthis' for # (NoMethodError) gem -v 可以看目前版本 是因為rubygem在2.5.1有問題,所以降版改為2.4.8 gem update --system 2.4.8 --no-ri --no-rdoc ref

Part 7 第一次部署 bundle exec rake db:create RAILS_ENV=production bundle exec rake db:migrate RAILS_ENV=production RAILS_ENV=production passenger start

Production environment build up 其他參考資料 Passenger https://www.phusionpassenger.com/library/

Rocodev https://github.com/rocodev/guides/wiki

Ruby China https://ruby-china.org/wiki/deployment-rails

其他 http://wulfric.me/2016/03/ruby-on-rails-on-aliyun/

Linode + capistrano https://github.com/rocodev/guides/wiki/setup-production-development

Ruby China https://ruby-china.org/topics/18616

Unicore + nginx http://tech.gadii.net/blog/2013/03/07/rails-deploy-ji-chu-jiao-xue/

Nginx範例和說明 http://docs.bitshares.org/testnet/8-nginx.html http://rexlnamp.blogspot.tw/2015/09/nginx.html http://z00w00.blog.51cto.com/515114/1031287

SSL https://www.peterdavehello.org/2015/10/build-an-a-plus-best-practice-https-web-server-via-nginx-chinese-version/

Vagrant 參考資料 Vagrant多機器 http://gogojimmy.net/2013/05/26/vagrant-tutorial/

Vagrant Official site https://www.vagrantup.com/docs/cli/

Vagrant + Docker http://samchu.logdown.com/posts/288889-docker-fast-with-vagrant-and-construct-development-and-test-environments

2017-3-30 ORID 每日学习纪录:ORID 这是一个思考框架,利用 ORID 整理今天的思绪。

Objective 关于今天的课程, 你记得什么? 完成了什么?

今天的任务是:部署到linode,然后简单地美化下界面,做一个最小可行性产品。

还记得:

早上重置远程主机,想再试试能否部署成功。仍然出现那个问题:在Gemfile里找不到PG这个gem,google了很多方法找不到问题所在。晚上做专案的时候,才领悟:原来capistrano部署默认只会去拉master这个主干。而我的pg gem是在分支里,自然拉不到。就因为这个问题,无用功费时:12个小时。

晚上看ihower关于前端的直播。对前端要怎么搭,清晰一点了。

看完视频,现学现用,在专案里套一个很漂亮的演示动画,一个用js代码运算出来的动画。会吃电脑性能。吃性能会越来越厉害。我开了几个后,电脑竟然卡到爆,第一次遇到卡的情况!

晚上,其实12点就部署好了linodel,但linode访问速度慢。至少在手机上慢。所以我又去到阿里云部署,阿里云的100M网速,部署时明显感觉到速度。阿里云还是蛮有优势的。(我重置过三次主机,原因是安装nginx整合passenger的时候,会卡住不动。)第四次的时候才找到解决方案:卡住是因为与主机的ssh遂道断开了。重新连接重来这个步骤就可以了。搞好已4点多。睡了三个小时,上班。

完成了:简单地弄了首页图。修复之前做做好的功能。完成部署。

Reflective 你要如何形容今天的情绪 今天的高峰是什么? 今天的低点是什么?

今天的情绪:疲倦中带着痛苦还带着一点点希望。 高峰:晚上弄首页特效,成功!很惊艳,满满的精神回报。

低点:

上午试的时候遇找不到pg的问题。

中午重做专案的时候也遇到不少坑。各种报错。

凌晨3点的时候,部署阿里云配置环境的时候,老是到中途卡住!!!

弄了老半天,早上醒来发现:域名被限制了。未备案,而且购买的产品类型无法备案。

Interpretive 我们今天学到了什么? 今天一个重要的领悟是什么?

今天学到了什么:

capistrano自动化部署会去github拉master主干,自动部署到服务器。有没有办法直接拉分支吗?有,官方文档上有介绍,但我没有弄成功。 想要把别人的专案拉回来本地执行,遇错一般是因为没有还原cp config/database.yml.example config/database.yml. 套网页的时候,可以把js和css下载下来,放在专案里。然后application.js application.scss里把这个文件导入就可以了。 一个很好的gem select2. 部署刚开始的时候一脸懵,现在几遍下来,就像擦窗户的感觉,越来越清晰了,越来越不出错了。体会到了重要是学习有难度东西的最好方法。也体会到了元学习课的精华。 凌晨部署阿里云选的100m(1至100m的带宽价格都一样),体会到了快感。比linode快多了! 今天一个重要的领悟是什么:感觉没有

Decisional 我们会如何用一句话形容今天的工作 有哪些工作需要明天继续努力?

今天的工作真是疲倦中带着希望,就好像被抽打的陀螺,转得头晕,但心中的大方向没有记忆。

明天要继续努力的:什么都不要做了。好好休息。!

ORID_LandingPage和部署 http://an-lee.logdown.com/posts/2017/03/06/1513273

ORID_LandingPage和部署 过去的一周,因为工作上和生活上都特别忙,全栈营编程比赛的作品变得无暇顾及,几乎没有更新迭代。在周末的时候,终于抽出时间做了两件事。

Landing Page Landing Page 的套路比较固定,

一句话形容自己的好处 使用此服务的三大好处 叙述原理 使用者见证 Call to Action 消除疑虑 老师一再强调,顺序一定要按照这个来,不可以调换。其实这是一步一步诱导消费者「入坑」的套路。一环扣一环,顺序乱了,整个套路就不成立了。

教程中制作 Landing Page 可以采用网上的服务 http://unbouncepages.com/ 在线制作。根据提供的模板,直接排版设计,所见即所得,非常方便。

如何把用 unbouncepages 制作好的 Landing Page 嫁接到自己的网站上呢?论坛上有热心的同学给出了方法,非常简单粗暴,就是在浏览器上查看 Landing Page 的代码,直接复制粘贴到自己的网站上即可。

这个方法,我试过了,并不是特别好用。可能因为我选的模板本身的结构相对复杂,最后的代码有好几千行,其中大部分是 CSS 和 JS 代码。也由于我的网站本身的 CSS 设定较多,复制过去,很多效果就乱套了。

最后,我把 unbouncepages 制作的 Landing Page 当作「效果图」,在我的网站上用代码「临摹」下来的。

部署到linode 全栈营的部署教程并没有写得十分详细,经过多次尝试,也 Google 了很多辅助材料,在周六的时候,除了把教程走通,也成功把 Rails101 部署了。接下来,我想把我的 Time-Ex 部署。

与 Rails101 不同,JDStore 部分,为了上传图片,申请了 AWS 的服务,又为了避免 AWS 密码泄露,我们安装了 figaro 来管理密码。

经过 Google,发现其实 figaro 是专门针对 Heroku 的一个插件,可以把保存在本地的密码通过 figaro 直接在 Heroku 的环境里设置好,如此一来,我们的密码就不需要保存在 Repo 里,避免了风险。

而当我要部署到 linode 时,因为 linode 本来就是我购买的虚拟主机,是可以直接保存图片的,因此其实并不需要在使用 AWS 来保存图片(Heroku 不支持直接上传图片)。

因此,要把 JDStore 部署到 linode,可以把用来上传图片到 AWS 的工具 fog 和管理密码的 figaro 这两个 gem 卸载,carrierwave 上传图片的方法,直接改成跟本地一样,也就是 storage: file ,就可以了。

成功部署: www.1timex.com

虽然已经成功部署,但是对于服务器上的数据库该如何管理还是一头雾水,要继续多试几次。

如果你确信区块链是个新崛起的经济体,哪么你肯定想搞清楚与自己有何关系?自己究竟如何才能在这个新经济体的发展中分一杯羹?

在上一篇文章《把握一种思维方式聚焦主攻方向快速切入十倍速区块链新世界》,老麦介绍了“点线面体”这种思维方式了,包括知识星球不少朋友表示很受用。哪么,这一篇文章我们用三个典型案例来深入地剖析一下。

1.

李笑来先生就是典型的“面”的例子, 而且这个男人不止一面!

(今天你要show哪一面?)

“当年我费尽周折应聘进入新东方,对我个人来说,是个突破。小时候学了点编程原理得过大奖却没能够被保送进清华但终究有点计算机常识;读了完全不喜欢的会计 专业却因此收获了最重要的知识:概率和统计;因为本专业并不精湛所以毕业之后只能去做销售却因此锻炼了演讲能力”——看到李笑来的自白,我忽然想起这么一句话:绝大部分人都没法在一开始的时候就拿到一手好牌,关键是如何把手上的牌打好!

(李笑来·时间轴)

李笑来的三个标签:

畅销书作家。2005年,还在新东方担任英语老师的李笑来,出版了《TOFEL核心词汇21天突破》,集中了托福考试中核心2140个词汇。后来又出版《TOEFL作文6分作文》,时至今日,两书仍然常年高居同类图书销售排行榜。2009年,出版《把时间当作朋友》,一时洛阳纸贵,“罗辑思维”还为此出过定制版。

中国比特币首富。 2011年,李笑来第一次从网上知道了比特币,他花了半年时间才弄懂比特币是什么。但这并不影响他一入局就买2100个的投资,用他的话说,“没弄懂”就买了。时年41岁的李笑来曾表示,他手持的比特币达6位数,首位数是1。我们就取下限10万枚,按照2018年2月1日,一枚比特币约6.3万人民币的价格,假设李笑来持有币数不变,其比特币资产达63亿元。

天使投资人。这是本文要重点介绍的标签。李笑来具有丰富的区块链项目投资经验,曾成功投资过多项回报超 100 倍的项目。 据企查查初步统计,李笑来担任法人的企业数为17家;对外投资的企业数为:54家;在外任职的企业量为:40家,企业所属行业集中在科技业,地区集中在北京。

(日子有功,这个笑来系越来越庞大)

(技术+服务瞄准高频刚需大市场)

(时至今日,红旗已从神州大地漫卷西方)

其中,所创立的硬币资本(Inblockchain) 是区块链世界最有影响力的投资机构,具有强大的资源优势和全球化的投资团队。主要投资项目包括:量子链、唯链、雷盈、BigONE、Bex、PressONE、EOS、SC、公信宝......等等等等。

你会发现,像李笑来这样的投资人,会投资区块链赛道上几乎所有的产业。为什么呢?因为他不赌单点,而是押注整个周期的收益。

2.

而Xdite郑伊廷女士就是“线”的例子。

(郑·成功=刻意努力+做自己)

郑伊廷(Xdite),台湾有名的软件技术开发者,Growth School 创始人,从事 Growth Hack/Ruby on Rails/Agile Project Management 主题的技术培训以及教育培训,在台湾半年连开17场 Growth Hack 讲座。曾在2012年获得Facebook World Hack黑客松世界奖,并著有《Growth Hack 这样做》一书。币圈场外交易平台OTCBTC创始人。

自带技术光环的郑伊廷受李笑来的邀请先是加入负责《新生大学》编程全栈营,这个全栈营成为她“又一个封闭式创业项目”。后来一步步在老李头的带领下迈进了区块链世界的大门,并在icoinfo项目中担任技术负责人。去年94监管风暴后,由于其过硬的技术和OTC交易变得如此重要、如此基础,顺势而为打造了区块链新世界一个独立的第三方场外交易平台——OTCBTC。

搞OTCBTC的初衷,可以追溯到她的思想脉络——“程序员到了一个年纪,都会对自己感到焦虑,在职位上成功搞大了几个项目,对于自己的现况感到不满,觉得自己不该是一个程序员,不应最终只是一个 CTO,应该出来改变整个世界。就是在那个节骨点,我决定跳出来以自己的自由意志做一间公司。”

(郑伊廷笃信的右侧攻略)

在搞OTCBTC项目之前,她已经有过经营四间公司的经验,其中就包括类似的教育科技公司。她办这家公司也是歪打正着。起源是很多加入她上班的公司或者是来她创业的公司的人,并非是喜欢这个公司的业务,而只是想要跟她学编程。“我苦心设计的训练快速上手项目,花上了许多心思调校他们,结果却是他们半年学会了就离职跳到其他公司去。凭什么这些人要来跟我学编程,我还得付薪水给他们呢?为什么不是他们付薪水给我呢?”所以那次在盛怒之下,她就开了一个「职业训练公开线下班」,从此开始了她编程教育之路。

后期虽然两者撕逼,出走了笑来系,但它也逐渐成了一条线,在OTCBTC这条线上链接场内交易所和场外的玩家,也在这个场外交易平台上支撑了无数小商家的买卖服务。

(OTCBTC靓丽的运营数据)

3.

而在币圈小有名气的帅哥金石——80后金马和90后坚石,就是“点”的贴切例子。

下面出场的“金石”,其实是老麦对金马和坚石这两位80后、90后币友的合称,原因在于他们可以说是“精诚所至,金石为开”的典型——”精诚”在于以其编程技能抱上粗腿、以其无敌嗅觉把握机遇,“金石”在于他们在满布BTC/ETH/EOS的区块链新世界里挖到了自己的金色矿石!

金马是个在旧世界干了7年编程的码农,进入大家的视线是在李笑来《通向财富自由之路》专栏留言上。该专栏学习人数达17万之多,因留言经常被精选显示而被大家熟悉。同时,他建立了“笑来搜”网站开始,该网站可以理解为专搜李笑来文章言论的搜索引擎。后期从办区块链定投延伸到投资课程、私募等等。

(金马公众号《赤兔金马奖》)

金马这个人,起点很一般,用他自己的话来讲是——“那个时候确实我的经历很一般,刚刚在搜狐畅游做了两年游戏测试来到上海,加入朋友的创业公司,学了一些基本的 Android 开发,以及一些理解并不深入的 iOS Frameworks 的开发。”事实上,金马早在2013年下半年开始接触比特币,2016年加入了老李头的支付宝群、共同成长群、新生大学等社群学习,当年年中在老李头的撮合下进入xdite全栈营帮忙,不久就建立了“金马带你定投区块链”知识星球开始定投,目前圈友4000+,币资产保守估计数千万。

(坚石公众号《笑史》)

而坚石起点就更低,中专学历,体制内寄居。个人有两个特点,一个是爱画漫画,另一个是嗅觉灵敏。去年94监管风暴爆发后,坚石同志利用价差循环搬砖,高峰期一天赚了20个ETH。坊间传说其17年年中怀揣十万入场主要靠搬砖搬成千万富翁,估计这段时间的收益占比很大。所以,风暴危机来临的时候,你看到的是危险,他看到的是机遇。老麦有一个感觉,现在的币圈就是上世纪八九十年代刚刚打开国门的时候,大泽龙蛇、各行其道。到现在,你在OTCBTC网站也经常可以看到他的大耳朵头像,不过很多时候已经是其助手在上面忙活啦。

这两位当初扔在上海滩根本无法识别出来的普通人,如果不是依靠区块链这个新崛起的经济体,不是怀疑他们个人的能力和努力,怕是再给他们二十年也难以折腾出现在数千万的资产规模。

4.

回过头来看币圈的这三个代表。

面的核心是要创造新模式的可能性,它要广泛地连接不同的商家(研究技术的、搞交易所的、具体领域应用的等等)。在基于网络效应的区块链新经济体时代,面是其中最核心的,因为面会逐步演化成体,自成体系,自成一个生态系统,前途不可估量。

面要发展,就要给这些点赋能,给这些点创造生存跟发展的机会。比如受老李头支持,人称“霞姐”的张海霞结合魔力英语和区块链技术发行的夫子币。又比如徐可及其新产品《ono》也获得了INB数百万美元的投资。如果老李头认同你是个“在区块链领域里少有的有潜力,肯做实事,言行必果的年轻人”,哪么,你就可以争取抱粗腿啦。

但是面跟点都不直接给大量客户提供服务,所以还有一个很重要的角色叫做线,因为它连接了点、面和最终的客户。无论是上边提到的郑伊廷的OTCBTC,还是上线众多区块链课程的“一块听听”、“新生大学”均是如此角色。

面一旦演化为体能级不容小觑 点最重要的是要抓住机会,线除了要抓住机会还要善于运用点的机会,而面的核心是要创造网络效应,朝着形成生态系统的方向努力。

定位决定方位!想清楚你是哪一个,才能在区块链新经济体当中找准自己的定位。

把握一种思维方式聚焦主攻方向快速切入十倍速区块链新世界

1.

一个非常简洁的定位框架:点线面体

我们先来看一看著名产品人、湖畔大学学术主任梁宁举的双胞胎的例子。

“一对双胞胎在2010年一起大学毕业,一个加入腾讯,一个进入报社。7年之后,去腾讯的那位已经是年薪百万,而且满街都是挖他的猎头。投资人也在挖他,只要出来创业就给钱。去报社的那位,因为报社沉沦了,他曾经寄托理想的整个产业都没有了,一切都需要重来。这里不是说双胞胎的素质或者能力有多大差异,也不是说他们分别跟随的领导的能力或者个人操守有问题。核心问题是这两个单位所附着的经济体,一个在快速崛起,一个在快速崩溃。”

(房子的涨幅远超出大春的想象)

如果你看过电影《夏洛特烦恼》,那么你一定对一个场景很深刻,夏洛穿越以后自认为能够帮助高中同学大春的第一要紧事情就是:你一定要买房子,多买五环以内的房子!试想想,如果你在2010年甚至更早之前买了房子,而且不止一套,哪感觉是不是像坐上了火箭?!火箭的动力是什么?就是那些年由于货币发行量暴增而引起的房地产不动产市场的大爆发。如果你没有买房子,勤勤恳恳的朝九晚五、省吃俭用攒了一年的钱,结果连个洗手间都买不上啦,结果是很悲催的!

故事讲完,回到正题。

去年年中,湖畔大学教务长曾鸣先生提出一个不同于波特三种标准化“竞争战略”(即差异化战略、成本领先战略和聚焦战略)的新定位理论:点、线、面、体。

“面,通常意义上讲的平台或者生态型的企业,面的核心是要创造新模式的可能性,它要广泛地连接不同的玩家。点是这个面上各种各样新的角色。面要发展,就要给这些点创造生存跟发展的机会。但是面跟点都不直接给消费者、给客户提供服务,所以还有一个很重要的角色,叫做线,因为它连接了点、面和最终的客户。”

他认为,每一个定位背后,逻辑是不一样的,需要的运营原则、资源调配的方法,甚至竞争壁垒,最后可能的发展路径都不一样。 所以先明确自己在未来网络化世界的定位,是决定企业发展方向的第一步。

这就是点线面体的思维方式。

2.

成为富人就一定要借助“面”和“体”的崛起。

1月19日,据《福布斯》实时富豪榜排名显示,腾讯董事会主席兼CEO马化腾的个人身价已经上升到501亿美元,再创历史新高。马化腾个人财富排在全球第14位,是目前排名最高的亚洲富豪。

(两只马都附着互联网新型经济体)

小马哥此次个人身价飙涨与腾讯股价势头强劲不无关系。1月中旬,腾讯控股股价上破452.4港元,市值达到42973.74亿港元。小马哥的故事就是腾讯这一互联网新型经济体崛起的故事。现在的腾讯不仅仅是一家互联网公司,也是一家投资公司,更是一个生态圈。它旗下互联网公司众多,比如滴滴、摩拜、美团点评、京东、快手、B站等等。从去年下半年开始,腾讯投资的一些公司开始陆续上市,上市后估值提升,也为腾讯带来收益,进而增加马化腾的身家。这些上市的公司包括:众安在线、阅文集团、易鑫集团、希玛眼科等。此前,顶着“马化腾概念股”的希玛眼科,从1月15日上市后的四个交易日内暴涨4倍多。

腾讯已经从最初的QQ、微信等单个产品切入的点,演变成为上下游整合的服务链条,到目前张开了一张巨大无比的网络链接的价值面,已经形成了腾讯帝国这个高达4万亿港元市值的巨型经济体。

(腾讯的发展就是从点到体)

用我初中仅学的几何知识来说点、线、面、体及其关系,就是点动成线,线动成面,面动成体。举个例子,笔尖点在纸上是一个点,滑动笔尖就是一条直线。一枚硬币可以看做是平面的,如果它转动起来,就是一个球体的形象。

畅销书作者李笑来先生在《把时间当做朋友》里面提到的,你如果跟人家比单一技能,就好比比长度,那么你是比线上的,你如果有长和宽两项技能,那么你跟人比的是面积,如果你不单有长和宽,你还有高,那么你跟人比的是立体,简直是完全不同的升维打击。国外的苹果google,国内的腾讯阿里无一不是。

我们这些普通人勤勤恳恳、任劳任怨,往往在乎的是每一个当下的点的即时收益,而任何一个点都不会产生过多的收益。如果要成为中产,哪么我们至少要获得一次线性周期的收益。比如持有腾讯股票10年,什么都不用干,10万变1000万。如果你看的更准握得更紧,像刘元生一样握着当年360万买入的万科股票,20年过去,到现在已然是亿万富豪!

3.

区块链就是个新崛起的经济体

在老麦看来,曾鸣和波特理论的最大不同在于,曾鸣敏锐地抓住了新型经济体的这么一个维度。就是说无论是企业还是个人的发展,你首先是要看,你附着在哪个经济体上?你在这个经济体的那个面上,在这个面上你能发挥线的作用还是捕捉到点的机会?

所以对于做投资来说,你需要首先选择某个正在崛起的大型经济体,接着去找一个领域,投它的成长周期。

简单来说,区块链就是一套加密的分布式账本技术。核心作用在于建立了一个不需要中间人的信任体系。使世界从传统的基于熟人之间信任关系的合作网络,变成了基于透明规则的开放式的合作。这种新商业规则有别于传统,因为它允许任何规模的商业机构创造一个完全可信和被完整执行的规则体系,扁平化了大小机构构造商业信任的能力差距。如果说蒸汽机释放了人们的生产力,电力解决了人们基本的生活需求,互联网彻底改变了信息传递的方式,那么区块链作为构造信任的机器,将可能彻底改变整个人类社会价值传递的方式。

(新兴经济体上点也可有大作为)

在淘宝这个面崛起的过程之中,诞生出年收入好几百万的摄影师,上千万收入的模特,还有销售额超过20个亿的服装类网红,更发展出支付宝这样的另一个面。那么,在区块链这个新经济体崛起的过程中,这个想象空间,又有多大呢?!

4.

当然,我们做事情的时候,入手只能是一个点。但我们要想清楚,它附着在哪个面上?这个面,是在哪个经济体上?这个经济体,是否在快速崛起?

对于普通人来讲,要抓住区块链这个新兴经济体崛起的绝佳时刻,匹配自己的能力特长和市场需求,在自己可能介入的点上发力,尽情地拥抱变化,拥抱新世界。

普通人的一生,就是在一个常态的面上,做一个勤奋的点。

中产阶层的一生,就是在一个朝气蓬勃的面上,做一个勤奋的点,你每天都在想着未来,而且这个面仍在上升。

精英人士的一生,就是在一个蒸蒸日上的面上,做一个既勤奋又能不断产生新链接的点,同时这个面附着的经济体正在喷薄而出。

如果一个人一生从最初点状努力的计时收益,到享受至少一次线性周期的成果回报,而且还抓住机会实现了个人价值的极大兑现和财富的指数级增长,这就叫无悔这一生!

[git 学习篇] git remote add origin错误 http://blog.csdn.net/dengjianqiang2011/article/details/9260435

如果输入$ Git remote add origin [email protected]:djqiang(github帐号名)/gitdemo(项目名).git

提示出错信息:fatal: remote origin already exists.

解决办法如下:

1、先输入$ git remote rm origin

2、再输入$ git remote add origin [email protected]:djqiang/gitdemo.git 就不会报错了!

3、如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'. 我们需要修改gitconfig文件的内容

4、找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc

5、找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!





如果输入$ ssh -T [email protected]
出现错误提示:Permission denied (publickey).因为新生成的key不能加入ssh就会导致连接不上github。

解决办法如下:

1、先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。

2、如果还是不行的话,输入ssh-add ~/.ssh/id_key 命令后出现报错Could not open a connection to your authentication agent.解决方法是key用Git Gui的ssh工具生成,这样生成的时候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行来做。

3、最好检查一下在你复制id_rsa.pub文件的内容时有没有产生多余的空格或空行,有些编辑器会帮你添加这些的。





如果输入$ git push origin master

提示出错信息:error:failed to push som refs to .......

解决办法如下:

1、先输入$ git pull origin master //先把远程服务器github上面的文件拉下来

2、再输入$ git push origin master

3、如果出现报错 fatal: Couldn't find remote ref master或者fatal: 'origin' does not appear to be a git repository以及fatal: Could not read from remote repository.

4、则需要重新输入$ git remote add [email protected]:djqiang/gitdemo.git





使用git在本地创建一个项目的过程

$ makdir ~/hello-world    //创建一个项目hello-world
$ cd ~/hello-world       //打开这个项目
$ git init             //初始化
$ touch README
$ git add README        //更新README文件
$ git commit -m 'first commit'     //提交更新,并注释信息“first commit”
$ git remote add origin [email protected]:defnngj/hello-world.git     //连接远程github项目  
$ git push -u origin master     //将本地项目更新到github项目上去





gitconfig配置文件

     Git有一个工具被称为git config,它允许你获得和设置配置变量;这些变量可以控制Git的外观和操作的各个方面。这些变量可以被存储在三个不同的位置:
     1./etc/gitconfig 文件:包含了适用于系统所有用户和所有库的值。如果你传递参数选项’--system’ 给 git config,它将明确的读和写这个文件。
     2.~/.gitconfig 文件 :具体到你的用户。你可以通过传递--global 选项使Git 读或写这个特定的文件。
     3.位于git目录的config文件 (也就是 .git/config) :无论你当前在用的库是什么,特定指向该单一的库。每个级别重写前一个级别的值。因此,在.git/config中的值覆盖了在/etc/gitconfig中的同一个值。
    在Windows系统中,Git在$HOME目录中查找.gitconfig文件(对大多数人来说,位于C:\Documents and Settings\$USER下)。它也会查找/etc/gitconfig,尽管它是相对于Msys 根目录的。这可能是你在Windows中运行安装程序时决定安装Git的任何地方。



    配置相关信息:

    2.1 当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:

  $ git config --global user.name "John Doe"

  $ git config --global user.email [email protected]

   2.2    你的编辑器(Your Editor)

  现在,你的标识已经设置,你可以配置你的缺省文本编辑器,Git在需要你输入一些消息时会使用该文本编辑器。缺省情况下,Git使用你的系统的缺省编辑器,这通常可能是vi 或者 vim。如果你想使用一个不同的文本编辑器,例如Emacs,你可以做如下操作:

  $ git config --global core.editor emacs

  2.3 检查你的设置(Checking Your Settings)

  如果你想检查你的设置,你可以使用 git config --list 命令来列出Git可以在该处找到的所有的设置:

  $ git config --list

  你也可以查看Git认为的一个特定的关键字目前的值,使用如下命令 git config {key}:

  $ git config user.name

  2.4 获取帮助(Getting help)

  如果当你在使用Git时需要帮助,有三种方法可以获得任何git命令的手册页(manpage)帮助信息:

  $ git help

  $ git --help

  $ man git-

  例如,你可以运行如下命令获取对config命令的手册页帮助:

  $ git help config

田文艺工作总结

  • 上午:完成微信内容端打造 视频采集
  • 下午:整理推送作品

张家琛工作总结

  • 整理工作总结

results matching ""

    No results matching ""