搭建locomotivecms,安装rmagick

来源:互联网 发布:新西兰有什么特产知乎 编辑:程序博客网 时间:2024/05/16 06:18

      ec2系统,想搭建一个CMS平台,找了一个ROR的CMS引擎。选择locomotive是因为支持Rails3,然后感觉还比较先进;就用了,使用mongoDB做数据库,顺道也学习下Rails配合NOSQL使用;

      locomotivecms官方安装指南 http://doc.locomotivecms.com/installation/getting_started  (被墙,对2B的GFW无语)

      开始安装之前;首先,locomotivecms依赖两个东西:mongoDB和imagemagick(http://www.imagemagick.org)

      首先安装imagemagick,参照http://www.imagemagick.org/script/install-source.php#unix从源码编译,主要步骤和命令如下:

      wget http://www.imagemagick.org/download/ImageMagick.tar.gz

      tar xvfz ImageMagick.tar.gz

      cd ImageMagick-6.8.0
      ./configure
      make
      sudo make install
      sudo ldconfig /usr/local/lib
      /usr/local/bin/convert logo: logo.gif
      make check

      最后一步make check是真慢;不是必须的,如原文所写“For a more comprehensive test”。如果你有自信补觉得会有问题,那就省了吧。

      安装mongodb,还是选择了从源码编译,参照http://www.mongodb.org/display/DOCS/Building+for+Linux

      然后遇到了scons,也得安装,

     wget https://bitbucket.org/scons/scons/get/2.2.0.tar.gz

     下载下来之后解压,然后cd进去

      tar -xvzf  xxx.tar.gz

      cd xxx

      参照README文件里面关于install的部分然后执行了以下命令:

      python bootstrap.py build/scons

      cd build/scons

      python setup.py install

      cd进入mongo源码所在目录;

      scons all

      出现一个错误

      通过http://blog.sina.com.cn/s/blog_591f0e6e01017p8l.html 的介绍,修改SConstruct文件大约在600多行的位置有一行:

      env.Append( CCFLAGS=["-Werror", "-pipe"] )

      改成env.Append( CCFLAGS=[ "-pipe"] )

      保存文件并退出,重新运行

      还是报错,查了下可能是由于内存太小。。。大爷的。ec2啊,没钱啊。build一晚上,算了。直接从http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.2.1.tgz下载了一个released版本(为毛要自己去编译源码呢?)按照http://gnucto.blog.51cto.com/3391516/833535里面所述的步骤,直接解压到/usr/local/mongodb,然后

      cd /usr/local/mongodb

      sudo mkdir data

      cd data

      sudo mkdir db

      cd ..

      sudo mkdir logs

      sudo ./bin/mongod --dbpath=/usr/local/mongodb/data/db --logpath=/usr/local/mongodb/logs/mongdb.log

      然后一堆的log,显示服务启动。

      mongodb的github项目地址https://github.com/mongodb/mongo

      啊啊啊啊啊啊,除非为了研究代码,再也补从源码编译了。。费时耗力不讨好。

      MongoDB使用release的包最后解压就完了。ImageMagick编译是编译完了。然后还是报Can't find Magick-config in /sbin:/bin:/usr/sbin:/usr/bin

      sudo yum install ImageMagick-devel

      就搞定了。开源代码的依赖关系要理清不容易,不如让脚本们自己弄去。。。

      ======================痛苦的开始=====================

      按照locomotive安装步骤bundle install完毕,运行的时候出现一个问题/usr/lib/ruby/gems/1.8/gems/locomotive_cms-2.0.0.rc12/app/models/locomotive/page.rb里面有一行报错,如下:

      scope :minimal_attributes,  lambda { |attrs = []| { :only => (attrs || []) + %w(title slug fullpath position depth published templatized redirect listed response_type parent_id parent_ids site_id created_at updated_at) } }

      始终报语法错误,通过谷歌,初步认定是ruby升级的问题,locomotive运行在ruby1.9之上;但是rails server 启动后log信息如下

      => Rails 3.2.9 application starting in development on http://0.0.0.0:80
      => Call with -d to detach
      => Ctrl-C to shutdown server
      [2012-11-28 00:58:22] INFO  WEBrick 1.3.1
      [2012-11-28 00:58:22] INFO  ruby 1.8.7 (2010-07-20) [x86_64-linux]

       这个现象一直有,机器本身带ruby1.8.7即使你安装了ruby最新的1.9.3版本在rails启动时还是在ruby1.8.7环境下运行,之前一直没出什么问题,一直没管。

       解决:尝试了修改源码绕过去,发现还是有其他的问题,作罢。使用rvm解决问题(https://rvm.io/rvm/install/)

       sudo curl -L https://get.rvm.io | bash -s stable --ruby

       source /home/ec2-user/.rvm/scripts/rvm

       rvm use 1.9.3

       sudo curl -L https://get.rvm.io | bash -s stable --rails

       然后就是噩梦的开始,重新在locomotive工程下bundle install,发现rmagick包无法安装成功;后面尝试了很多方法,最后成功的大概步骤是:

       从源码安装,参照文档http://rmagick.rubyforge.org/install2-linux.html给的选项,且prefix设置为/usr,如下:

      sudo ./configure --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --with-gs-font-dir=$FONTS --prefix=/usr

      sudo make 

      sudo make install 

      但是还是有问题总是报wand/magic_wand.h无法找到;此处郁闷很长时间,网上找了各种资料,stackoverflow上搜到一堆的抱怨依赖库太多巴拉巴拉。。。。

      找原因:直接cd / 然后find -name magic_wand.h;发现有这个文件在/usr/include/ImageMagick/wand/下;找到cd 到/usr/include下,查看ImageMagick目录下有两个文件夹magick/ 和 wand/,直接mv将magick/ 和 wand/都放到/usr/include目录下,将/usr/include/ImageMagick/删除掉。然后

      sudo gem install rmagick

      成功!

      然后重新在locomotive工程下bundle install,complete的绿色提示文字出现。哈皮啊

      跑到mongo安装目录下开启mongo数据库服务

      sudo /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/db/ --logpath=/usr/local/mongodb/logs/mongdb.log

      然后在locomotive工程下

      sudo rails server -p 80 

      然后打开浏览器,输入华丽丽的网址,出现标题:

      Step1/2 ——Create account

      Done!