CentOS7にRedmineをインストールし、nginxのサブフォルダで公開する。

CentOS7にRedmineをインストールし、nginxのサブフォルダで公開する。

CentOS7にRedmineをインストールし、nginxのサブフォルダで公開する。

CentOS7にRedmineをインストールし、nginxのサブフォルダで公開する。 へのコメントはまだありません

CentOS7にRedmineをインストールし、nginxのサブフォルダで公開する方法を紹介します。
nginxとの連携はpassengerを用います。nginxは説明の途中でpassenger連携のために
コンパイルしますので、nginx自体が事前にインストールされている必要はありません。

既にnginxをyum等で導入済みの場合は、設定ファイルの場所が /etc配下から
ソースコンパイルでインストールする /opt/nginx 配下に変更になりますので、
設定ファイルのマージはご自身でおねがいします。

インストールに必要な諸パッケージ導入

[bash]
$ sudo yum groupinstall “Development Tools”

$ sudo yum -y install mysql mysql-server

$ sudo yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel mysql-devel icu4c libicu-devel libxml2 libxml2-devel libxslt libxslt-devel

$ sudo gem install bundler –no-rdoc –no-ri
[/bash]

mysqlの起動と自動起動設定

[bash]
sudo systemctl start mariadb
sudo systemctl enable mariadb
[/bash]

mysql パスワード設定と、設定調整

$ mysqladmin -u root password ‘mynewpassword’

$ mysql -uroot -pxxxx

文字コードの確認をすると、一部が latin1になっています。
これを utf8に変更します。

[bash]
MariaDB [(none)]> show variables like ‘character_set%’
-> ;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.00 sec)

[/bash]

[bash]
$ sudo nano /etc/my.cnf.d/server.cnf
[/bash]

[diff]
# this is read by the standalone daemon and embedded servers
[server]

# this is only for the mysqld standalone daemon
[mysqld]
+ character-set-server=utf8  << この行を追記 [/diff] mysqlを再起動し、設定が反映されている確認。 [bash] $ sudo systemctl restart mariadb [/bash] [bash] mysql -uroot -pxxxx [/bash] latin1がutf8になっているのを確認。 [bash] MariaDB [(none)]> show variables like ‘character_set%’;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect…
Connection id: 2
Current database: *** NONE ***

+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.00 sec)

[/bash]

redmine用のデータベース作成

[bash]
mysql -uroot -p
mysql> create database db_redmine default character set utf8;
mysql> grant all on db_redmine.* to user_redmine@localhost identified by ‘********’;
mysql> flush privileges;
mysql> exit;

[/bash]

最新のredmine取得と、展開

以下のURLより最新版をダウンロードします。インストール先は
/var/lib/redmineとします。


http://www.redmine.org/projects/redmine/wiki/Download

[bash]
$ tar xvzf redmine-2.5.2.tar.gz
$ mv redmine-2.5.2 redmine

$ sudo mv redmine /var/lib/
$ sudo chown nobody:nobody /var/lib/redmine -R

redmine設定ファイルの調整

[bash]
$ sudo nano /var/lib/redmine/config/database.yml

[/bash]

データベース名、ユーザー名とパスワードは 上記で作成したDBの設定に合わせてください。
[bash]

production:
adapter: mysql2
database: db_redmine
host: localhost
username: user_redmine
password: “xxxxxx”
encoding: utf8

[/bash]

メール送信などの設定を調整します。
[bash]
$ sudo nano /var/lib/redmine/config/configuration.yml

[/bash]

[bash]
production:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: “localhost”
port: 25
domain: ‘example.com’

rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf

[/bash]

redmineに必要なgem群をインストール

[bash]
$ sudo gem install bundler

$ sudo /usr/local/bin/bundle install –without development test
[/bash]

secret_token作成とDBマイグレーション実行

[bash]
$ sudo /usr/local/bin/bundle exec /usr/local/bin/rake generate_secret_token

$ sudo RAILS_ENV=production /usr/local/bin/bundle exec /usr/local/bin/rake db:migrate

[/bash]

passengerのgemインストール

[bash]
$ sudo gem install passenger
[/bash]

nginxインストール(passenger連携用にコンパイル)

以下のコマンドを打つといろいろ出てきますが、適当に選択してインストールしてください。
/opt/nginx 配下にnginxがインストールされます。

[bash]
$ sudo /usr/local/bin/passenger-install-nginx-module

[/bash]

/opt/nginx フォルダ権限調整

[bash]
$ sudo chown nobody:nobody /opt/nginx -R
$ sudo chmod 775 /opt/nginx -R
[/bash]

ファイアーウォール設定

動作確認の前にファイアーウォールがデフォでかかっているのでhttpを通すように変更する。

まず確認。
[bash]
$ sudo firewall-cmd –list-all

public (default, active)
interfaces: virbr0 wlp2s0
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

[/bash]

sshとdhcpしか有効じゃないので、httpを追加する。
その前にどんなサービスが定義されていて、今どれが publicで有効かチェックする方法。

[bash]
※定義されているサービス一覧
$ sudo firewall-cmd –get-services

※publicのサービス確認
$ sudo firewall-cmd –list-service –zone=public

[/bash]

nginxなので httpサービスを追加してみる

[bash]
※サービスを追加する
$ sudo firewall-cmd –add-service=http –zone=public

※恒久的にサービスを追加する
$ sudo firewall-cmd –add-service=http –zone=public –permanent

[/bash]

ファイアーウォール再起動
[bash]
$ sudo firewall-cmd –reload
[/bash]

httpが有効になっているか確認
[bash]
$ sudo firewall-cmd –list-all

public (default, active)
interfaces: virbr0 wlp2s0
sources:
services: dhcpv6-client http ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

[/bash]

nginxの設定確認と、起動

-t オプションで設定ファイルをチェックし、OKならば、一旦起動してみて、ブラウザーで http://localhost として、nginxのトップページが開ければOK。

[bash]
$ sudo /opt/nginx/sbin/nginx -t
nginx: the configuration file /opt/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /opt/nginx/conf/nginx.conf test is successful

[/bash]

nginx起動

[bash]
$ sudo /opt/nginx/sbin/nginx
[/bash]

停止は

[bash]
$ ps aux |grep nginx
[/bash]

として、nginx: master process となるプロセスIDを殺すと止めることができます。

[bash]
$ sudo kill pid
[/bash]

nginx用 サービス起動ファイル作成

$ sudo nano /usr/lib/systemd/system/nginx.service

[bash]

[Unit]
Description=nginx – high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t -c /opt/nginx/conf/nginx.conf
ExecStart=/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[/bash]

デーモンリロード、nginx起動

[bash]

$ sudo systemctl daemon-reload
$ sudo systemctl start nginx
$ sudo systemctl enable nginx

[/bash]

nginx動作確認

サーバーのIPにブラウザーで接続で nginxのwelcompageが表示されれば、nginxの動作はOK

http://192.168.x.x

SELinuxを無効化

[bash]
$ sudo nano /etc/sysconfig/selinux
[/bash]

[bash]
-SELINUX=enforcing
+SELINUX=disabled
[/bash]

一旦リブートしてください
[bash]
$ sudo reboot
[/bash]

nginx passenger連携設定

passengerの場所は、インストール時に自動的に組み込まれているので、その他の項目の調整。

http://www.myhost.jp/redmine で公開する。

[bash]
$ sudo nano /opt/nginx/conf/nginx.conf
[/bash]

以下の部分を追記

[diff mark=”2″]
+ user nobody;
+ pid /opt/nginx/logs/nginx.pid;

〜省略〜
server {
listen 80;
server_name localhost;

〜省略〜

+ location ~ ^/redmine {
+ root /var/lib/redmine/public;
+ passenger_base_uri /redmine;
+ passenger_app_root /var/lib/redmine;
+ passenger_enabled on;
+ rails_env production;
+ access_log logs/redmine_access.log ;
+ error_log logs/redmine_error.log ;
+ }

[/diff]

redmine 動作確認

http://example.com/redmine へアクセス。
以下のようなトップページが出てくれば 成功。

Screenshot-Redmine - Chromium

ログインボタンをクリックし、デフォルト管理者ユーザー
admin / admin でログイン出来ればOKです。

Screenshot-Redmine - Chromium-1

以上

About the author:

Related Posts

Leave a comment

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

Back to Top