SuiteCRM7.10.13(LTS)のインストール設定と日本語化

SuiteCRM7.10.13日本語化済01 ㈱こころみらい

オープンソース日本語対応CRMのF-revo CRMは、残念ながらphp7非対応です。抗うべく、無理やりphp7.2でインストールしてうまくいかずに時間を大きくロストしました。ですが、顧客情報管理アプリケーションのセキュリティ性は非常に大切です。php5系ではセキュリティが心配なため、php7系対応SuiteCRMを2019/2/21時点の最新バージョンLAMPにインストール、日本語パッチ(神奈川県川崎市の株式会社ゼンクさんが前身のSugarCRMで翻訳)を設定します。各工程、Linuxのrootユーザーでコマンド実行しています。

尚、SuiteCRMの前身SugarCRMのマニュアルは株式会社ゼンクさん http://sugarhelp.zenk.co.jp/ にてご確認いただけます。

SuiteCRM github https://github.com/salesagility/SuiteCRM

SuiteCRM Compatibility https://docs.suitecrm.com/admin/compatibility-matrix/

環境はCentOS7でLAMPです。さくらVPSを使いました。Redhat系LinuxのCentOSやFedoraでyum installを使う場合、この記事の手順は参考になります。Devian系Ubuntuなどのapt関連は英語も含めて別の記事を見ていただくようにお願いします。

  • CentOS7
  • php7.2.15
  • Apache2.4.6
  • MariaDB10.2.22

尚、ドキュメントルートは /var/www/独自ドメイン/public_html のようにバーチャルホストを設定しています。説明の都合上 /var/www/独自ドメイン/public_html/suitecrm7.10.13/として、http://独自ドメイン/suitecrm7.10.13/ にてトップのログインページという想定です。

Suite CRM LTS版7.10.13をダウンロード

ダウンロードバージョンの最新LTS確認は https://suitecrm.com/download-suitecrm-lts/ にて参照ください。今回は、最新LTSの7.10.13にしました。以下、コマンドでダウンロードして解凍します。

//sshログイン後、以下ディレクトリへ移動 ※ここまでのLAMP構築は https://4649-24.com/linux/centos7-lamp/ を参考にしてください。
cd /var/www/独自ドメイン/public_html/
//ダウンロード
wget https://suitecrm.com/files/160/SuiteCRM-7.10/375/SuiteCRM-7.10.13.zip
//解凍
unzip SuiteCRM-7.10.13.zip
//ディレクトリ名称変更
mv SuiteCRM-7.10.13 suitecrm7.10.13
//zip版を削除
rm -rf SuiteCRM-7.10.13.zip
//移動する
cd suitecrm7.10.13

所有者、グループ、パーミッションの設定

所有者、グループ、パーミッションを再帰的に変更。セキュリティのためにもrootユーザーから所有者とグループをapache:nissyへ変更しておきましょう。

//所有者とグループを再帰的に変更
chown -R apache:nissy suitecrm7.10.13
//パーミッションを再帰的に変更
chmod -R 755 suitecrm7.10.13

再帰的に775ディレクトリに変えます。

chmod -R 775 cache custom modules themes data upload

標準エラーを/dev/nullにマージ(公式に書いてありました。必要に応じて行ってください。)

chmod 775 config_override.php 2>/dev/null

データベース設定

DBのrootユーザーセキュリティのことも考えて、grant関連も網羅してDBユーザやDBを作ります。※時間のあるときにDBのrootユーザーのセキュリティ対策も追記していきます。

//mysqlログイン
mysql -u root -p
//GRANT構文の実行権限をもつMySQLユーザー作成(念のため)
GRANT ALL PRIVILEGES ON *.* TO nissy_grant_mu@localhost IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
//権限の反映(念のため)
FLUSH PRIVILEGES;
//GRANT構文の実行権限を持たないMySQLユーザー作成
GRANT ALL PRIVILEGES ON *.* TO nissy_mu@localhost IDENTIFIED BY 'パスワード';
//権限の反映(念のため)
FLUSH PRIVILEGES;
//データベース作成
CREATE DATABASE IF NOT EXISTS suitecrm_db DEFAULT CHARACTER SET = utf8;
//権限の反映(念のため)
FLUSH PRIVILEGES;
//データベースにユーザーのアクセス権限を付与
GRANT ALL ON suitecrm_db.* to nissy_mu@localhost;
//権限の反映(念のため)
FLUSH PRIVILEGES;

初期設定、SuiteCRM向けのphp7.2不足パッケージをインストール

ブラウザで http://独自ドメイン/suitecrm7.10.13/install.phpへ。初期設定を行います。普通に進んでいくと、必要なコンポーネント確認で以下のエラーが出ました。

SuiteCRM7.10.13 phpコンポーネントチェックXML ㈱こころみらい

XML Parsing

Functions associated with XML Parser Libraries that are needed by the SuiteCRM application were not found. You might need to uncomment the extension in the php.ini file, or recompile with the right binary file, depending on your version of PHP. Please refer to your PHP Manual for more information.

ZIP Handling Module

ZIP support not found: SuiteCRM needs ZIP support in order to process compressed files.Location of your PHP configuration file (php.ini):
/etc/php.ini

XML ParsingとZIP Handling Moduleが無いということで、php72のインストール時に入れたと思われるパッケージを確認します。SuiteCRMの必要なパッケージ一覧は https://docs.suitecrm.com/admin/installation-guide/downloading-installing/ で確認出来ます。phpinfo();で見るよりも、現状のパッケージは以下の2コマンドで確認出来ます。このあたりは、php7.2インストール時のパッケージ選定によって環境差が出ます。

php -m
yum --enablerepo=epel,remi,remi-php72 search php72

以下のyumでphp7.2でphp-xmlインストール

yum install --enablerepo=remi-php72 php-xml

Apache再起動します

systemctl restart httpd

XML Parsingは解決しました。次はzipインストールです。

yum --enablerepo=remi-php72 install php-pecl-zip

端折りますが、再びapache再起動をしてください。その後、次の画面でIMAPが無いと言われます。

SuiteCRM7.10.13 phpコンポーネントチェックIMAP ㈱こころみらい

英語の赤文字部分です。

IMAP Module Not found: InboundEmail and Campaigns (Email) require the IMAP libraries. Neither will be functional.

IMAPのインストールです。このあと、apache再起動も行ってください。

yum install --enablerepo=remi-php72 php-imap

不足分を全部まとめてインストールする場合は以下の様になります。

yum install --enablerepo=remi-php72 php-xml php-pecl-zip php-imap

必要なパッケージなどのコンポーネントチェックを通過して無事にインストール準備ができた状態です。Let’s EncryptなどのSSL化はこの工程の直後に開始する事を推奨します。この工程であれば、DB内に非SSLなログイントップの独自ドメインなどが登録されていません。置換作業なども不要です。SuiteCRM用のデータベースは、まだ白紙状態のためです。Nextに進むとインストール設定に伴う各種入力画面に進みます。

SuiteCRM7.10.13 phpコンポーネントチェック完了 ㈱こころみらい

念のために上記テキストを以下へ記載します。整形が汚くてすみません。

System Environment
PHP Version 7.2.15XML Parsing OKMB Strings Module OKWritable SuiteCRM Configuration File (config.php) OKWriteable Custom Directory OKWritable Modules Sub-Directories and Files OKWritable Upload Directory OKWritable Data Sub-Directories OKWritable Cache Sub-Directories OKPHP Memory Limit OK (128M)ZLIB Compression Module OKZIP Handling Module OKPCRE Library OKIMAP Module OKcURL Module OKUpload File Size OKSprite Support OKPHP allows to use stream (upload://) OKLocation of your PHP configuration file (php.ini): /etc/php.ini

Cronのやり方

そのまま貼り付けただけですが、以下、SuiteCRMのCron解説です。

To Setup Crontab
In order to run SuiteCRM Schedulers, edit your web server user's crontab file with this command: 
sudo crontab -e -u apache
... and add the following line to the crontab file: 
*    *    *    *    *     cd /var/www/crm.cocoro-mirai.co.jp/public_html/suitecrm7.10.13; php -f cron.php > /dev/null 2>&1 
You should do this only after the installation is concluded. 

DBアカウントやSuiteCRMのアドミンユーザーアカウントなど、各種をGUIで設定、入力していくと、このような画面になります。

SuiteCRM7.10.13 phpコンポーネントチェック完了 ㈱こころみらい

以下にテキストとして貼り付けます。

Creating SuiteCRM configuration file (config.php)

Creating SuiteCRM application tables, audit tables and relationship metadata
Creating the database suitecrm_db on localhost...done

................................................................................................

Creating default SuiteCRM data

     Creating default users...   done
     Creating default scheduler jobs...   done

The setup of SuiteCRM 7.10.13 is now complete!

Total time: 9.9869029521942 seconds.
Approximate memory used: 46752752 bytes.

SuiteCRMの日本語翻訳 ja.zip 適用

SuiteCRMの日本語翻訳は、https://crowdin.com/project/suitecrmtranslations/ja# より上記画像の赤枠部分からja.zipをダウンロードしてください。ja.zipをダウンロードしたら、suitecrmのドキュメントルート /var/www/独自ドメイン/public_html/suitecrm7.10.13/ にアップロードして、そのまま展開、上書きします。

//nissyグループのパーミッションを緩める
chmod 775 /var/www/独自ドメイン/public_html/suitecrm7.10.13
//移動
cd /var/www/独自ドメイン/public_html/suitecrm7.10.13
//linux一般ユーザーのnissyユーザーでSFTPでja.zipアップロード、解凍
unzip ja.zip
//nissyグループのパーミッションを締める
chmod 755 /var/www/独自ドメイン/public_html/suitecrm7.10.13

suitecrmのドキュメントルートでconfig.phpの314行目にて言語選択肢を以下の様に増やします。元は英語だけです。

array (
   'en_us' => 'English (US)',
   'ja_JP' => 'Japanese'
),

今度はブラウザでGUIからログインして、右上のユーザーマークからadmin→Locale→LanguageでJapaneseを選びSAVE(保存)します。ログアウトして、ログインすると日本語版になっています。

日本語翻訳について

日本語翻訳、修正したい部分があったので、以下、githubに翻訳の派生版を作りました。ユーザー登録の中の「IM名」は、InstantMessengerです。SugarCRMはなかなかに歴史が深い様です。
https://github.com/Masamasamasashito/SuiteCRM-japanese

Let’s Encrypt SSL実装

Certbotのインストールをします。

yum install certbot python2-certbot-apache

apache向けのSSL証明書取得コマンドを実行します。途中でリダイレクトをするかどうか?聞かれますので2でhttpsリダイレクトをするようにします。

certbot --apache -m メールアドレス -d 独自ドメイン -d www.独自ドメイン

次回は、SiteGuardLiteのWAF実装を行います。さくらVPSのSiteGuardLiteのWAF実装の大きな注意点としては、さくらのFQDNに対するLet’s EncryptのSSL実装もしないといけない点です。 SiteGuardLite が非SSLで独自ドメインのアプリケーションがSSLという本末転倒な事になります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください