2011年3月29日火曜日

Ubuntu に Elecoma 2.1 をインストール

Ubuntu に Elecoma 2.1 をインストール

Ubuntu Maverick Meerkat 10.10
VMWareとかVirtualBoxとかにUbuntuServerをインストールしてある
OpenSSH を導入しリモートログイン出来るようになっている
ターミナルエミュレーターから接続して操作する
公式にdebian系列はサポートされていないので、失敗しても時間を無駄にしても泣かない。





0. 基本的な設定

ターミナルでスクロールバックを 2048行以上に設定する

Apacheのインストール
$ sudo apt-get install apache2 apache2.2-common apache2-prefork-dev apache2-mpm-worker apache2-utils


1. rubyのインストール

$ sudo apt-get install ruby ruby1.8 ruby1.8-dev libruby1.8 libreadline5 libncurses-ruby
$ sudo apt-get install irb
$ sudo apt-get install libopenssl-ruby
$ sudo ln -s /usr/bin/ruby /usr/local/bin/ruby

バージョンの確認
$ ruby -v
$ irb -v


2. gemのインストール

$ cd ~/
$ wget http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz
$ tar zxf rubygems-1.6.2.tgz
$ cd rubygems-1.6.2
$ sudo ruby setup.rb
$ sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
$ sudo gem update --system
$ gem -v

$ sudo gem install rdoc rdoc-data
$ rdoc -v

$ sudo apt-get install ri1.8
$ ri -v


3. Railsのインストール

$ sudo gem install rails -v 2.3.11
$ rails -v


4. 依存するgemのインストール


$ cd ~/

$ sudo gem install gettext -v 2.1.0
$ sudo gem install gruff -v 0.3.6
$ sudo gem install rspec-rails -v 1.2.9

$ wget http://www.artonx.org/data/lhalib/lhalib-0.8.1.gem
$ sudo gem install lhalib-0.8.1.gem

$ sudo gem install webmock -v 1.3.4
$ sudo gem install thoughtbot-factory_girl -v 1.2.2 --source http://gems.github.com
$ sudo gem install rake --remote


5. unixユーザー、elecomaを作成する

$ sudo adduser ec
(パスワードはelephantにした)

ecユーザーがsudoできるようにグループadminに追加する
$ sudo usermod -G admin ec


6. elecomaの展開


以下からダウンロードする
エレコマ sourceforge

http://sourceforge.jp/projects/elecoma/

elecoma-2.1.tar.gzはホームディレクトリにあると仮定する
$ cd ~/
$ tar zvxf elecoma-2.1.tar.gz
$ sudo cp -R elecoma-2.1 /usr/local/ec
$ sudo chown -R ec:ec /usr/local/ec


7. ImageMagickのインストール

$ sudo apt-get install imagemagick


8. Rmagickのインストール

$ sudo apt-get install build-essential
$ sudo apt-get install librmagick-ruby1.8 libmagickwand-dev
$ sudo gem install rmagick


9. gitのインストール

$ sudo apt-get install git-core


10. PostgreSQLのインストール


$ sudo apt-get install postgresql postgresql-server-dev-8.4
$ sudo apt-get install libdbd-pg-ruby1.8 libdbi-ruby1.8 libpgsql-ruby1.8

$ sudo gem install postgres
$ sudo gem install postgres-pr
$ sudo gem install pg

gui管理ツール
$ sudo apt-get install pgadmin3


11. PostgreSQLのセットアップ


PostgreSQLのパスワードクリプトを変更する(しなくても動く)
$ sudo nano /etc/postgresql/8.4/main/pg_hba.conf
以下のようになっているので誰でもpsqlコマンドを使える
# Database administrative login by UNIX sockets
local all postgres ident

ident の部分を md5とかに変更して、パスワードの暗号化、確認方法を指定する

変更したら再起動する
$ sudo service postgresql restart

PostgreSQLをインストールすると自動で作成されるunixユーザーpostgresのパスワードを設定する
$ sudo passwd postgres
(パスワードはpostgres_passにした)

ユーザー名 postgres の home ディレクトリは /var/lib/postgresql になる


12. データベースのセットアップ


unixユーザーの、postgresになる
$ su postgres


psqlコマンドでpostgresqlを設定できるようになる
入るのは、psql
抜けるのは、\q
ヘルプは、\?


template1データベースを開く
postgres$ psql template1

データベースtemplate1に入り、権限を設定する
template1=# alter user postgres with password 'postgres_db_pass';

template1データベースから抜ける
template1=# \q

postgreSQL上で利用するユーザ ecというユーザーを追加する
postgres$ createuser ec

template1データベースを開く
postgres$ psql template1

データベースtemplate1に入り、権限を設定する
template1=# alter user ec with password 'elephant';

template1データベースから抜ける
template1=# \q

elecomaが使うデータベースを作る

postgres$ createdb --owner=ec ec

postgres$ createdb --owner=ec ec_test

postgres$ createdb --owner=ec ec_dev


postgresqlのデータベース一覧を表示する
postgres$ psql -l


 List of databases
   Name    |  Owner   | Encoding | Collation  |   Ctype    |   Access privileges   
-----------+----------+----------+------------+------------+-----------------------
 ec        | ec       | UTF8     | ja_JP.utf8 | ja_JP.utf8 | 
 ec_dev    | ec       | UTF8     | ja_JP.utf8 | ja_JP.utf8 | 
 ec_test   | ec       | UTF8     | ja_JP.utf8 | ja_JP.utf8 | 
 postgres  | postgres | UTF8     | ja_JP.utf8 | ja_JP.utf8 | 
 template0 | postgres | UTF8     | ja_JP.utf8 | ja_JP.utf8 | =c/postgres
                                                           : postgres=CTc/postgres
 template1 | postgres | UTF8     | ja_JP.utf8 | ja_JP.utf8 | =c/postgres
                                                           : postgres=CTc/postgres
(6 rows)



13. 開発向けセットアップ

$ su ec
$ cd /usr/local/ec
$ cd config
$ sudo cp database.example.yml database.yml
$ sudo chown ec:ec /usr/local/ec/config/database.yml
$ sudo nano /usr/local/ec/config/database.yml


以下のようになっている箇所を探す
username: postgres
password:

以下のように書き換える
username: ec
password: elephant

変更箇所表示(どこを変更したか確認するコマンド、やらなくてもよい)
$ diff database.example.yml database.yml

メール関係の設定を変更 ローカルでお試しなら設定しなくてもとりあえず動く
$ cd /usr/local/ec/config/environments
$ sudo nano development.rb
(メールサーバの設定を変更)
$ sudo nano production.rb
(メールサーバの設定を変更)
$ sudo nano test.rb
(メールサーバの設定を変更)


14. プラグインのインストール


$ cd /usr/local/ec

$ sudo ruby script/plugin install git://github.com/realityforge/rails-active-form.git
$ sudo ruby script/plugin install git://github.com/rails/acts_as_list.git
$ sudo ruby script/plugin install git://github.com/technoweenie/acts_as_paranoid.git
$ sudo ruby script/plugin install git://github.com/rails/acts_as_tree.git

$ sudo ruby script/plugin install http://topfunky.net/svn/plugins/ar_fixtures/
(このプラグインのサーバーは応答しなかった。インストールしなくてもとりあえず動いた)

$ sudo ruby script/plugin install git://github.com/darashi/jpmobile.git
$ sudo ruby script/plugin install http://taslam-plugins.googlecode.com/svn/trunk/jpmobile_emoticon_filter/

$ cd vendor/plugins
$ sudo git clone git://github.com/tmtysk/mbmail.git mbmail
$ cd mbmail
$ sudo git checkout 654ce3ec2dfa10ac3b05cd9354eb84456d206a6d
$ sudo rm -fr lib/jpmobile
$ sudo rm -fr .git
$ cd ../../..

$ sudo ruby script/plugin install git://github.com/jamesgolick/resource_controller.git
$ sudo ruby script/plugin install git://github.com/mislav/will_paginate.git
$ sudo ruby script/plugin install git://github.com/kakutani/yaml_waml.git
$ sudo ruby script/plugin install git://github.com/rails/ssl_requirement.git
$ sudo ruby script/plugin install git://github.com/DianthuDia/double_submit_protection.git
$ sudo ruby script/plugin install git://github.com/champierre/image_submit_tag_ext.git


