-
-
Save perfectfoolish/5573271 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
################################# | |
# | |
# 本清单基于 ubuntu 12.04, | |
# 下个 ubuntu 的 LTS | |
# 发出来后,会相应更新这里的内容。我的目标是按步执行可以零错误完成安装。 | |
# 注意,本文件只是一个清单,不是一个可以安全执行的脚本 | |
# | |
################################# | |
# create a linode,login as root, and create a common user for all the tasks | |
ssh root@the_ip_of_this_linode | |
adduser peter --ingroup sudo | |
su peter | |
cd # go to /home/peter | |
################################# | |
# | |
# PART 1: 这一部分,和我在本地开发机器上搭建开发环境采用的步骤是完全一样的 | |
# 我的开发机器也是 ubuntu 1204,一般我都喜欢保证本地开发环境和 server | |
# 上部署环境的高度一致。 | |
# | |
################################# | |
echo "install ruby...." | |
sudo apt-get -y install git-core curl | |
# nice to add ~/.gitconfig before you run the rbenv-installer | |
# since the installer going to feach from git repos, without the config, | |
# trouble can happen. | |
curl -k https://gist.github.com/happypeter/5524086/raw/ea998d6681e098d13774791b63a62fc26733eeea/gitconfig >>~/.gitconfig | |
echo "now install rbenv..." | |
curl -k https://raw.github.com/fesplugas/rbenv-installer/master/bin/rbenv-installer | bash | |
# add the block to the end of ~/.profile | |
export RBENV_ROOT="${HOME}/.rbenv" | |
if [ -d "${RBENV_ROOT}" ]; then | |
export PATH="${RBENV_ROOT}/bin:${PATH}" | |
eval "$(rbenv init -)" | |
fi | |
source ~/.profile | |
# I see libxslt1.1 libxml things installed here too, that's why gems like nokogiri will produce no error installing | |
rbenv bootstrap-ubuntu-12-04 # this may require password | |
rbenv install 1.9.3-p392 | |
rbenv global 1.9.3-p392 | |
echo "install bundler..." | |
gem install bundler --no-ri --no-rdoc | |
rbenv rehash | |
echo "install rails ..." | |
gem install rails # this is safer to put in a project's Gemfile | |
################################# | |
# | |
# PART 2: 下面是 happycasts 项目部署的具体内容 | |
# 但是本部分的内容依然是服务器和开发机上步骤完全一样 | |
# | |
################################# | |
# add ssh key to github, so that you can get a read-write happycasts repo clone | |
ssh-keygen -t dsa | |
git clone [email protected]:happypeter/happycasts.git | |
sudo apt-get install -y apache2 mysql-client mysql-server | |
sudo apt-get install -y libmysqlclient-dev # for mysql2 gem | |
cd happycasts/ | |
bundle | |
# for passenger | |
sudo apt-get install -y apache2-prefork-dev libcurl4-openssl-dev libaprutil1-dev | |
gem install passenger | |
rbenv rehash | |
passenger-install-apache2-module | |
sudo vim /etc/apache2/http.conf | |
# add passenger lines and a virtualhost to http.conf | |
sudo apachectl graceful | |
################################# | |
# | |
# PART 3: 产品环境下的一些具体操作 | |
# 和本地开发机器上有较大不同 | |
# | |
################################# | |
cd config | |
cp database.example.yml database.yml # 并在其中添加数据库密码 | |
bundle exec rake db:create RAILS_ENV=production | |
touch tmp/restart.txt # need to create this for the first time, since tmp/ is in .gitignore | |
################################# | |
# | |
# PART 4: 这一部分的内容一般我会放到一个脚本中,放在本地做一键部署 | |
# https://gist.github.com/happypeter/3634487 | |
# | |
################################# | |
bundle exec rake db:migrate RAILS_ENV=production | |
bundle exec rake assets:precompile | |
mysql -uroot happycasts_production<happycasts_production.sql | |
################################# | |
# | |
# PART 5: 完成了上面几步,happycasts 就已经可以在浏览器中运行了 | |
# 但是一般我还会装一下一些工具 | |
# | |
################################# | |
sudo apt-get install ffmpeg # happycasts need this to get the video duration | |
sudo apt-get install tig tree ack-grep # make using git,vim things more comfortable on production server |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment