データベースファイルを置くディレクトリのこと. 以下,次のようにします.
Postgres 用アカウントは,Postgres サーバの起動,データベースファイルの 所有権の設定等に使う.
以下,このページでは,次のように書く. パスワードは,必ず,適切に設定すること.
Discourse アカウントは,Discourse のインストールや設定等に使う.
以下,このページでは,次のように書く. パスワードは,必ず,適切に設定すること.
サーバ・エンコーディングは UTF-8 を使うことにする(PostgreSQL ではサーバ上のエンコーディングとしては,シフトJIS が使えないため).
sudo apt -y update sudo apt -y install redis-server
sudo apt-get -y --purge remove ruby1.8 sudo apt-get -y --purge remove ruby1.8-dev sudo apt-get -y install ruby1.9.3 sudo apt-get -y install ruby1.9.1-dev
rubygems をインストールしたいので実行する.
sudo REALLY_GEM_UPDATE_SYSTEM=YES gem update --system
bundler が必要なので実行する.
dpkg -l | grep bundle sudo gem install bundler
このときにDiscourse ユーザの パスワードを設定する.
sudo adduser --shell /bin/bash --gecos 'Discourse application' discourse
discourse ALL=(ALL:ALL) ALL
「sudo su - discourse 」は、Discourse ユーザとして操作を行うためのコマンド. これ以降の操作は、Discourse ユーザで行う.
sudo rm -rf /var/www/discourse sudo install -d -m 755 -o discourse -g discourse /var/www/discourse sudo su - discourse git clone https://github.com/discourse/discourse.git /var/www/discourse
この後の操作も、Discourse ユーザで行う.
Discourse の動作に必要な gem をインストールする操作.
エラーメッセージが出ていないことを確認すること.
cd /var/www/discourse bundle install --deployment --without test
sudo gem update gem list
cd /var/www/discourse/config cp discourse_quickstart.conf discourse.conf cp discourse.pill.sample discourse.pill
◆ 設定例
exit
sudo apt-get remove '^nginx.*$'
sudo rm -f /etc/apt/sources.list.d/nginx.list touch /etc/apt/sources.list.d/nginx.list echo "deb http://nginx.org/packages/ubuntu/ `lsb_release -sc` nginx" | sudo tee -a /etc/apt/sources.list.d/nginx.list echo "deb-src http://nginx.org/packages/ubuntu/ `lsb_release -sc` nginx" | sudo tee -a /etc/apt/sources.list.d/nginx.list sudo apt -y update sudo apt -y install nginx
sudo apt -y update sudo apt-get -y upgrade sudo shutdown -r now
sudo apt -y update sudo apt -y install postgresql sudo apt -y install postgresql-client-common sudo apt -y install postgresql-common sudo apt -y install postgresql-contrib sudo apt -y install postgresql-9.1-postgis sudo apt -y install postgresql-9.1-plr
sudo apt -y update sudo apt -y install pgadmin3
sudo pg_ctlcluster 12 main restart sudo pg_ctlcluster 12 main status
パッケージを使って PostgreSQL をインストールすると,Postgres 用アカウント(ユーザ名は「postgres」)が自動的に作成される.
sudo cat /etc/passwd | grep postgres
※ 「x」は no password という意味(パスワードがないという意味ではない)
ここでは,データベースディレクトリは /var/lib/postgresql/data とする.好きに決めていいが,日本語を含まないディレクトリ名にすること.
sudo mkdir /var/lib/postgresql/data sudo chown -R postgres:postgres /var/lib/postgresql/data
「sudo su - postgres」は,postgres ユーザに切り替える操作. 元のユーザに戻るには「exit」と操作する.
sudo su - postgres /usr/lib/postgresql/9.1/bin/initdb --encoding='UTF-8' -D /var/lib/postgresql/data exit
discourse で PostgreSQL にログインできるように, /etc/postgresql/9.1/main/pg_hba.conf を編集
local all discourse peer
/etc/postgresql/9.1/main/pg_hba.conf を書き換えたので再起動.
sudo pg_ctlcluster 12 main status
/var/www/discourse/config/discourse.conf で設定したユーザ名(ここでは「discourse」)とパスワード(ここでは「sH2160」)を正しく設定する.
sudo su - postgres psql -U postgres create role discourse with superuser login password 'sH2160'; \q exit
※ 「間違えたので、ロールを削除したい」というときは「drop role discourse;」のように操作する
「sudo su - discourse 」は、Discourse ユーザとして操作を行うためのコマンド. これ以降の操作は、Discourse ユーザで行う.
sudo su - discourse psql -U discourse -d postgres \q
database: discourse_prod のように設定する.
◆ 設定例
【外部ページへのリンク】 https://github.com/discourse/discourse/blob/main/docs/INSTALL.md
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
psql -U discourse -l
bundle exec rails s