15. passengerのインストール


passengerのインストール
$ sudo apt-get install libcurl4-gnutls-dev libssl-dev apache2-prefork-dev libapr1-dev libaprutil1-dev libopenssl-ruby
$ sudo gem install passenger


$ sudo passenger-install-apache2-module

Apache2に設定する内容が表示されるのでメモする


 LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.5/ext/apache2/mod_passenger.so
   PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.5
   PassengerRuby /usr/bin/ruby1.8

   <VirtualHost *:80>
      ServerName www.yourhost.com
      DocumentRoot /somewhere/public    # <-- be sure to point to 'public'!
      <Directory /somewhere/public>
         AllowOverride all              # <-- relax Apache security settings
         Options -MultiViews            # <-- MultiViews must be turned off
      </Directory>
   </VirtualHost>




15. apacheの設定


$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default_backup
$ sudo nano /etc/apache2/conf.d/ec.conf


   LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.5/ext/apache2/mod_passenger.so
   PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.5
   PassengerRuby /usr/bin/ruby1.8

<VirtualHost *:80>
  ServerName server.ip.address
  DocumentRoot /usr/local/ec/public
  RailsEnv production
  <Directory /usr/local/ec/public>
    AllowOverride all
    Options -MultiViews
  </Directory>
</VirtualHost>



mod_rewriteを導入する
$ sudo a2enmod rewrite
$ sudo service apache2 restart


16. production DBの作成

$ su ec
$ cd /usr/local/ec


空のログファイルを作り、パーミッションを設定する
$ mkdir log
$ touch log/production.log
$ touch log/development.log
$ chmod -R a+w log
$ chown -R ec:ec log


script migrate.log
$ sudo rake db:migrate RAILS_ENV=production --trace


エラー処理1
uninitialized constant ActiveSupport::Dependencies::Mutex

railsのバージョンが古いのが原因らしい。
rails-2.3.8からrails-2.3.11にアップデート。


エラー処理2
uninitialized constant ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::PGconn

以下のモジュールがないとエラーが出る
libdbd-pg-ruby1.8 libdbi-ruby1.8 libpgsql-ruby1.8
ので、インストールする
$ sudo apt-get install libdbd-pg-ruby1.8 libdbi-ruby1.8 libpgsql-ruby1.8


17. apache の再起動

$ sudo service apache2 restart


18. script/mailを起動

$ ruby /usr/local/ec/script/mail_restart.sh -e production
(メールマガジン送信用のプロセスを立ち上げる)


19. script/serverを実行し、elecomaを起動する

※webrickでの起動も可能
$ sudo ruby /usr/local/ec/script/server -p production

原因不明のエラー、とりあえず無視しても動く
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/abstract_adapter.rb:227:in `log': PGError: ERROR: リレーション"functions"は存在しません (ActiveRecord::StatementInvalid)
LINE 1: SELECT * FROM "functions"


20. エレコマの管理者ユーザー追加

エレコマを起動した直後は管理者ユーザーが存在しない
ユーザー登録は、RAILS_ROOT/test/fixtures/admin_users.yml の5,6,8行目を任意のものに修正した後、
コンソールから以下のようにデータを登録する

$ sudo nano /var/www/ec/test/fixtures/admin_users.yml

管理者名とパスワードを変更
既定は以下のようにした
管理者 : admin
パスワード : pass

$ sudo cd /usr/local/ec
$ sudo rake db:fixtures:load FIXTURES=admin_users RAILS_ENV=production

ユーザーを登録した後、管理画面:http://サイトドメイン/adminにアクセスすると、ログイン画面が表示される
http://localhost/admin/accounts/login

初期状態ではSHOPマスタの情報が入ってないので、SHOPマスタ登録にて初期情報を入力する





21. サイトをカスタマイズする

/usr/local/ec/app/views/にある
なんとか.html.erbを編集してサイトをカスタマイズする


参考

エレコマ
http://ec.kbmj.com/


エレコマ sourceforge
http://sourceforge.jp/projects/elecoma/

0 コメント: