CRM F-RevoCRM環境を構築 第1回

CRMシステム環境を構築してみます

CRMは、Customer Relationship Managementの略称です。直訳すると顧客との関係を管理するシステムとなるのでしょうか。顧客関係管理、または顧客管理は顧客満足度を上げて収益を上げるためのもので、個人で活動している方や2-3名くらいまでならば、口頭、紙、メモ書き程度の電子ファイルでも同様ことができるのではないかと思いますが、関わる人数が増えると正しく情報や状況を共有することが難しくなります。
このような情報をシステムとして管理することを目的としているのがCRMシステムということになります。

管理する情報として、企業名や企業情報、担当者情報顧客情報などの管理や、顧客からの問い合わせを管理する機能が思い付きますが、実際にCRMシステムの持つ機能はもっと沢山あります。
CRMシステムとして有名なのはSalesforce.comでしょうか。

CRMシステムの導入が必要なことが判りますが、有償システムを導入するのはコスト面からも難しい場合が多いのではないでしょうか。
今回、構築を試すのはオープンソースソフトウェアのF-RevoCRMです。

F-RevoCRMとは

F-RevoCRMを調べてみると、Baseとなっているのは、インドのVTigar社が開発しているオープンソースソフトウェアvtiger CRMということが判ります。このvtiger CRMは米国SugarCRM社が開発しているSugarCRM1.0がベースとなっていました。
F-RevoCRMは、シンキングリード株式会社の運営するNHB-Labが開発を行っています。

』は高機能オープンソースCRM アプリケーションとして世界中で活用されている VtigerCRM をベースに、日本の企業文化に合わせNHB-Lab が独自にカスタマイズを行った完全にフリー&オープンな高機能CRMアプリケーションです。

出典: F-RevoCRM公式サイト
https://f-revocrm.jp/

NHB-Labとは

NHB-Labは、ビジネスオープンソースソフトウェア(ビジネスOSS)の研究・開発を行うユニットです。

NHB-Lab.はお客様の「課題」を解決する為に、戦略立案のコンサルティングからシステム開発まで、それぞれ各分野に特化した企業が集まったソリューションユニット型の新しいタイプのコンソーシアムです。
ソリューションユニットとは、決められたモノやサービスを売るのでは無く、お客様の課題に併せ、会社の枠を超えて都度必要な分野のプロフェッショナルを集める事で最適な解決を行うタスクフォースです。
今までのコンサルティングやシステム開発にご不満を感じている方は是非一度NHB-Lab.にお問い合わせ下さい。

出典:NHB-Lab公式サイト
http://nhb-lab.info/

F-RevoCRMの機能

  • マーケティング
  • 営業支援(SFA)
  • 販売管理
  • 保守サポート・プロジェクト管理
  • 共通機能

F-RevoCRM6.5動作環境

公式サイトにF-RevoCRM6.5の動作環境として確認されているのは下記と記載されていました。
特にOSに依存する訳ではなく、次のパッケージが動作していればいいということです。

  • Apache 2.2 / 2.4
  • MySQL 5.5 / 5/6
  • PHP 5.5 / 5/6

F-RevoCRM6.5のソースをダウンロード

F-RevoCRM6.5のソースコードを公式サイトからダウンロードします。

F-RevoCRM6.5のインストール環境を準備

今回の検証環境はVirtualBox上にCentOS7をインストールしています。

Apache2.4をインストール

# yum install httpd
# httpd -v

コマンドサンプル

[root@7-101 ~]# yum install httpd
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: download.nus.edu.sg
依存性の解決をしています

***途中省略***

:
  httpd.x86_64 0:2.4.6-67.el7..6

依存性関連をインストールしました:
  apr.x86_64 0:1.4.8-3.el7_4.1                            apr-util.x86_64 0:1.5.2-6.el7
  httpd-tools.x86_64 0:2.4.6-67.el7..6              mailcap.noarch 0:2.1.41-2.el7

完了しました!
[root@7-101 ~]# httpd -v
Server version: Apache/2.4.6 ()
Server built:   Oct 19 2017 20:39:16

firewallの設定

firewallの設定にhttpとhttpsを追加します。CentOS7をインストールしただけの状態ではpublicゾーンがActiveになっていると思います。
動作確認なのでfirewalldを停止してしまうということでも大丈夫です。

# firewall-cmd --get-active-zones
# firewall-cmd --list-services --zone=public --permanent
# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --add-service=https --zone=public --permanent

コマンドサンプル

[root@centos7-101 ~]# firewall-cmd --list-services --zone=public --permanent
dhcpv6-client ssh
[root@centos7-101 ~]# firewall-cmd --add-service=http --zone=public --permanent
success
[root@centos7-101 ~]# firewall-cmd --add-service=https --zone=public --permanent
success
[root@centos7-101 ~]# firewall-cmd --list-services --zone=public --permanent
dhcpv6-client ssh http https

ここで実行しているのは、次の内容です。

  1. activeゾーンを確認
  2. ゾーンに設定しているserviceを確認
  3. publicゾーンにserviceを追加
    –permanentは恒久的な設定に必要
  4. ゾーンに設定しているserviceが追加されていることを確認

PHPの5.6インストール

CentOS7のデフォルトリポジトリではPHP5.4をインストールしようとします。動作要件がPHP5.6かPHP5.6となっているため、リポジトリを追加してPHP5.6をインストールします。remiリポジトリをrpmでインストールできない場合はwgetなどでローカルに持ってきてからインストールします。

# yum install epal-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# yum install --enablerepo=remi-php56 gd php php-mysql php-mbstring php-ldap php-imap php-zip php-gd php-xml php-xmlrpc php-zip php-soap php-intl
# php -v

コマンドサンプル(epelのインストールログが取れてませんでした。すみません。)

[root@centos7-101 ~]# yum install epal-release
[root@centos7-101 ~]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
http://rpms.famillecollet.com/enterprise/remi-release-7.rpm を取得中
警告: /var/tmp/rpm-tmp.S58Zsf: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 00f97f56: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:remi-release-7.4-1.el7.remi      ################################# [100%]
[root@centos7-101 ~]# yum -y install --enablerepo=remi-php56 gd php php-mysql php-mbstring php-ldap php-imap php-zip php-gd php-xml php-xmlrpc php-zip php-soap php-intl
読み込んだプラグイン:fastestmirror
remi-php56                                                                   | 2.9 kB  00:00:00     
remi-safe                                                                    | 2.9 kB  00:00:00     
(1/2): remi-php56/primary_db                                                 | 230 kB  00:00:01     
(2/2): remi-safe/primary_db                                                  | 1.1 MB  00:00:02     
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * remi-php56: mirror.reconn.ru
 * remi-safe: mirror.reconn.ru
 * updates: ftp.tsukuba.wide.ad.jp
パッケージ php-mysql は php-mysqlnd によって不要になりました。代わりに php-mysqlnd-5.6.33-1.el7.remi.x86_64 のインストールを試みています。
依存性の解決をしています

****長いので略****

インストール:
  gd.x86_64 0:2.0.35-26.el7                           php.x86_64 0:5.6.33-1.el7.remi                
  php-gd.x86_64 0:5.6.33-1.el7.remi                   php-imap.x86_64 0:5.6.33-1.el7.remi           
  php-intl.x86_64 0:5.6.33-1.el7.remi                 php-ldap.x86_64 0:5.6.33-1.el7.remi           
  php-mbstring.x86_64 0:5.6.33-1.el7.remi             php-mysqlnd.x86_64 0:5.6.33-1.el7.remi        
  php-pecl-zip.x86_64 0:1.15.2-1.el7.remi.5.6         php-soap.x86_64 0:5.6.33-1.el7.remi           
  php-xml.x86_64 0:5.6.33-1.el7.remi                  php-xmlrpc.x86_64 0:5.6.33-1.el7.remi         

依存性関連をインストールしました:
  gd-last.x86_64 0:2.2.5-1.el7.remi                      jbigkit-libs.x86_64 0:2.0-11.el7           
  libXpm.x86_64 0:3.5.12-1.el7                           libc-client.x86_64 0:2007f-16.el7          
  libtiff.x86_64 0:4.0.3-27.el7_3                        libwebp.x86_64 0:0.3.0-7.el7               
  libzip5.x86_64 0:1.4.0-2.el7.remi                      php-cli.x86_64 0:5.6.33-1.el7.remi         
  php-common.x86_64 0:5.6.33-1.el7.remi                  php-pdo.x86_64 0:5.6.33-1.el7.remi         
  php-pecl-jsonc.x86_64 0:1.3.10-2.el7.remi.5.6          t1lib.x86_64 0:5.1.2-14.el7                

完了しました!

[root@centos7-101 ~]# php -v
PHP 5.6.33 (cli) (built: Jan  3 2018 13:02:21) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

MySQL5.6のインストール

MySQL5.6をインストールするため、先にリポジトリをインストールします。

# yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

コマンドサンプル

[root@centos7-101 ~]# yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
読み込んだプラグイン:fastestmirror
mysql-community-release-el7-5.noarch.rpm                                     | 6.0 kB  00:00:00     
/var/tmp/yum-root-63aYQ2/mysql-community-release-el7-5.noarch.rpm を調べています: mysql-community-release-el7-5.noarch
/var/tmp/yum-root-63aYQ2/mysql-community-release-el7-5.noarch.rpm をインストール済みとして設定しています
依存性の解決をしています

****長いので略****

インストール:
  mysql-community-release.noarch 0:el7-5                                                            

完了しました!

MySQL5.6をインストールします。

[root@centos7-101 ~]# yum install mysql mysql-devel mysql-server mysql-utilities
読み込んだプラグイン:fastestmirror
base                                                                         | 3.6 kB  00:00:00     
epel/x86_64/metalink                                                         | 6.1 kB  00:00:00     
extras                                                                       | 3.4 kB  00:00:00     
mysql-connectors-community                                                   | 2.5 kB  00:00:00     
mysql-tools-community                                                        | 2.5 kB  00:00:00     
mysql56-community                                                            | 2.5 kB  00:00:00     
packages-microsoft-com-prod                                                  | 2.9 kB  00:00:00     
remi-safe                                                                    | 2.9 kB  00:00:00     
updates                                                                      | 3.4 kB  00:00:00     
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * epel: mirror.dmmlabs.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * remi-safe: mirror.reconn.ru
 * updates: ftp.tsukuba.wide.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mysql-community-client.x86_64 0:5.6.39-2.el7 を インストール

****長いので略****

インストール:
  mysql-community-client.x86_64 0:5.6.39-2.el7      mysql-community-devel.x86_64 0:5.6.39-2.el7     
  mysql-community-server.x86_64 0:5.6.39-2.el7      mysql-utilities.noarch 0:1.6.5-1.el7            

