Rails生产环境从零开始部署

1.添加用户

 adduser username
 
2.将新加用户添加到sudo组
sudo usermod -a -G sudo username
su username

3.安装rvm及ruby、rails、rubygems等
curl -L  https://get.rvm.io | bash -s stable --rails --autolibs=enabled --ruby=1.9.3
gem install bundle
如果闲rubygems访问速度慢,或者被和谐了,可以使用淘宝提供的Rubygems镜像。
gem sources --remove  https://rubygems.org/
gem sources -a  http://ruby.taobao.org/
具体请访问淘宝Rubygems镜像  http://ruby.taobao.org/
 
4.加载RVM
如果bundle install的时候出现ERROR: Gem bundler is not installed, run `gem install bundler` first. 但事实上也执行过该命令显示安装了bundler。
将.bash_profile中的[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 添加到.bashrc文件
再执行source .bashrc
 
5.安装passenger
gem install passenger
 
6.安装nagin的passenger支持及nginx
rvmsudo passenger-install-nginx-module
如果是新服务器,可能会存在依赖包不够(如build-essential, libcurl4-openssl-dev, zlib1g-dev),按提示安装上就可以了。
期间会提示是直接下载源码进行编译安装,还是直接安装,下源码编译安装的话可以省掉后面nginx和passenger关联的配置。
默认安装的nginx路径为/opt/nginx/目录。
 
7.安装nginx启动脚本
目的是便用ubuntu server 的方式管理 nginx 服务进程
cd /etc/init.d
sudo update-rc.d nginx defaults
sudo chmod +x nginx
然后就可以使用sudo service nginx [start|stop|restart]这样的方式对nginx服务进行操作了。
 
8.配置nginx
重点是要在http块中添加passenger_root和passenger_ruby,如果上面第6步选的源码编译安装,这里就自动识别出来配置上了。
然后要在自己添加的server中添加passenger_enabled on;
重启nginx服务 sudo service restart
 
9.安装MySQL
sudo apt-get install mysql-server-5.5
期间会要求设置root账号密码
 
10.为自己应用的MySQL创建账号及权限配置
 
11.如果需要使用sphinx之类的做全文检索则可参考下coreseek提供的安装文档
如果执行configure的时候提示:ERROR: cannot find MySQL include files. Check that you do have MySQL include files installed. The package name is typically 'mysql-devel'.
说明缺少依赖,sudo apt-get install libmysql++-dev libmysqlclient-dev checkinstall 安装下就好了。
如果安装后分词测试时提示:WARNING: source 'xml': xmlpipe2 support NOT compiled in. To use xmlpipe2, install missing XML libraries, reconfigure, and rebuild Sphinx. ERROR: index 'xml': failed to configure some of the sources, will not index.
可以看下sphinx官方论坛的此帖: http://sphinxsearch.com/forum/view.html?id=2859
其实还是少了依赖,sudo apt-get install libexpat1 libexpat1-dev
然后再重新编译次,但执行make前记得先make clean下清除掉原先没有该依赖时编译生成的内容。

你可能感兴趣的:(nginx,mysql,ubuntu,全文检索,Rails)