SuiteCRM7.10.13(LTS)のインストール設定と日本語化
オープンソース日本語対応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://dev-labo.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へ。初期設定を行います。普通に進んでいくと、必要なコンポーネント確認で以下のエラーが出ました。
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が無いと言われます。
英語の赤文字部分です。
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に進むとインストール設定に伴う各種入力画面に進みます。
念のために上記テキストを以下へ記載します。整形が汚くてすみません。
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で設定、入力していくと、このような画面になります。
以下にテキストとして貼り付けます。
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という本末転倒な事になります。