サーバーでもUbuntuを使っています

メインはWindows 7ですが、時々Ubuntuデスクトップやサーバーを使っています。Ubuntuサーバーで操作が困ったときに対処した内容をまとめています。間違いがあれば教えてください。

Stack Overflowのクローン「Question2Answer」をインストールする

Q&Aサイト(って言っていい?)「Stack Overflow」のクローン「Question2Answer」のインストール方法を紹介します。使用したマシンのOSは、Ubuntu Server 16.04.4 LTSです(Ubuntu Server 18.04 LTSでも同じ手順だと思う)。

とりあえず、実行するコマンドは次の通り。

$ sudo apt -y install apache2 php php-mysql mysql-server libapache2-mod-php php-gd php-mbstring php-xml php-mcrypt git

MySQLの管理者パスワードを設定

$ mysqladmin create q2a -u root -p

MySQLの管理者パスワードを入力

$ sudo a2enmod rewrite
$ git clone https://github.com/q2a/question2answer.git
$ git clone https://github.com/naga0ka/Q2A-Japanese.git
$ mv Q2A-Japanese/ja question2answer/qa-lang/.
$ mv question2answer/qa-config-example.php question2answer/qa-config.php
$ vi question2answer/qa-config.php

初めの方の3行を青字で示したように書き換える
define('QA_MYSQL_USERNAME', 'root');
define('QA_MYSQL_PASSWORD', 'MySQLの管理者パスワード');
define('QA_MYSQL_DATABASE', 'q2a');

$ sudo mv question2answer/ /var/www/html/q2a
$ sudo chown www-data.www-data /var/www/html/q2a
$ sudo systemctl restart apache2

 

「http://IPアドレス/q2a」にアクセス。インストーラーに指示に従って導入(手順省略)。インストール後、Gmailのメールサーバーを設定すれば、各種通知をメールで配信できます(「安全性の低いアプリの許可」を有効にしておく)。

 

 

CMS「Joruri」をUbuntuで動かす

徳島県庁のホームページに使われているCMSJoruri」をWeb記事にしようと思いましたが、目的のものと違ったのでここに掲載します。CMSとしてはとてもよくできています。このコマンド通りにインストールすれば、Ubuntu上で動きます(たぶん問題ないと思われます)。ちなみに音声読み上げの箇所はやっていません。nginxのログ部分は、暫定対処にしています(「main」と「warn」のフォーマットが読み込まれていないって問題がありました)。

CenOSへのインストール手順はここにあるので、参考にしてください。

$ sudo apt install ruby nginx postgresql build-essential ruby-dev zlib1g-dev liblzma-dev libgmp3-dev libpq-dev libpq-dev libmagickcore-dev imagemagick libmagickwand-dev
$ sudo gem install bundler nio4r
$ sudo su - postgres -c "psql -c \"CREATE USER joruri WITH CREATEDB ENCRYPTED PASSWORD 'joruripass';\""
$ sudo useradd -m joruri
$ sudo git clone https://github.com/joruri/joruri-cms-2017.git /var/www/joruri
$ sudo chown -R joruri.joruri /var/www/joruri
$ sudo apt install libxml++2.6-dev libxslt1-dev libldap2-dev nodejs exiv2
$ sudo -i
# su - joruri -c 'export LANG=ja_JP.UTF-8; cd /var/www/joruri && bundle config build.pg --with-pg-config=/usr/bin/pg_config'
# su - joruri -c 'export LANG=ja_JP.UTF-8; cd /var/www/joruri && bundle install --path vendor/bundle --without development test'
# cp /var/www/joruri/config/samples/logrotate /etc/logrotate.d/joruri_logrotate
# cp /var/www/joruri/config/samples/reload_servers.sh /root/. && chmod 755 /root/reload_servers.sh
# ROOT_CRON_TXT='/var/www/joruri/config/samples/root_cron.txt'
# crontab -l > $ROOT_CRON_TXT
# grep -s reload_servers.sh $ROOT_CRON_TXT || echo '0,30 * * * * /root/reload_servers.sh' >> $ROOT_CRON_TXT
# crontab $ROOT_CRON_TXT
# su - joruri -c 'cp -p /var/www/joruri/config/original/*.yml /var/www/joruri/config/'
# sed -i -e 's@http://joruri.example.com/@http://サーバーのIPアドレス/@g' /var/www/joruri/config/core.yml
# su - joruri -c 'export LANG=ja_JP.UTF-8; cd /var/www/joruri && bundle exec rake secret RAILS_ENV=production'

キーが表示

# vi /var/www/joruri/config/secrets.yml

production:
secret_key_base:キーに書き換え
# su - joruri -c 'export LANG=ja_JP.UTF-8; cd /var/www/joruri && bundle exec rake db:setup RAILS_ENV=production'
# su - joruri -c 'export LANG=ja_JP.UTF-8; cd /var/www/joruri && bundle exec rake db:seed:demo RAILS_ENV=production'
# su - joruri -c 'export LANG=ja_JP.UTF-8; cd /var/www/joruri && bundle exec rake joruri:configure RAILS_ENV=production'
# ln -s /var/www/joruri/config/nginx/nginx.conf /etc/nginx/conf.d/joruri.conf
# sed -i -e 's@access_log@#access_log@' /var/www/joruri/config/nginx/servers/site_0001.conf
# sed -i -e 's@error_log@#error_log@' /var/www/joruri/config/nginx/servers/site_0001.conf
# systemctl restart postgresql
# systemctl restart nginx
# cp /var/www/joruri/config/samples/unicorn.service /lib/systemd/system/joruri_unicorn.service
# sed -i -e 's@/usr/local/rbenv/shims/bundle@/usr/local/bin/bundle@' /lib/systemd/system/joruri_unicorn.service
# systemctl start joruri_unicorn && systemctl enable joruri_unicorn
# cp /var/www/joruri/config/samples/delayed_job.service /lib/systemd/system/joruri_delayed_job.service
# sed -i -e 's@/usr/local/rbenv/shims/bundle@/usr/local/bin/bundle@' /lib/systemd/system/joruri_delayed_job.service
# systemctl start joruri_delayed_job && systemctl enable joruri_delayed_job
# su - joruri -c 'export LANG=ja_JP.UTF-8; cd /var/www/joruri && bundle exec whenever --update-crontab'