「mariadb」タグアーカイブ

MariaDBを外部から接続できるようにするCentOS 7

MariaDBを外部サーバからアクセスできるように設定する。

MariaDBは前回導入しましたが、外部からアクセスできるように設定を行います。

外部とは、同一ネットワーク内のサーバからのみアクセスを許可します。全公開するとセキュリティを考慮する必要が生じますので、同一ネットワーク内としています。

環境

CentOS 7.4
MariaDB 10.1

作業項目

  1. ファイアウォールでMariaDBのサービスを許可する。
  2. MariaDB内に外部からアクセスを許可するユーザを作成する。
  3. MariaDBの設定を確認・調整する。

ファイアウォール設定

ファイアウォールにMariaDBのアクセスを許可します。
以下のコマンドで設定します。

# firewall-cmd --permanent --add-service=mysql
# systemctl stop firewalld.service
# systemctl start firewalld.service

firewalldの再起動は以下のコマンドでもOK!

# systemctl reload firewalld.service

これでfirewalldにmysqlのサービスが許可されました。
mysqlとしましたが、MariaDBは内部にmysqlを含んでいると考えてください。そして、mysqlが許可されればMariaDBへの許可が済んだことになります。

MariaDB内に外部からアクセスを許可するユーザを作成する。

今回は、内部ネットワークなのでrootユーザと同じレベルで作成します。

# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 520
Server version: 10.1.31-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO root@"10.123.123.%" IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;

前回インストールしたMariaDBであれば、これだけでOKのはずです。

私が少し躓いたのは、間に物理的なファイアウォールやUTMを配したネットワークを経由した際に、そのハードルを越えるために設定を施す必要が生じたのですが、同一ネットワーク内であれば、ルータ代わりにUTMを使っている様な下手なことをしていなければこれでつながるはずです。

MariaDBの設定を確認・調整する。

基本的には必要ありませんが、/etc/my.confや/etc/my.conf.d/で設定しているconfファイルで、bind-addressを指定している場合には、その設定を見直す必要があります。

bind-addressで指定が行われている場合、外部からアクセスするアクセス元のIPアドレスを確認して登録します。

対象ファイルは
/etc/my.conf
それ以外は以下の様に確認しました。

# cd /etc/my.conf.d/
# grep bind-address *.conf

これで何か設定が行われていれば、以下の様に接続元のIPアドレスを追加します。

bind-address = 10.123.123.8

こんな感じです。

以上で完了です。

最後に確認

最後に確認方法ですが・・・・

外部のマシンから以下のコマンドを実行します。

# mysql -h MariaDBの設置されたホスト名もしくはIPアドレス -u root -p

これでアクセスできない場合には、もう一度設定をみなしましょう。
それでも接続できない場合は、ネットワークに問題があるのかも知れません。ネットワーク管理者に相談してみるのも方法かと思います。

 

CentOS 7 へMariaDB 10.1(最新)をインストール

CentOS 7 + MariaDB 最新版をインストール

2018年3月時点における環境は以下の通り。

CentOS 7.4
MariaDB 5.5

この状況ですと、MariaDBの最新版がインストールされていない状態になっています。
MariaDBには、「Galera Cluster」が提供されておりますが、10.1以降ではデフォルトで組み込まれる様になりました。
つまり、10.0までのバージョンでは個別インストールが必要となります。

また、MariaDBとMySQLのバージョン関係を見てみましょう。


MariaDBバージョン MySQQLバージョン
MariaDB5.5.x MysQl5.5
別途Galera Clusterをインストール。
MariaDB10.0.x Mysql5.6
別途Galera Clusterをインストール。
MariaDB10.1.x Mysql5.7を取り入れ、MariaDB独自機能あり。
Galera Clusterは組み込み済み。

正直、現時点でMySQL 5.5はちょっと古い。5.6もしくは5.7をインストールしたい。
デフォルトのCentOS 7ではMariaDB5.5に対応しており、MariaDB10.xをインストールするには別途独自のインストール設定を行わなければならない。

ジレンマはあるが、後々のことを考えると選択肢は新しいバージョンを適用したい。

MariaDB 10.1.xをインストールする!

旧パッケージの削除

まず、既にインストールされているMariaDB関連のパッケージを確認→削除する。

# yum list installed  | grep -i mariadb
mariadb-libs.x86_64              1:5.5.56-2.el7                      @base

確認すると、mariadb-libsがデフォルトでインストールされているので、これを削除する。

# yum remove mariadb-libs

リポジトリの準備

MariaDBの本家からインストールを行えるようにリポジトリを追加する。

以下のサイトでも紹介されています。

https://mariadb.com/kb/ja/yum/

まずリポジトリの定義を行います。
/etc/yum.repos.d/にMariaDB.repoを作成します。
内容は以下の通りです。

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

MariaDBをインストール

これでMariaDBをyumでインストールできる。

# yum install MariaDB-server MariaDB-client

確認してみます。

# yum list installed | grep -i mariadb
MariaDB-client.x86_64            10.1.31-1.el7.centos                @mariadb
MariaDB-common.x86_64            10.1.31-1.el7.centos                @mariadb
MariaDB-server.x86_64            10.1.31-1.el7.centos                @mariadb
galera.x86_64                    25.3.22-1.rhel7.el7.centos          @mariadb

これでインストール自体は完了です。

MariaDBの初期設定

MariaDBの初期設定を行います。
インストール直後の設定はほとんど何もされていない状態にあるようです。
そこで、インストール設定を行います。
まず、デフォルトの設定ファイルをバックアップしておきます。
#本家では推奨されているわけではないのですが、気持ち的にオリジナルを無くしてしまうのは気持ち悪いw

# cd /etc/my.cnf.d/
# cp -p server.cnf server.cnf_org

バックアップ出来たので、初期設定を行います。