依存性関連をインストールしました:
  libaio.x86_64 0:0.3.109-13.el7                   mysql-connector-python.x86_64 0:2.1.7-1.el7     
  net-tools.x86_64 0:2.0-0.22.20131004git.el7      perl.x86_64 4:5.16.3-292.el7                    
  perl-Carp.noarch 0:1.26-244.el7                  perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7    
  perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7      perl-DBI.x86_64 0:1.627-4.el7                   
  perl-Data-Dumper.x86_64 0:2.145-3.el7            perl-Encode.x86_64 0:2.51-7.el7                 
  perl-Exporter.noarch 0:5.68-3.el7                perl-File-Path.noarch 0:2.09-2.el7              
  perl-File-Temp.noarch 0:0.23.01-3.el7            perl-Filter.x86_64 0:1.49-3.el7                 
  perl-Getopt-Long.noarch 0:2.40-2.el7             perl-HTTP-Tiny.noarch 0:0.033-3.el7             
  perl-IO-Compress.noarch 0:2.061-2.el7            perl-Net-Daemon.noarch 0:0.48-5.el7             
  perl-PathTools.x86_64 0:3.40-5.el7               perl-PlRPC.noarch 0:0.2020-14.el7               
  perl-Pod-Escapes.noarch 1:1.04-292.el7           perl-Pod-Perldoc.noarch 0:3.20-4.el7            
  perl-Pod-Simple.noarch 1:3.28-4.el7              perl-Pod-Usage.noarch 0:1.63-3.el7              
  perl-Scalar-List-Utils.x86_64 0:1.27-248.el7     perl-Socket.x86_64 0:2.010-4.el7                
  perl-Storable.x86_64 0:2.45-3.el7                perl-Text-ParseWords.noarch 0:3.29-4.el7        
  perl-Time-HiRes.x86_64 4:1.9725-3.el7            perl-Time-Local.noarch 0:1.2300-2.el7           
  perl-constant.noarch 0:1.27-2.el7                perl-libs.x86_64 4:5.16.3-292.el7               
  perl-macros.x86_64 4:5.16.3-292.el7              perl-parent.noarch 1:0.225-244.el7              
  perl-podlators.noarch 0:2.5.1-3.el7              perl-threads.x86_64 0:1.87-4.el7                
  perl-threads-shared.x86_64 0:1.43-6.el7         

完了しました!

MySQLを開始してみます

[root@centos7-101 ~]# systemctl start mysqld
[root@centos7-101 ~]# systemctl status mysqld
● mysqld.service - MySQL Community Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2018-02-25 18:02:48 JST; 7s ago
  Process: 10519 ExecStartPost=/usr/bin/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 10459 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 10518 (mysqld_safe)
   CGroup: /system.slice/mysqld.service
           ├─10518 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─10684 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib...

 2月 25 18:02:47 centos7-101 mysql-systemd-start[10459]: Support MySQL by buying support/licen...om
 2月 25 18:02:47 centos7-101 mysql-systemd-start[10459]: Note: new default config file not created.
 2月 25 18:02:47 centos7-101 mysql-systemd-start[10459]: Please make sure your config file is ...nt
 2月 25 18:02:47 centos7-101 mysql-systemd-start[10459]: WARNING: Default config file /etc/my....em
 2月 25 18:02:47 centos7-101 mysql-systemd-start[10459]: This file will be read by default by ...er
 2月 25 18:02:47 centos7-101 mysql-systemd-start[10459]: If you do not want to use this, eithe...he
 2月 25 18:02:47 centos7-101 mysql-systemd-start[10459]: --defaults-file argument to mysqld_sa...er
 2月 25 18:02:47 centos7-101 mysqld_safe[10518]: 180225 18:02:47 mysqld_safe Logging to '/var/...'.
 2月 25 18:02:47 centos7-101 mysqld_safe[10518]: 180225 18:02:47 mysqld_safe Starting mysqld d...ql
 2月 25 18:02:48 centos7-101 systemd[1]: Started MySQL Community Server.
Hint: Some lines were ellipsized, use -l to show in full.

MySQL開始したら、/etc/my.cnfファイルを編集して設定を変更します。

編集前

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

編集後

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

character-set-server=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8

[client]
default-character-set=utf8
~                          

編集箇所は[mysqld] と [mysqld_safe]にcharacter-set-server=utf8を追記して、[client]とdefault-character-set=utf8を項目から追加します。

MySQLの初期設定を行います

mysql_secure_installationコマンドでMySQLを初期化します。初期化後にMySQLを再起動します。

以下はコマンド実行例です。

[root@centos7-101 ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, 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): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] Y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
 ... Success!
By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
 - Dropping test database...
ERROR 1008 (HY000) at line 1: Can't drop database 'test'; database doesn't exist
 ... Failed!  Not critical, keep moving...
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
 ... Success!

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

Cleaning up...

[root@centos7-101 ~]# systemctl restart mysqld

長くなり過ぎたので1回目はここまでとさせていただきます。
次回、引き続きF-RevoCRMのインストールを行います。