SuiteCRMは、PHPに基づくオープンソースのCRM(顧客関係管理)ソフトウェアです。人気のCRMソフトウェア「SugarCRM」のフォークであり、「SugarCRM」が無料版の開発を中止することを決定した後、人気が高まっています。 SuiteCRMは、BOSSIE2015および2016で最高のオープンソースCRMソフトウェアとしてノミネートされました。
このチュートリアルでは、オープンソースのCRM「SuiteCRM」をインストールする方法を段階的に説明します。ソフトウェアは、MariaDBデータベースを備えたNginx Webサーバーで実行され、Ubuntu16.04システムを使用します。
- NginxWebサーバーをインストールする
- PHP-FPMのインストールと構成
- MariaDBのインストールと構成
- SuiteCRMをダウンロードして構成する
- SuiteCRMWebインストーラー
- 最終ステップ
- Ubuntu16.04サーバー
- root権限
SuiteCRMはWebベースのソフトウェアであり、Webサーバーが必要です。このソフトウェアにはApacheまたはNginxを使用できます。このチュートリアルでは、ApacheWebサーバーの代わりにNginxWebサーバーを使用します。
Ubuntuサーバーに接続し、リポジトリを更新します。
ssh [email protected]
sudo apt update
次に、aptコマンドを次のように使用してNginxWebサーバーをインストールします。
apt install -y nginx
インストール後、nginxを起動し、システムの起動時に毎回自動的に起動できるようにします。
systemctl start nginx
systemctl enable nginx
Nginx Webサーバーがインストールされ、デフォルトのHTTPポート80で実行されています。netstatコマンドを使用して確認するか、curlを使用してHTTPステータスコードを確認できます。
netstat -plntu
curl -I localhost
SuiteCRMは、複数のPHPバージョンと互換性があります。このチュートリアルでは、SuiteCRMのインストールに最新バージョンのPHP7.0を使用します。
次のaptコマンドを使用して、PHPおよびPHP-FPM7とその他の必要な拡張機能をインストールします。
apt install -y php7.0-fpm php7.0-mcrypt php7.0-imap php7.0-curl php7.0-cli php7.0-mysql php7.0-gd php7.0-xsl php7.0-json php7.0-intl php-pear php7.0-dev php7.0-common php7.0-mbstring php7.0-zip php-soap libcurl3 curl
インストールが完了したら、PHP構成ディレクトリに移動し、「cli」構成と「fpm」構成の両方のphp.iniファイルを編集します。
cd /etc/php/7.0/
php.iniファイルを編集します。
vim cli/php.ini
vim fpm/php.ini
アップロードファイルの最大サイズの値を変更します。 SuiteCRMには少なくとも6MBが必要ですが、値として100MBを設定します。
upload_max_filesize = 100M
CGI行(以下に表示)のコメントを解除し、値を0に変更します。
cgi.fix_pathinfo=0
セッションパスの構成については、以下の行のコメントを解除してください。
session.save_path = "/var/lib/php/sessions"
それでおしまい。これらの変更を保存して終了します。
次に、PHPセッションファイル用の新しいディレクトリを作成し、ディレクトリの所有者を「www-data」ユーザーとグループに変更する必要があります。
mkdir -p /var/lib/php/sessions
chown -R www-data:www-data /var/lib/php/sessions
PHPおよびPHP-FPMの構成が完了しました。次に、サービスを開始し、システムの起動時に毎回起動できるようにします。
systemctl start php7.0-fpm
systemctl enable php7.0-fpm
Ubuntuシステムのデフォルトでは、PHP-FPMはシステムポートを使用する代わりにsockファイルで実行されます。以下のnetstatコマンドを使用して確認してください。
netstat -pl | grep php
また、表示される結果が次のスクリーンショットに示されているものと同様であることを確認してください。
このステップでは、MariaDBをインストールし、rootパスワードを構成します。次に、SuiteCRMをインストールするための新しいデータベースを構成します。
以下のaptコマンドを使用してMariaDBをインストールします。
apt install -y mariadb-server mariadb-client
インストール後、サービスを開始し、システムの起動時に毎回起動できるようにします。
systemctl start mysql
systemctl enable mysql
次に、以下のように「mysql_secure_installation」コマンドを使用してMariaDBルートパスワードを構成します。
mysql_secure_installation
構成について尋ねられたら、「Y」と入力して「Enter」を押します。
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
MariaDBルートパスワードが設定されました。
次に、SuiteCRMをインストールするための新しいデータベースとユーザーを作成します。 'suitecrm_db'という名前のデータベースを作成し、パスワード'hakase-labs123'を使用して新しいユーザー'crmadmin'を作成します。 mysqlシェルに接続し、次のmysqlクエリを実行します。
mysql -u root -p
Type your password:
CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;
SuiteCRMインストール用のMariaDBデータベース構成が完了しました。
このステップでは、SuiteCRMをインストールするためのシステムを準備するいくつかのタスクを実行します。 SuiteCRMソースコードをダウンロードし、UFWファイアウォールを構成し、Letsencrypt証明書を生成し、SuiteCRM用にnginx仮想ホストを構成します。
-SuiteCRMソースコードをダウンロード
suiteCRMのソースコードはGithubで入手できます。 gitコマンドがシステムにインストールされていることを確認してください。または、gitパッケージがない場合は、以下のaptコマンドを使用してインストールしてください。
apt install -y git
次に、「/ opt」ディレクトリに移動し、次のgitcloneコマンドを使用してリポジトリのクローンを作成します。
cd /opt/
git clone https://github.com/salesagility/SuiteCRM.git suitecrm
suitecrmディレクトリに移動し、新しい「キャッシュ」ディレクトリを作成します。次に、いくつかのファイルとディレクトリのアクセス許可を変更し、最後に、「suitecrm」ディレクトリの所有権のアクセス許可を「www-data」ユーザーとグループに変更する必要があります。
cd /opt/suitecrm
mkdir -p /opt/suitecrm/cache
chmod -R 775 cache custom modules themes data upload config_override.php
chown www-data:www-data -R /opt/suitecrm
SuiteCRMのソースコードがダウンロードされました。
-UFWファイアウォールを構成する
Ubuntuでは、ufwファイアウォールを使用します。以下に示すように、ufwコマンドを使用して新しいポートHTTP、HTTPS、およびSSHを開きます。
ufw allow ssh
ufw allow http
ufw allow https
次に、ファイアウォールを起動し、ufwenableコマンドを使用してシステムの起動時に毎回ファイアウォールを起動できるようにします。
ufw enable
「y」と入力し、Enterキーを押してファイアウォールを有効にします。
ファイアウォールのステータスを確認する場合は、ufwstatusコマンドを使用してください。
ufw status
また、追加したポートを含むファイアウォールステータスを取得します。
-Letsencrypt証明書を生成する
このチュートリアルでは、SuiteCRMはHTTPSを使用して、クライアントとサーバー間の接続をより安全にします。この目的のために、Letsencryptからの無料のSSL証明書を使用します。
証明書ファイルを生成する前に、システムにletsencryptクライアントエージェントをインストールする必要があります。 Ubuntuリポジトリで利用できるので、以下のaptコマンドを使用してインストールしてください。
apt install -y letsencrypt
letsencryptをインストールした後、証明書ファイルを生成する前にnginxサービスを停止する必要があります。
systemctl stop nginx
次に、以下のletsencryptコマンドを使用してSSL証明書ファイルを生成します。
letsencrypt certonly --standalone -d suitecrm.hakase-labs.co
注: -スタンドアロン オプションを選択すると、システム上に一時的なWebサーバーが作成されるため、証明書ファイルを生成する前にNginxWebサーバーを停止する必要があります。
更新通知のメールアドレスを尋ねられます。メールアドレスを入力して[OK]をクリックします。
Letsencrypt契約の場合は、[同意する]を選択してEnterキーを押します。
新しいLetsencryptSSLが「/etc/letsencrypt/live/domain.com」ディレクトリに生成されました。
-SuiteCRM用にNginx仮想ホストを構成する
Nginx構成ディレクトリに移動し、「sites-available」ディレクトリに新しい仮想ホストファイル「suitecrm」を作成します。
cd /etc/nginx
vim sites-available/suitecrm
次のNginx構成をそこに貼り付けます。
# Server Config - hakase-labs
server {
listen 80;
server_name suitecrm.hakase-labs.co;
# Automatically redirect to HTTPS
return 301 https://$host$request_uri;
}
# Nginx SSL for SuiteCRM
server {
server_name suitecrm.hakase-labs.co;
# Enable http2
listen 443 http2 ssl;
# SSL Config
ssl_certificate /etc/letsencrypt/live/suitecrm.hakase-labs.co/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/suitecrm.hakase-labs.co/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
client_max_body_size 50M;
index index.php index.html index.htm;
root /opt/suitecrm;
location / {
root /opt/suitecrm;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
error_log /var/log/nginx/suitecrm.irsyadf.me.error.log;
location = /50x.html {
root /var/www/html;
}
## Images and static content is treated different
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml|svg|wgoff2)$ {
access_log off;
expires max;
root /opt/suitecrm;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
保存して終了します。
次に、仮想ホストをアクティブ化し、構成をテストして、エラーがないことを確認します。次に、Webサーバーを再起動します。
ln -s /etc/nginx/sites-available/suitecrm /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx
SuiteCRMインストールのシステム構成が完了しました。
ウェブブラウザを開き、アドレスバーにSuiteCRMURLを入力します。私のものはsuitecrm.hakase-labs.co
HTTPS接続とinstall.phpページにリダイレクトされます。
表示されるページに、GNU AFFEROライセンスが表示されます。[同意する]をオンにして、[次へ]をクリックします。
これで、SuiteCRMをインストールするためのシステム環境に関するページが表示されます。
下の図に示すように、すべての結果が「OK」であることを確認してください。
[次へ]をクリックして続行します。
次は、データベースと管理者ユーザーの構成です。データベース情報、dbname'suitecrm_db'、dbuser'crmadmin'をパスワード'hakase-labs123'で入力します。次に、以下に示すように、管理者ユーザー、パスワード、および電子メールを入力します。
一番下までスクロールし、[次へ]をクリックしてSuiteCRMのインストールを続行します。
インストールが完了するまでしばらく待ちます。インストールが完了すると、以下のログインページにリダイレクトされます。
管理者ユーザーとパスワードを入力し、[ログイン]ボタンをクリックします。
これで、デフォルトのSuiteCRMダッシュボードを表示できるようになります。
SuiteCRMは、Ubuntu16.04システムのNginxWebサーバーとともにインストールされています。
この最後のステップでは、www-dataユーザーの下に新しいCronジョブを作成します。
以下のコマンドを実行して、新しいCronジョブを追加します。
sudo crontab -e -u www-data
以下にCronスクリプト構成を貼り付けます。
* * * * * cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1
保存して終了。次に、Cronサービスを再起動します。
systemctl restart cron
Ubuntu16.04へのSuiteCRMのインストールが完了しました。