もっと詳しく

SuiteCRMは、PHPで記述されたオープンソースの顧客関係管理ソリューションです。 これは、SugarCRMがコミュニティエディションのリリースを停止した後の人気のあるSugarCRMソフトウェアのフォークです。 これは、すべての顧客データの中央リポジトリを作成して、ビジネス関係を強化および育成するために使用できる洞察を得るために使用されます。

その機能には、ドキュメントストレージ、メールマーケティング、カレンダー、ソーシャルメディア統合、テリトリー管理、セグメンテーション、マーケティング自動化、リード資格、内部チャット統合、カスタマーサポート、ソーシャルCRM、営業支援システム、マーケティングキャンペーン、モバイルCRM、報告。 Mandrill、Sendgrid、AmazonSESなどのサードパーティのSMTPリレーサービスと統合できます。プラグインをインストールしてSuiteCRMの機能を拡張できます。 Mautic、Facebook、Twitter、MailChimp、Zoom、Quickbooks、DocuSignなどのサードパーティアプリと統合できます。

この投稿では、NginxWebサーバーとLet’sEncryptSSLを使用してUbuntu22.04にSuiteCRMをインストールする方法を学習します。

前提条件

  • Ubuntu20.04を実行しているサーバー。

  • root以外のsudoユーザー。

  • 次のようなサーバーを指す完全修飾ドメイン名(FQDN) suitecrm.example.com
  • すべてが更新されていることを確認してください。

    $ sudo apt update
    $ sudo apt upgrade
    
  • システムに必要なパッケージはほとんどありません。

    $ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
    

    これらのパッケージの一部は、システムにすでにインストールされている場合があります。

ステップ1-ファイアウォールを構成する

最初のステップは、ファイアウォールを構成することです。 Ubuntuにはデフォルトでufw(Uncomplicated Firewall)が付属しています。

ファイアウォールが実行されているかどうかを確認します。

$ sudo ufw status

次の出力が得られます。

Status: inactive

SSHポートを許可して、ファイアウォールが有効にしたときに現在の接続を切断しないようにします。

$ sudo ufw allow OpenSSH

HTTPポートとHTTPSポートも許可します。

$ sudo ufw allow http
$ sudo ufw allow https

ファイアウォールを有効にする

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

ファイアウォールの状態を再度確認してください。

$ sudo ufw status

同様の出力が表示されるはずです。

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

ステップ2-Nginxをインストールします

Ubuntuには古いバージョンのNginxが付属しています。 最新バージョンをインストールするには、公式のNginxリポジトリをダウンロードする必要があります。

Nginxの署名キーをインポートします。

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor 
	| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Nginxの安定バージョンのリポジトリを追加します。

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] 
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" 
    | sudo tee /etc/apt/sources.list.d/nginx.list

システムリポジトリを更新します。

$ sudo apt update

Nginxをインストールします。

$ sudo apt install nginx

インストールを確認します。

$ nginx -v
nginx version: nginx/1.20.2

Nginxサービスを有効にします。

$ sudo systemctl enable nginx

ステップ3-MariaDBをインストールして構成する

Ubuntu 22.04には、MariaDBのv10.6.7が付属しています。 次のコマンドを実行してインストールします。

$ sudo apt install mariadb-server

MariaDBのインストールを保護します。

$ sudo mysql_secure_installation

さまざまなプロンプトが表示されます。 次のように答えてください。

Enter current password for root (enter for none): Press Enter
Switch to unix_socket authentication [Y/n] Type y
Change the root password? [Y/n] Type n
Remove anonymous users? [Y/n] Type y
Disallow root login remotely? [Y/n] Type y
Remove test database and access to it? [Y/n] Type y
Reload privilege tables now? [Y/n] Type y

次のコマンドを使用して、MariaDBシェルに接続します。

$ sudo mysql

SuiteCRM用の新しいデータベースを作成します。

$ CREATE DATABASE suitecrm;

新しいデータベースユーザーを作成し、tに強力なパスワードを使用します。

$ CREATE USER 'suitecrmuser'@'localhost' identified by 'yourpassword';

データベースに対するアクセス許可をユーザーに付与します。広告

$ GRANT ALL PRIVILEGES ON suitecrm.* TO 'suitecrmuser'@'localhost';

すべての特権をフラッシュします。

$ FLUSH PRIVILEGES;

MySQLシェルを終了します。

$ exit

ステップ4-PHPと拡張機能をインストールする

Ubuntu 22.04には、SuiteCRMでまだサポートされていないPHP8.1が付属しています。 PHP8.0をインストールする必要があります。 そのためには、OndrejのPHPリポジトリを追加する必要があります。

$ sudo add-apt-repository ppa:ondrej/php

次に、SuiteCRMに必要なPHPとその拡張機能をインストールします。

$ sudo apt install php-imagick php8.0-fpm php8.0-mysql php8.0-common php8.0-gd php8.0-imap php8.0-curl php8.0-zip php8.0-xml php8.0-mbstring php8.0-bz2 php8.0-intl php8.0-gmp

インストールを確認します。

$ php --version
PHP 8.0.18 (cli) (built: May  1 2022 04:42:09) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.18, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.18, Copyright (c), by Zend Technologies

ステップ5-SuiteCRMをダウンロードする

SuiteCRMの最新の安定バージョンをダウンロードします。 あなたはからダウンロードリンクをつかむことができます SuiteCRMの公式ウェブサイト

このチュートリアルでは、SuiteCRMのv7が長期間サポートされているため、インストールします。 必要に応じてv8バージョンをインストールできますが、最初はサポート期間が短くなります。

$ wget -O suitecrm.zip https://suitecrm.com/files/147/SuiteCRM-7.12/614/SuiteCRM-7.12.5.zip

SuiteCRMを提供するWebルートディレクトリを作成します。 ザ -p flagは、パスに最上位ディレクトリが存在しない場合、それらを作成します。

$ sudo mkdir -p /var/www/

ダウンロードしたzipアーカイブを解凍します。

$ sudo unzip suitecrm.zip -d /var/www/

-d flagは、アーカイブのターゲットディレクトリを指定します。

下に保存されます /var/www/SuiteCRM-7.12.5/ ディレクトリ。 簡単にするために名前を変更します。

$ sudo mv /var/www/SuiteCRM-7.12.5/ /var/www/suitecrm

Webルートに切り替えます。

$ cd /var/www/suitecrm

さまざまなディレクトリに正しい所有権と権限を設定します。

$ sudo chown -R nginx:nginx .
$ sudo chmod -R 755 .
$ sudo chmod -R 775 cache custom modules themes data upload
$ sudo chmod 775 config_override.php 2>/dev/null

ステップ6-SSLをインストールして構成する

Nginxを構成する前に、SSL証明書を設定する必要があります。

Let’s Encryptを使用してSSL証明書をインストールするには、Certbotツールをダウンロードする必要があります。 そのためにSnapdパッケージインストーラーを使用します。

Snapインストーラーをインストールします。

$ sudo apt install snapd

Snapdのバージョンが最新であることを確認してください。

$ sudo snap install core 
$ sudo snap refresh core

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

$ sudo snap install --classic certbot

次のコマンドを使用して、へのシンボリックリンクを作成してCertbotコマンドが実行されるようにします。 /usr/bin ディレクトリ。

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Certbotツールに干渉するため、Nginxサーバーを停止します。

$ sudo systemctl stop nginx

SSL証明書を生成します。

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d suitecrm.example.com

上記のコマンドは、証明書をにダウンロードします /etc/letsencrypt/live/suitecrm.example.com サーバー上のディレクトリ。

を生成します Diffie-Hellmanグループ 証明書。

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096

Let’sEncryptの自動更新用のチャレンジWebルートディレクトリを作成します。

$ sudo mkdir -p /var/lib/letsencrypt

Cronジョブを作成してSSLを更新します。 毎日実行され、証明書を確認し、必要に応じて更新します。 そのためには、まず、ファイルを作成します /etc/cron.daily/certbot-renew 編集のために開きます。

$ sudo nano /etc/cron.daily/certbot-renew

次のコードを貼り付けます。

#!/bin/sh
certbot renew --cert-name suitecrm.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

を押してファイルを保存します Ctrl + X と入る Y プロンプトが表示されたら。

タスクファイルのアクセス許可を変更して、実行可能にします。

$ sudo chmod +x /etc/cron.daily/certbot-renew

ステップ7-NginxとPHPを構成する

PHP-FPMを構成する

ファイルを開く /etc/php/8.0/fpm/pool.d/www.conf

$ sudo nano /etc/php/8.0/fpm/pool.d/www.conf

Unixユーザー/PHPプロセスのグループを次のように設定する必要があります nginx。 を見つける user=www-datagroup=www-data ファイル内の行を次のように変更します nginx

...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = nginx
group = nginx
...

また、行を見つけます listen.owner=www-datalisten.group=www-data ファイル内でそれらをに変更します nginx

listen.owner = nginx
listen.group = nginx

を押してファイルを保存します Ctrl + X と入る Y プロンプトが表示されたら。

PHPアップロードサイズを構成する

PHPは、アップロードファイルのサイズに制限を設定します。 PHPによって設定されるデフォルトのサイズは2MBです。 アップロードサイズを増やすには、PHP構成ファイルを開いて編集します。

$ sudo nano /etc/php/8.0/fpm/php.ini

次の行を見つけます。

upload_max_filesize = 2M

図のように、その値を20MBに変更します。

upload_max_filesize = 20M

次の行を見つけます。

post_max_size = 8M

図のように、その値を20MBに変更します。

post_max_size = 20M

次の行を見つけます。

;cgi.fix_pathinfo=1

セミコロンを削除し、その値を0に変更して、コメントを解除します。

cgi.fix_pathinfo=0

を押してファイルを保存します Ctrl + X と入る Y プロンプトが表示されたら。

PHP-fpmプロセスを再起動します。

$ sudo systemctl restart php8.0-fpm

Nginxを構成する

ファイルを作成して開きます /etc/nginx/conf.d/suitecrm.conf 編集用。

$ sudo nano /etc/nginx/conf.d/suitecrm.conf

次のコードを貼り付けます。

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name suitecrm.example.com;

    root /var/www/suitecrm;
    error_log /var/log/nginx/suitecrm.error.log;
    access_log /var/log/nginx/suitecrm.access.log;
    client_max_body_size 20M;

    index index.php index.html index.htm;
    
    ssl_certificate      /etc/letsencrypt/live/suitecrm.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/suitecrm.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/suitecrm.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location / {
        # try to serve file directly, fallback to app.php
        try_files $uri /index.php$is_args$args;
    }

    location ~ .php$ {
        # try_files $uri =404;
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

        fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
        #Note: If you install SuiteCRM on iRedMail server, you should use the TCP socket instead.
        #fastcgi_pass 127.0.0.1:9999
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;

        fastcgi_buffer_size 128k;
        fastcgi_buffers 256 16k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
    }

    # Don't log favicon
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    # Don't log robots
    location = /robots.txt  {
        access_log off;
        log_not_found off;
    }

    # Deny all attempts to access hidden files/folders such as .htaccess, .htpasswd, .DS_Store (Mac), etc...
    location ~ /. {
        deny all;
        access_log off;
        log_not_found off;
    }

    # A long browser cache lifetime can speed up repeat visits to your page
    location ~* .(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
        access_log        off;
        log_not_found     off;
        expires           360d;
    }
}

# enforce HTTPS
server {
    listen       80;
    listen       [::]:80;
    server_name  suitecrm.example.com;
    return 301   https://$host$request_uri;
}

を押してファイルを保存します Ctrl + X と入る Y 終了したらプロンプトが表示されたら。

ファイルを開く /etc/nginx/nginx.conf 編集用。

$ sudo nano /etc/nginx/nginx.conf

行の前に次の行を追加します include /etc/nginx/conf.d/*.conf;

server_names_hash_bucket_size  64;

を押してファイルを保存します Ctrl + X と入る Y プロンプトが表示されたら。

Nginx構成ファイルの構文を確認します。

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nginxサービスを再起動して、新しい構成を有効にします。

$ sudo systemctl restart nginx

ステップ8-SuiteCRMをインストールして構成する

サイトを開く https://suitecrm.example.com ブラウザで、セットアップウィザードが表示されます。

チェックしてください 承諾します ボックスをクリックし、 ボタンをクリックして続行します。 インストール前の要件を確認する画面が表示されます。

SuiteCRMのインストール前の要件

すべて問題がない場合は、をクリックします ボタンをクリックして続行します。

SuiteCRM構成ページ

手順3で設定したデータベースクレデンシャルを入力します。 localhost として ホスト名。 また、管理者アカウントの詳細を入力して、 https://suitecrm.example.com として インスタンスURL

デモデータ、SMTPサーバー設定、ブランディング、システムロケール、セキュリティ、データベース設定などの追加設定を構成できます。

SMTP設定を有効にするには、 SMTPサーバーの仕様 ページのセクションに入力し、適切な値を入力します。 GmailまたはMicrosoftExchangeを使用している場合は、専用のボタンを使用してそれらを構成できます。 このチュートリアルでは、AmazonSESを使用しています。

SuiteCRMSMTPサーバー設定

また、システムロケール設定を設定します。

SuiteCRMロケール設定

終了したら、をクリックします ページの下部にあるボタンをクリックして続行します。 SuiteCRMの構成完了の詳細が表示されます。

SuiteCRMの構成が完了しました

クリック ボタンをクリックして続行します。 ログインページが表示されます。

SuiteCRMログインページ

管理者アカウントのクレデンシャルを入力して、 ログイン SuiteCRMダッシュボードを開きます。

SuiteCRMダッシュボード

SuiteCRMの使用を開始して、ビジネスと顧客のデータを管理できます。

ステップ9-cronジョブを設定する

SuiteCRMが正しく機能するには、cronジョブが必要です。 編集します nginx ユーザーのcrontabファイル。

$ sudo crontab -e -u nginx

ファイルの最後に次の行を追加します。

*    *    *    *    *     cd /var/www/suitecrm; php -f cron.php > /dev/null 2>&1

ファイルを保存して閉じます。

結論

これで、Ubuntu22.04でLet’sEncryptSSLを使用してNginxサーバーを使用してSuiteCRMをインストールするためのチュートリアルは終了です。 ご不明な点がございましたら、下のコメント欄に投稿してください。

The post Nginxと無料でSuiteCRMをインストールする方法Ubuntu22.04でSSLを暗号化しましょう appeared first on Gamingsym Japan.