# cp -p /usr/share/mysql/my-small.cnf /etc/my.cnf.d/server.cnf
cp: `/etc/my.cnf.d/server.cnf' を上書きしますか? y

文字コードの設定が行われていない状態なので、設定をします。
以下の項目を追記します。

[client]
default-character-set = utf8

[mysqld]
character-set-server = utf8

取りあえず、大まかな設定は済みました。
この後は、MariaDBを起動しMariaDBのセキュア設定を行う。

MariaDBの起動

MariaDBを起動する。

# systemctl start mariadb.service

注意!!

2018-06-15時点において、上記の設定方法ではMariaDBが正常に起動できません!
2019-03-31時点において、問題は無くなっていました。
以下、不要となった部分に取り消し線を入れておきます。

多分、MariaDBのインストーラーがバグっている様に思えます。

# systemctl start mariadb
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.

こんな感じのエラーが表示されます。更に要求されたコマンドを実行してみます。

# systemctl status mariadb
● mariadb.service - MariaDB 10.1.33 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: failed (Result: exit-code) since 木 2018-06-14 19:58:09 JST; 22s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 7780 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
  Process: 7729 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
  Process: 7727 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 7780 (code=exited, status=1/FAILURE)

 6月 14 19:58:09 localhost.localdomain mysqld[7780]: 2018-06-14 19:58:09 139863650711808 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.39-83.1 started; log sequence number 1600607
 6月 14 19:58:09 localhost.localdomain mysqld[7780]: 2018-06-14 19:58:09 139863650711808 [Note] Plugin 'FEEDBACK' is disabled.
 6月 14 19:58:09 localhost.localdomain mysqld[7780]: 2018-06-14 19:58:09 139863650711808 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded
 6月 14 19:58:09 localhost.localdomain mysqld[7780]: 2018-06-14 19:58:09 139863013713664 [Note] InnoDB: Dumping buffer pool(s) not yet started
 6月 14 19:58:09 localhost.localdomain mysqld[7780]: 2018-06-14 19:58:09 139863650711808 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
 6月 14 19:58:09 localhost.localdomain mysqld[7780]: 2018-06-14 19:58:09 139863650711808 [Note] Server socket created on IP: '::'.
 6月 14 19:58:09 localhost.localdomain systemd[1]: mariadb.service: main process exited, code=exited, status=1/FAILURE
 6月 14 19:58:09 localhost.localdomain systemd[1]: Failed to start MariaDB 10.1.33 database server.
 6月 14 19:58:09 localhost.localdomain systemd[1]: Unit mariadb.service entered failed state.
 6月 14 19:58:09 localhost.localdomain systemd[1]: mariadb.service failed.

対処方法は以下の通りです。

# yum remove mysql mysql-server
読み込んだプラグイン:fastestmirror, langpacks
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ MariaDB-client.x86_64 0:10.1.33-1.el7.centos を 削除
---> パッケージ MariaDB-server.x86_64 0:10.1.33-1.el7.centos を 削除
--> 依存性解決を終了しました。

依存性を解決しました

==================================================================================================================================================================================================================
 Package                                             アーキテクチャー                            バージョン                                                   リポジトリー                                   容量
==================================================================================================================================================================================================================
削除中:
 MariaDB-client                                      x86_64                                      10.1.33-1.el7.centos                                         @mariadb                                      172 M
 MariaDB-server                                      x86_64                                      10.1.33-1.el7.centos                                         @mariadb                                      450 M

トランザクションの要約
==================================================================================================================================================================================================================
削除  2 パッケージ

インストール容量: 622 M
上記の処理を行います。よろしいでしょうか? [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  削除中                  : MariaDB-server-10.1.33-1.el7.centos.x86_64                                                                                                                                        1/2 
警告: /etc/my.cnf.d/server.cnf は /etc/my.cnf.d/server.cnf.rpmsave として保存されました。
  削除中                  : MariaDB-client-10.1.33-1.el7.centos.x86_64                                                                                                                                        2/2 
  検証中                  : MariaDB-server-10.1.33-1.el7.centos.x86_64                                                                                                                                        1/2 
  検証中                  : MariaDB-client-10.1.33-1.el7.centos.x86_64                                                                                                                                        2/2 

削除しました:
  MariaDB-client.x86_64 0:10.1.33-1.el7.centos                                                            MariaDB-server.x86_64 0:10.1.33-1.el7.centos                                                           

完了しました!
# cd /var/lib/mysql
# rm -R *
# yum install mysql mysql-server
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp.iij.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ MariaDB-client.x86_64 0:10.1.33-1.el7.centos を インストール
---> パッケージ MariaDB-server.x86_64 0:10.1.33-1.el7.centos を インストール
--> 依存性解決を終了しました。

依存性を解決しました

==================================================================================================================================================================================================================
 Package                                              アーキテクチャー                             バージョン                                                 リポジトリー                                   容量
==================================================================================================================================================================================================================
インストール中:
 MariaDB-client                                       x86_64                                       10.1.33-1.el7.centos                                       mariadb                                        39 M
 MariaDB-server                                       x86_64                                       10.1.33-1.el7.centos                                       mariadb                                       104 M

トランザクションの要約
==================================================================================================================================================================================================================
インストール  2 パッケージ

総ダウンロード容量: 143 M
インストール容量: 622 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): MariaDB-10.1.33-centos73-x86_64-client.rpm                                                                                                                                          |  39 MB  00:00:28     
(2/2): MariaDB-10.1.33-centos73-x86_64-server.rpm                                                                                                                                          | 104 MB  00:00:44     
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                              3.2 MB/s | 143 MB  00:00:44     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : MariaDB-client-10.1.33-1.el7.centos.x86_64                                                                                                                                        1/2 
  インストール中          : MariaDB-server-10.1.33-1.el7.centos.x86_64                                                                                                                                        2/2 
2018-06-14 20:39:46 140526705314048 [Note] /usr/sbin/mysqld (mysqld 10.1.33-MariaDB) starting as process 10479 ...
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

2018-06-14 20:39:46 140526705314048 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: The InnoDB memory heap is disabled
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: Compressed tables use zlib 1.2.7
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: Using Linux native AIO
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: Using SSE crc32 instructions
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: Completed initialization of buffer pool
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
2018-06-14 20:39:46 140526705314048 [Warning] InnoDB: New log files created, LSN=45781
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: Doublewrite buffer not found: creating new
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: Doublewrite buffer created
2018-06-14 20:39:46 140526705314048 [Note] InnoDB: 128 rollback segment(s) are active.
2018-06-14 20:39:46 140526705314048 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-06-14 20:39:47 140526705314048 [Note] InnoDB: Foreign key constraint system tables created
2018-06-14 20:39:47 140526705314048 [Note] InnoDB: Creating tablespace and datafile system tables.
2018-06-14 20:39:47 140526705314048 [Note] InnoDB: Tablespace and datafile system tables created.
2018-06-14 20:39:47 140526705314048 [Note] InnoDB: Waiting for purge to start
2018-06-14 20:39:47 140526705314048 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.39-83.1 started; log sequence number 0
2018-06-14 20:39:47 140525919270656 [Note] InnoDB: Dumping buffer pool(s) not yet started
2018-06-14 20:39:50 140323583248640 [Note] /usr/sbin/mysqld (mysqld 10.1.33-MariaDB) starting as process 10510 ...
2018-06-14 20:39:50 140323583248640 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

2018-06-14 20:39:50 140323583248640 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2018-06-14 20:39:50 140323583248640 [Note] InnoDB: The InnoDB memory heap is disabled
2018-06-14 20:39:50 140323583248640 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2018-06-14 20:39:50 140323583248640 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2018-06-14 20:39:50 140323583248640 [Note] InnoDB: Compressed tables use zlib 1.2.7
2018-06-14 20:39:50 140323583248640 [Note] InnoDB: Using Linux native AIO
2018-06-14 20:39:50 140323583248640 [Note] InnoDB: Using SSE crc32 instructions
2018-06-14 20:39:50 140323583248640 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2018-06-14 20:39:50 140323583248640 [Note] InnoDB: Completed initialization of buffer pool
2018-06-14 20:39:50 140323583248640 [Note] InnoDB: Highest supported file format is Barracuda.
2018-06-14 20:39:50 140323583248640 [Note] InnoDB: 128 rollback segment(s) are active.
2018-06-14 20:39:50 140323583248640 [Note] InnoDB: Waiting for purge to start
2018-06-14 20:39:50 140323583248640 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.39-83.1 started; log sequence number 1616697
2018-06-14 20:39:50 140322805901056 [Note] InnoDB: Dumping buffer pool(s) not yet started
2018-06-14 20:39:53 139656371382528 [Note] /usr/sbin/mysqld (mysqld 10.1.33-MariaDB) starting as process 10540 ...
2018-06-14 20:39:53 139656371382528 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

2018-06-14 20:39:53 139656371382528 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2018-06-14 20:39:53 139656371382528 [Note] InnoDB: The InnoDB memory heap is disabled
2018-06-14 20:39:53 139656371382528 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2018-06-14 20:39:53 139656371382528 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2018-06-14 20:39:53 139656371382528 [Note] InnoDB: Compressed tables use zlib 1.2.7
2018-06-14 20:39:53 139656371382528 [Note] InnoDB: Using Linux native AIO
2018-06-14 20:39:53 139656371382528 [Note] InnoDB: Using SSE crc32 instructions
2018-06-14 20:39:53 139656371382528 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2018-06-14 20:39:53 139656371382528 [Note] InnoDB: Completed initialization of buffer pool
2018-06-14 20:39:53 139656371382528 [Note] InnoDB: Highest supported file format is Barracuda.
2018-06-14 20:39:53 139656371382528 [Note] InnoDB: 128 rollback segment(s) are active.
2018-06-14 20:39:53 139656371382528 [Note] InnoDB: Waiting for purge to start
2018-06-14 20:39:53 139656371382528 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.39-83.1 started; log sequence number 1616707
2018-06-14 20:39:53 139655584409344 [Note] InnoDB: Dumping buffer pool(s) not yet started

PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:

'/usr/bin/mysqladmin' -u root password 'new-password'
'/usr/bin/mysqladmin' -u root -h localhost.localdomain password 'new-password'

Alternatively you can run:
'/usr/bin/mysql_secure_installation'

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the MariaDB Knowledgebase at http://mariadb.com/kb or the
MySQL manual for more instructions.

Please report any problems at http://mariadb.org/jira

The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Consider joining MariaDB's strong and vibrant community:
Get Involved
検証中 : MariaDB-server-10.1.33-1.el7.centos.x86_64 1/2 検証中 : MariaDB-client-10.1.33-1.el7.centos.x86_64 2/2 インストール: MariaDB-client.x86_64 0:10.1.33-1.el7.centos MariaDB-server.x86_64 0:10.1.33-1.el7.centos 完了しました! # systemctl start mariadb

まとめると、こんな感じ。

# yum remove myslq
# cd /var/lib/mysql
# rm -R *
# yum install mysql mysql-server
# systemctl start mariadb

なんか最初のインストールでゴミが出来てしまうのと、インストールに必要なプラグインが抜け落ちてる感じがします。
それを無理矢理、MySQLのパッケージを削除→ゴミも削除→再度インストール。。。という流れでしょうか?

最後に、MariaDBを再起動時にも起動するように設定するには、以下のコマンドを実行します。

# systemctl enable mariadb

セキュリティ設定

セキュリティ設定を行います。

# mysql_secure_installation
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):[リターン]

Set root password? [Y/n] y
New password:****
Re-enter new password:****

Remove anonymous users? [Y/n] y

Disallow root login remotely? [Y/n] y

Remove test database and access to it? [Y/n] y

Reload privilege tables now? [Y/n] y

※パスワードは適当に入力してください。

これでセキュリティ設定は完了です。

こんな感じで使えるようになります。

MantisをCentOS 7へインストールする。

Mantisのインストールは比較的に楽だということで、インストールしてみた。

最初は順調にインストール出来たのだが、データベース絡みのセキュリティに引っ掛かったために大幅に時間をロスすることとなった。

CentOS 6までならばその問題に遭遇することなくインストール出来るようです。

CentOS 6でも下記のインストール方法でインストール出来るはずですが、CentOS 7では少しだけ設定が追加になりますので、その点も記載しながらインストール方法をまとめます。

インストール準備

まずは動作環境について整理します。

対象OS:7.3.1611
Web:Apache 2.4.6
mariadb:15.1
php:5.4.16

今回は、OSのみインストール済みでした。各種パッケージは順次インストールします。

今回インストールを行ったマシンのH/W環境は以下の様な感じです。
4コア程度の安価なマシン。
メモリは16GB入れていますが、4GBとかでも十分に動くでしょう。
HDDは。。。たまたま無かったので、空いていたSSD500GBを使いましたが、基本的にそんなスペックは必要ありませんw
実際に必要な環境は調べていませんが、各々で必要に応じて調べてください。

インストール作業

これからインストール作業を開始します。

nkfを入れたりしないのであれば多分必要ないのですが、何かとデフォルトのリポジトリだけだと足りなくって、結局入れることになるのがEPELリポジトリなんですよねw

そこで、面倒なことは先に済ませておこうということで、EPELリポジトリを登録しておきます。

EPELリポジトリ

# yum install epel-release

デフォルトで使うとか使わないとか・・・あるけど、取りあえず無視します。必要な人は、一通りインストールが終わった後で設定してください。

Apache

yumを使って簡単にインストールします。

# yum install  httpd mod_ssl

いろいろと設定を行うところはありますが、Mantisを入れることが目的ですから、簡単なインストール方法だけです。
セキュリティ面など詳細な設定を行いたい方は、別途調べてください。

Apacheを起動します。

# systemctl start httpd

CentOS 6では、

# service httpd start

自動起動の設定を行います。

# systemctl enable httpd.service

CentOS 6では、

# chkconfig httpd on

なんとなく、CentOS 6と7の違いがわかると思います。
これ以降はsystemctrl/service/chkconfig関連のCentOS 6および7による違いに関しては省略し、CentOS 7の設定方法のみ記載します。

nkf

文字コード変換ツールのnkfをインストールします。
どこのサイトにもMantisインストールに際し必要という記載は無かったのですが、readme.txtなどの日本語が入っているファイルでSJISが使われているところがあったのでインストールしました。
普通は使いませんが、必要になった時の為と思ってください。
要らない人は無視してください。

こちらも簡単に。。。

# yum install nkf

PHP

こちらも簡単にyumでインストールします。

# yum install php php-mysql php-mbstring

ntpとwget

時間を管理するためにNTPをインストールします。
またついでになりますが、wgetをインストールします。
wgetはファイルをダウンロードする際に使用しますが、今回は直接使用しません。
Mantisが使うために必要になるみたいです。

# yum install ntp wget

ここで少しタイムゾーンの設定だけしておきます。

多分、Mantisをこのまま入れてしまうと、時間の設定がゴチャゴチャするのかも知れません。意外と問題ないのかも知れませんが、取り敢えず。

# vi /etc/php.ini

内容は以下です。
タイムゾーンを指定しています。

[Date]
; Defines the default timezone used by the date functions
; https://php.net/date.timezone
;date.timezone =
date.timezone = Asia/Tokyo

該当箇所を修正してください。

mariadb

さて、CentOS 7からMySQLがmariadbに変更となっていることは既にご承知のことと思います。

ということで、以下のコマンドを実行してみてください。

# yum list installed | grep mariadb
mariadb-libs.x86_64             1:5.5.56-2.el7

OSのインストール手順によってこの辺りの環境はことなりますが、私の環境ではmariadb-serverが不足していました。

ということで、mariadb-serverをインストールします。

# yum install mariadb-server

続いて、mariadbを起動します。

# systemctl status mariadb
●mariadb.service - MariaDB daabase server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
# systemctl enable mariadb.service
# systemctl start mariadb.service

 

データベースの作成

mantisで使用するデータベースを作成します。

※MySQLのバージョンは大丈夫ですか?バージョンが古い場合、この後の作業を進めてしまうと後で面倒なことになります。十分注意してください。

mysqlへアクセスします。

mysql -u root

DBを作成します。

mysql> CREATE DATABASE bugtrackerdb;
mysql> CREATE USER mantisuser@localhost IDENTIFIED BY 'db_user';
mysql> GRANT ALL ON bugtrackerdb.* TO mantisuser;

※db_userについては、適当な名称を指定してください。
※その他mantisuserやbugtrackerdbについても適当に名称変更してください。

CentOS 6では、この設定だけで基本的にDBへのアクセスが許可されるのですが、CentOS 7ではもう少し作業を行います。

 

Mantisインストール

下準備が上記までの手順で完了しました。
ここからがMantisインストールの本丸です。

下記URLへブラウザでアクセスします。

https://sourceforge.net/projects/mantisbt/

「Download」のボタンをクリックすることでダウンロードされます。

ダウンロードを適当なディレクトリへ保存します。

ダウンロードしたファイル:mantisbt-2.5.0.zip

ファイルを解凍します。

unzip mantisbt-2.5.0.zip

解凍して得られたディレクトリを移動します。

mv mantisbt-2.5.0 /var/www/html/mantisbt

所有権の変更を行います。

chown apache:apache -R /var/www/html/mantisbt

ブラウザで以下のアドレスにアクセスします。

https://127.0.0.1/mantisbt/admin/install.php
※必ずローカルでアクセスしてください。外部からIPアドレスを指定しても上手く出来ない気がします。

 

CentOS 6であれば、これで上手く行くはずなのですが、CentOS 7ではエラーが発生します。

ブラウザ画面ではこれ以上何をやっても駄目でした。
パスワードを変更してみたりいろいろと手をつくしましたが、結局はlocalhostでアクセスを行える様にする際にパスワードをきちんと登録してあげる必要があるみたいです。
他の解決方法もあると思いますが、私はそれで解決しました。

では具体的に解決します。

ブラウザの「戻る」ボタンで戻ります。
駄目なら再読込みするなど元の画面に戻ります。

MySQLへ再度アクセスして、以下のコマンドを実行すると登録されているユーザ一覧が表示されます。

select Host, User, Password from mysql.user;
MariaDB [(none)]> select Host, User, Password from mysql.user;
+-----------------------+------------+-------------------------------------------+
| Host                  | User       | Password                                  |
+-----------------------+------------+-------------------------------------------+
| localhost             | root       |                                           |
| localhost.localdomain | root       |                                           |
| 127.0.0.1             | root       |                                           |
| ::1                   | root       |                                           |
| localhost             |            |                                           |
| localhost.localdomain |            |                                           |
| %                     | mantisuser |                                           |
| localhost             | mantisuser | *60E011DB435E0C2761CFC05F4D78A3FA39B912BD |
+-----------------------+------------+-------------------------------------------+
8 rows in set (0.00 sec)

ここで注目するのは、mantisuserが2つあります。

localhostと%になっている行が2つあります。

片方は何かパスワードが設定されているようですが、もう片方の%になっている方はパスワードが設定されていません。

そこにパスワードを設定します。

SET PASSWORD FOR mantisuser = PASSWORD('****');

****には適当なパスワードを指定してください。

同じようにlocalhost側のmantisuserにもパスワードを再設定します。

SET PASSWORD FOR mantisuser@localhost = PASSWORD('****');

 

先程と同じようにブラウザの画面で登録を行います。

そうするとエラーが取れました。

少し画面を省略しますが、最後のところに以下の記載が確認できます。

「Continue」をクリックすると、ログイン画面が表示されます。

初期のIDとパスワードは

ID:administrator
パスワード:root

になっています。

ログインすると以下の画面が表示されます。

 

新しいIDとパスワードを設定します。

まだ、メールの設定が出来ていませんが、一応の設定を済ませます。

「更新」しますと、再度ログイン画面が表示され新しいパスワードでログインを求められます。

再度ログインを行うと以下の画面が表示されます。

 

日本語化されていない場合は、以下の設定をconfig/config_inc.phpへ追加します。

$g_default_language = 'japanese';

以上でMantisのインストールは完了です。

メールの設定はまた別の機会に記載します。