SuiteCRMは、PHPに基づくオープンソースのCRM(顧客関係管理)ソフトウェアです。これは人気のあるCRMソフトウェアSugarCRMのフォークであり、後者の背後にあるチームが無料バージョンの開発を中止することを決定した後、より人気が高まっています。 SuiteCRMは、BOSSIE2015および2016で最高のオープンソースCRMソフトウェアとしてノミネートされました。
このチュートリアルでは、NginxをWebサーバーとして使用してSuiteCRMをインストールおよび構成する方法を示します。 CRMソフトウェアは、HTTPSが有効になっているLEMPスタックで実行されます。この目的のために、CentOS7をメインOSとして使用します。
- NginxWebサーバーをインストールする
- PHP-FPMのインストールと構成
- MariaDBをインストールして構成する
- SuiteCRMをダウンロードして構成する
- Webインストーラーを使用してSuiteCRMをインストールする
- 最終構成
- CentOS7サーバー
- root権限
サーバーに接続し、SuiteCRMの基本スタックをインストールするために実行する必要がある最初のステップ。次のコマンドを使用して、SSH経由でサーバーに接続します。
ssh [email protected]
rootユーザーとして接続した後、システムにサードパーティのリポジトリをインストールする必要があります。具体的には、Nginxをインストールする前に、システムにEPEL(Extra Package for Enterprise Linux)リポジトリをインストールする必要があります。
次の方法でyumコマンドを使用してEPELリポジトリをインストールします。
yum -y install epel-release
これで、NginxWebサーバーをシステムにインストールできます。
yum -y install nginx
インストールが完了したら、サービスを開始し、以下に示すようにsystemctlコマンドを使用して起動時にサービスが自動的に実行されるようにします。
systemctl start nginx
systemctl enable nginx
これでNginxWebサーバーがインストールされ、デフォルトではポート80で実行されています。netstatまたはcurlコマンドを使用して確認してください。
netstat -plntu
curl -I localhost
ポート80が「LISTEN」ステータスになっていることと、curlコマンドが出力に200のHTTPステータスコードを提供していることを確認してください。
このステップでは、CentOS7サーバーにPHP-FPMバージョン7をインストールして構成します。デフォルトでは、centOSは新しいPHPバージョン7のリポジトリを提供しません。そのため、PHP-FPM7のインストール用に別のリポジトリを追加する必要があります。
rpmコマンドを使用して、新しいPHP7リポジトリ「webtatic」をシステムに追加します。
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
次に、以下に示すように、yumコマンドを使用してPHP7パッケージと拡張機能をインストールします。
sudo yum install -y php71w-fpm php71w-cli php71w-common php71w-imap php71w-gd php71w-mbstring php71w-mcrypt php71w-mysql php71w-xml
インストールが完了したら、vimを使用してデフォルトの「php.ini」構成ファイルを編集します。
vim /etc/php.ini
SuiteCRMインストールの最大アップロードファイルサイズを100MBに変更します。少なくとも、SuiteCRMには6MB以上が必要です。
upload_max_filesize = 100M
次のCGI行のコメントを解除し、値を0に変更します。
cgi.fix_pathinfo=0
セッションパスの構成については、以下に示すように、行のコメントを解除し、パスを「/ var / lib/session」に変更します。
session.save_path = "/var/lib/php/session"
それでおしまい。変更を保存してvimを終了します。
次に、セッションパス用の新しいディレクトリを作成し、ディレクトリの所有権を「nginx」ユーザーとグループに変更します。
mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session
次に、php-fpm構成を編集する必要があります。このためには、「/ etc / php-fpm.d」ディレクトリに移動し、構成ファイルwww.confを編集します。
cd /etc/php-fpm.d/
vim www.conf
次に、ユーザーとグループの行を「nginx」に変更します。
user = nginx
group = nginx
システムポートを使用する代わりに、PHP-FPMはunixソケットファイルで実行されます。
'listen'行を変更します:
listen = /var/run/php-fpm/php-fpm.sock
以下に示すように、Unixソケットファイルの権限とソケットファイルの所有権を設定します。
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
それでおしまい。変更を保存して、エディターを終了します。
次に、PHP-FPMサービスを開始し、それを追加して、起動時に自動的に開始します。
systemctl start php-fpm
systemctl enable php-fpm
これにより、PHP-FPMがインストールされ、ソケットファイルが実行されます。
これは、netstatコマンドを使用して確認できます:
netstat -pl | grep php
php-fpm.sockファイルが表示されていることを確認してください。
このステップでは、MariaDBをインストールし、システムの起動時に毎回起動して起動できるようにします。最後に、SuiteCRMをインストールするための新しいデータベースとユーザーを作成します。
次のyumコマンドを使用して、CentOSリポジトリからmariadbをインストールします。
yum install -y mariadb mariadb-server
MariaDBサービスを開始し、以下のコマンドを使用して起動時間を有効にします。
systemctl start mariadb
systemctl enable mariadb
これで、MariaDBがインストールされ、実行されます。次に、「mysql_secure_installation」コマンドを使用してルートパスワードを構成する必要があります。
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をインストールするための新しいデータベースと新しいユーザーを作成する必要があります。このためには、ユーザー「root」とパスワードを使用してMySQLシェルにログインします。
mysql -u root -p
「suitecrm_db」という名前の新しいデータベースと、パスワード「hakase-labs123」を使用した新しいユーザー「crmadmin」を作成します。これはすべて、以下のmysqlクエリを使用して実行できます。
CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;
これで、SuiteCRMインストールのデータベース構成が完了しました。
このステップでは、SuiteCRMをインストールするためのいくつかのタスクを実行します。 SuiteCRMソースコードをダウンロードし、Firewalldを構成し、新しいSSL Letsencryptを生成し、SuiteCRM用にnginx仮想ホストを構成します。それでは始めましょう。
まだインストールしていない場合は、以下のyumコマンドを使用してシステムにgitをインストールします。
yum -y install git
次に、「/ opt」ディレクトリに移動し、以下に示すようにgitコマンドを使用してSuiteCRMコードをダウンロードします。
cd /opt/
git clone https://github.com/salesagility/SuiteCRM.git suitecrm
その後、キャッシュディレクトリを作成し、suitecrmディレクトリ内のいくつかのファイルとディレクトリのアクセス許可を変更してから、すべてのsuitecrmコードの所有者を「nginx」ユーザーとグループに変更します。
cd /opt/suitecrm
mkdir -p /opt/suitecrm/cache
chmod -R 775 cache custom modules themes data upload config_override.php
chown nginx:nginx -R /opt/suitecrm
そのため、suiteCRMコードはサーバーの「/ opt /suitecrm/」ディレクトリにダウンロードされています。
サーバーでFirewalldを実行していない場合は、次のコマンドを使用してインストールします。
yum -y install firewalld
サービスを開始し、起動時に実行できるようにします。
systemctl start firewalld
systemctl enable firewalld
次に、新しいポートHTTPとHTTPSを開く必要があります。 SuiteCRMアクセスに使用されます。これには、次のfirewall-cmdコマンドを実行します。
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
次のコマンドを使用して、firewalldルールをリロードします。
firewall-cmd --reload
そのため、新しいHTTPおよびHTTPSポートがFirewalldに追加されました。詳細な構成を確認するには、以下のコマンドを実行してください。
firewall-cmd --list-all
このチュートリアルでは、SuiteCRMアクセスにSSLを使用します。そして、その目的のために、letsencryptからの無料のSSL証明書を使用します。
新しいSSLletsencrypt証明書を生成するには、最初に、letsencryptコマンドツール「certbot」をシステムにインストールする必要があります。 CentOSリポジトリで利用できます。次のyumコマンドを使用してcertbotをインストールします。
yum -y install certbot
certbotのインストールが完了したら、suiteCRMドメイン名「suitecrm.hakase-labs.co」のSSL証明書ファイルを生成します。
以下のコマンドを実行して、SSL証明書ファイルを生成します。
certbot certonly --standalone -d suitecrm.hakase-labs.co
通知を更新するための電子メールアドレスについて尋ねられます。電子メールを入力し、Enterキーを押して続行します。
Letsencrypt TOSの場合は、「A」と入力して同意し、Enterキーをもう一度押します。また、共有メールアドレスクエリの場合は、「N」と入力してEnterキーを押します。
証明書の生成が完了すると、次のような結果が得られます。
新しい証明書ファイルは「/etc/letsencrypt/live/domain.com」ディレクトリに生成されます。
SuiteCRNMginx仮想ホストを構成する
Nginx構成ディレクトリ'/etc / nginx'に移動し、Vimエディターを使用してconf.dディレクトリに新しいファイルsuitecrm.confファイルを作成します。
cd /etc/nginx/
vim conf.d/suitecrm.conf
そこで、SuiteCRNMginx仮想ホストを下に貼り付けます。
# 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 "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
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 /usr/share/nginx/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:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
それでおしまい。変更を保存してVimを終了します。
次に、nginx構成をテストし、エラーがないことを確認します。それが完了したら、サービスを再起動します。
nginx -t
systemctl restart nginx
これで、SuiteCRMインストールのnginx構成が完了しました。
Webブラウザーを開き、SuiteCRMドメイン名「suitecrm.hakase-labs.co」にアクセスします。
HTTPS接続install.phpにリダイレクトされ、GNUAFFEROライセンスに関するページが表示されます。 [同意する]チェックボックスをオンにして、[次へ]をクリックします。
システム環境ページで、すべての結果が「OK」であることを確認します。
次に、[次へ]をクリックして続行します。
次は、管理者とデータベースの構成です。 dbname、dbuser、dbpasswordなどのデータベース情報を入力します。管理者設定の場合は、ユーザー名、メールアドレス、パスワードを入力します。
一番下までスクロールし、[次へ]をクリックしてSuiteCRMのインストールを続行します。
インストールが完了するまでしばらく待つと、以下に示すようなログインページにリダイレクトされます。
このページで、管理者ユーザーとパスワードを入力し、[ログイン]ボタンを押します。
そして、以下に示すようにSuiteCRMダッシュボードが表示されます。
これでSuiteCRMがインストールされました。
この最後のステップでは、cronジョブに構成を追加する必要があります。
基本的に、nginxユーザーおよびグループとして新しいcronを作成する必要があります。
sudo crontab -e -u nginx
そして、次の構成を貼り付けます。
* * * * * cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1
保存して終了します。
それでおしまい。 CentOS7でのNginxWebサーバーを使用したSuiteCRMのインストールが完了しました。