DiscourseをVirtualBox上のUbuntu14.10にインストールする。
VirtualBox上のUbuntu Server 14.10にDiscourseをインストールしてみます。
Discourseとは「Railsで作られた100%オープンソースの次世代ディスカッションプラットフォーム」です。
githubを見ると、最初のコミットが2013年2月6日です。
まだ(もう?)2年しか経っていません。(今日は2015年4月22日)そのせいか、インストールしたよって日本語で書いてある記事が少ない気がします。
見つけたと思っても、Ruby1.9とかになっているので、あまり新しくなさそうです。
さっそくgithubのインストールガイドを参考にインストールしてみたいと思います。
Ubuntuのインストール
以下のサイトを参考に、VirtualBoxにUbuntu Server 14.10をインストールします。
Ubuntu 14.04 LTS をインストールしてみた - Linux入門 - Webkaru
discourse/INSTALL-ubuntu.md at master · discourse/discourse · GitHub
VirtualBoxでVMの新規作成をする際に、ハードドライブの容量は多めにした方が良いです。 はじめ8GBにしたところ、sambaをインストールしたら足りなくなってしまいました。
参考サイトのUbuntuのバージョンが少し違うので、若干表示が異なるところがありますが、特に問題ありませんでした。
ユーザを作成する際には「discourse」以外にした方がよさそうです。
ここで作成したユーザを「作業アカウント」って呼ぼうと思います。(良い名前が思いつかなかった。。。)
「ソフトウェアの選択」と言うところまで行ったら、githubの方も見ながらインストールを進めます。
discourseのインストール
OpenSSH server、Mail server、PostgreSQLのインストールはubuntuのインストール時に行っているので、省略します。
必要なパッケージのインストール(作業アカウント)
sudo apt-get -y install build-essential libssl-dev libyaml-dev git libtool libxslt-dev libxml2-dev libpq-dev gawk curl pngcrush imagemagick python-software-properties
Redisのインストール(作業アカウント)
sudo apt-add-repository -y ppa:rwky/redis sudo apt-get update sudo apt-get install redis-server
nginxのインストール(作業アカウント)
sudo apt-get remove '^nginx.*$' cat << 'EOF' | sudo tee /etc/apt/sources.list.d/nginx.list deb http://nginx.org/packages/ubuntu/ precise nginx deb-src http://nginx.org/packages/ubuntu/ precise nginx EOF curl http://nginx.org/keys/nginx_signing.key | sudo apt-key add - sudo apt-get update && sudo apt-get -y install nginx
RVMでRubyをインストール
(作業アカウント)sudo adduser --shell /bin/bash --gecos 'Discourse application' discourse sudo install -d -m 755 -o discourse -g discourse /var/www/discourse sudo -u postgres createuser -s discourse sudo -u postgres psql -c "alter user discourse password 'dbのパスワードを決めて入れる';"
ここからdiscourseユーザで作業します。
sudo su - discourse
(discourseユーザ)\curl -s -S -L https://get.rvm.io | bash -s stable . ~/.rvm/scripts/rvm
上記コマンドの実行に失敗したらエラーメッセージに書いてある、
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
を実行してから再度試します。rvm --autolibs=read-fail requirements
"Requirements installation successful."と表示され無かった場合は、 エラーメッセージに書かれているパッケージを追加でインストールして再確認します。
"Requirements installation successful."と表示されたら次に進みます。
※追加パッケージのインストールは、作業アカウントで!rvm install 2.0.0 rvm use 2.0.0 --default gem install bundler
discourseのセットアップ
(discourseユーザ)git clone git://github.com/discourse/discourse.git /var/www/discourse cd /var/www/discourse bundle install --deployment --without test cd /var/www/discourse/config cp discourse_quickstart.conf discourse.conf cp discourse.pill.sample discourse.pill
設定ファイルを変更します。
vi discourse.conf
dbのユーザ名とパスワードを変更します。
ホスト名を変更します。
メールの設定をします。vi discourse.pill
必要があればアプリケーション名を変更します。
cd /var/www/discourse createdb discourse_prod RUBY_GC_MALLOC_LIMIT=90000000 RAILS_ENV=production bundle exec rake db:migrate RUBY_GC_MALLOC_LIMIT=90000000 RAILS_ENV=production bundle exec rake assets:precompile
以下、言語を変更する場合行います。
cd /var/www/discourse RAILS_ENV=production bundle exec rails c # rails consoleが立ち上がります LocaleSiteSetting.values #←サポートされている言語の一覧 SiteSetting.default_locale = 'ja' #←日本語の場合 exit
nginxのセットアップ(作業アカウント)
sudo cp /var/www/discourse/config/nginx.global.conf /etc/nginx/conf.d/local-server.conf sudo cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
nginxでdiscourse以外のサービスを提供しない場合に実行します。
sudo mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.disabled
設定ファイルを変更します。
sudo vi /etc/nginx/conf.d/discourse.conf
server_nameを変更します。
NUM_WEBに合わせてsocketの数を変更します。
discourseを/var/www/discourse以外に設置した場合はそれに合わせて各種設定を変更します。
nginxのキャッシュの保存場所が違う場合があるので、確認して proxy_cache_pathを変更します。sudo /etc/init.d/nginx reload
Bluepillのセットアップ(discourseユーザ)
gem install bluepill echo 'alias bluepill="NOEXEC_DISABLE=1 bluepill --no-privileged -c ~/.bluepill"' >> ~/.bash_aliases rvm wrapper $(rvm current) bootup bluepill rvm wrapper $(rvm current) bootup bundle
discourseの起動
RUBY_GC_MALLOC_LIMIT=90000000 RAILS_ROOT=/var/www/discourse RAILS_ENV=production NUM_WEBS=2 bluepill --no-privileged -c ~/.bluepill load /var/www/discourse/config/discourse.pill
サーバー起動時にdiscourseが自動起動するようにします
crontab -e
次の行を追記します
@reboot RUBY_GC_MALLOC_LIMIT=90000000 RAILS_ROOT=/var/www/discourse RAILS_ENV=production NUM_WEBS=2 /home/discourse/.rvm/bin/bootup_bluepill --no-privileged -c ~/.bluepill load /var/www/discourse/config/discourse.pill
以上で大体のセットアップは終わりです。
その他の設定は各環境に合わせて行ってください。
メールがdiscourseから飛ばないので、勉強します。。。
今後について
日本語に翻訳されておらず「 [ja.composer.auto_close.all.units]」のように表示されるところが多く目立ちます。
日本でdiscourseのサービスを提供できるようにまずは翻訳を直していきたいと思います。