CentOS 7にOroCRMをインストールする方法

OroCRMは、OroPlatform上に構築された無料のオープンソースのCustomer Relationship Manager(CRM)アプリケーションです。OroPlatformは、完全にカスタマイズ可能なオープンソースのビジネスアプリケーションプラットフォームソフトウェアです。OroPlatformは、カスタマイズされたアプリケーションの作成に必要なすべての機能を提供します。OroCRMは、PHP Symfonyフレームワークを使用して構築され、そのデータをMySQL / MariaDBデータベースサーバーに格納します。エンタープライズ向けのCRMアプリケーションであり、多くの機能を提供します。また、Magento Store、MailChimp、Zendeskなどの多くのサードパーティアプリケーションと統合します。多言語対応で、完全に応答性の高いユーザーインターフェースがあり、モバイルデバイスを使用して管理することもできます。

前提条件

このチュートリアルではcrm.example.com、サーバーを指すドメイン名としてを使用します。すべてのcrm.example.comを実際のドメイン名に置き換えます。

CentOS 7のアップデート方法ガイドを使用して、ベースシステムをアップデートします。システムが更新されたら、必要な依存関係のインストールに進みます。

NginxとPHP 7をインストールする

OroCRMは、PHPをサポートするすべての本番ウェブサーバーにインストールできます。OroCRMは、7.0以降のすべてのバージョンのPHPをサポートしています。このチュートリアルでは、PHP-FPMおよびPHP 7.1でNginxを使用します。

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

sudo yum -y install nginx

Nginxを起動し、起動時に自動的に起動するようにします。

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7はデフォルトのYUMリポジトリでは使用できませんが、Remiリポジトリを使用してPHP 7の最新ビルドを取得してインストールできます。まず、Remiリポジトリを追加して有効にします。

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php71

OroCRMに必要なPHPモジュールとともに、最新バージョンのPHP 7をインストールします。

sudo yum -y install php php-fpm php-ctype php-curl php-fileinfo php-gd php-intl php-json php-mbstring php-mcrypt php-mysql php-pcre php-simplexml php-tokenizer php-xml php-zip php-tidy php-soap php-opcache php-posix

デフォルトのPHP構成ファイルを編集します。

sudo nano /etc/php.ini

次の行を見つけます。図のように、コメントを外して変更を加えます。

date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate timezone

memory_limit = 512M
cgi.fix_pathinfo=0

PHP-FPM構成ファイルを編集します。

sudo nano /etc/php-fpm.d/www.conf

デフォルトでは、PHP-FPMはApacheで実行され、ポートをリッスンするように設定されています9000。ユーザーとグループ、およびそれが実行されるUnixソケットファイルを変更する必要があります。次の行を見つけ、図のように必要な変更を加えます。

user = nginx
group = nginx

;listen = 127.0.0.1:9000
;Comment out or remove the above line and add the following line.
listen = /var/run/php-fpm/php-fpm.sock

listen.owner = nobody
listen.group = nobody

PHP-FPMを起動し、起動時に起動できるようにします。

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

PHP-FPMソケットファイルの所有権をNginxユーザーに提供します。

sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock

MariaDBをインストールする

MariaDBはMySQLのオープンソースフォークです。MariaDBをインストールします。

sudo yum -y install mariadb mariadb-server

MariaDBを起動し、起動時に自動的に起動するように有効にします。

sudo systemctl start mariadb
sudo systemctl enable mariadb

MariaDBのデフォルトのインストールには、いくつかのテストデータベースと匿名ユーザーが付属しています。データベースを設定する前に、最初にMariaDBサーバーを保護する必要があります。mysql_secure_installationスクリプトを実行することで保護できます。

sudo mysql_secure_installation

現在のMariaDBルートパスワードの入力を求められます。デフォルトでは、MariaDBの新規インストールにはrootパスワードはありません。押してEnter続行するキーを押します。MariaDBサーバーのrootユーザーに強力なパスワードを設定しY、他のすべての質問に答えます。質問は自明です。

OroCRMのデータベースを作成する

実行して、rootユーザーとしてMySQLシェルにログインします。

mysql -u root -p

MariaDB rootユーザーがログインするためのパスワードを入力します。

次のクエリを実行して、OroCRMインストール用のデータベースとデータベースユーザーを作成します。

CREATE DATABASE oro_data;
CREATE USER 'oro_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON oro_data.* TO 'oro_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

選択に応じて、データベース名oro_dataとユーザー名を置き換えることができoro_userます。StrongPassword非常に強力なパスワードに変更してください。

Node.jsとComposerをインストールする

OroCRMには、Node.js JavaScriptランタイムも必要です。Node.jsは、アプリケーションのユーザーインターフェイスを構築するために使用されるJavaScriptをコンパイルするためにOroCRMによって使用されます。CentOSのデフォルトリポジトリには古いバージョンのNode.jsが含まれているため、システムにNodesourceリポジトリを追加して最新バージョンを取得する必要があります。

sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

Node.jsとGitをインストールします。

sudo yum -y install nodejs git

Gitは、インターネットからOroCRMリポジトリを複製するために使用されます。Composerもインストールする必要があります。Composerは、PHPアプリケーション用の依存関係マネージャーツールです。OroCRMはSymfonyフレームワークで記述されているため、依存関係とアプリケーションをインストールするにはComposerが必要です。

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

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Composerを/usr/binディレクトリに移動して、システムのどこからでも実行できるようにします。

sudo mv composer.phar /usr/bin/composer

Composerに実行権限を付与します。

sudo chmod +x /usr/bin/composer

OroCRMをインストールする

サーバーにOroCRMをダウンロードするには多くの方法があります。最新のバージョンを取得する最も適切な方法は、Gitを使用してリポジトリのクローンを作成することです。

OroCRMリポジトリのクローンを作成します。

cd /usr/share/nginx/
sudo git clone -b 2.3 https://github.com/oroinc/crm-application.git orocrm

サンプルparametersファイルを、parametersOroCRMで使用されるデフォルトファイルにコピーします。

cd orocrm
sudo cp app/config/parameters.yml.dist  app/config/parameters.yml

さらに先に進む前に、parameters.ymlファイルを更新してデータベースと電子メール情報を提供する必要があります。

sudo nano app/config/parameters.yml

次の行を見つけます。

database_driver:   pdo_mysql
database_host:     127.0.0.1
database_port:     ~
database_name:     oro_crm
database_user:     root
database_password: ~

OroCRMデータを格納するために作成したデータベースに従って、上記の構成を更新します。私たちの場合は、次のようになります。

database_driver:   pdo_mysql
database_host:     127.0.0.1
database_port:     3306
database_name:     oro_data
database_user:     oro_user
database_password: StrongPassword

SMTPサーバーの準備ができており、電子メール送信機能をすぐに使用したい場合は、図のようにメーラー設定を更新できます。

mailer_transport:  smtp
mailer_host:       mail.example.com
mailer_port:       456
mailer_encryption: ssl
mailer_user:       [email protected]
mailer_password:   EMailPassword

メールサーバーの準備ができていない場合は、既存の値をそのままにして、今はスキップできます。ダッシュボードからいつでもメール設定を変更できます。

secret置き換えて、ランダムな文字列を設定しますThisTokenIsNotSoSecretChangeIt。セッションデータをエンコードするには、ランダムな文字列が必要です。文字列の例は次のようになります。

secret:            uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd

pwgenユーティリティを使用してランダムな文字列を生成できます。を実行してpwgenユーティリティをインストールしますsudo yum -y install pwgen。ランダムな文字列を生成するには、を実行しpwgen -s 64 1ます。

ファイルを保存して、エディターを終了します。composerを介して必要なPHP依存関係をインストールします。

sudo composer install --prefer-dist --no-dev

を使用--no-devすると、ComposerはWebサーバーを本番モードで実行するために必要な依存関係のみをインストールします。スクリプトは、必要なPHP依存関係をダウンロードしてインストールするのに数分かかります。

アプリケーションをインストールします。

sudo php app/console oro:install --env=prod

これにより、Webキャッシュが構築され、データベースに書き込まれます。この--env=prodパラメーターは、アプリケーションを実動モードでインストールするために提供されています。インストールは、必要な依存関係がすべてインストールおよび構成されている場合にのみ続行されます。

インストール中に、管理者アカウントを設定するためのいくつかの質問が表示されます。質問は以下の通りです。

Administration setup.
Application URL (http://localhost): http://crm.example.com
Organization name (OroCRM): My Organization
Username (admin):
Email: [email protected]
First name: John
Last name: Doe
Password:
Load sample data (y/n): y

情報を提供します。生産に使用する前に、サンプルデータをロードして製品を評価します。

APIドキュメントキャッシュをウォームアップします。

sudo php app/console oro:api:doc:cache:clear

Nginx、ファイアウォール、権限の構成

Nginxサーバーブロックファイルを作成して、アプリケーションをユーザーに提供します。

sudo nano /etc/nginx/conf.d/orocrm.conf

ファイルに入力します。

server {
    server_name crm.example.com;
    root  /usr/share/nginx/orocrm/web;

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

    location ~ ^/(app|app_dev|config|install)\.php(/|$) {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }

    # Enable Gzip compression
    gzip on;
    gzip_buffers 16 8k;
    gzip_comp_level 5;
    gzip_disable "msie6";
    gzip_min_length 1000;
    gzip_http_version 1.0;
    gzip_proxied any;
    gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css image/svg+xml;
    gzip_vary on;    

    # Enable browser caching
    # One week for javascript and css
     location ~* \.(?:css|js) {
       expires 1w;
       access_log off;
       add_header Cache-Control public;
     }

     # Three weeks for media: images, fonts, icons, video, audio etc.
     location ~* \.(?:jpg|jpeg|gif|png|ico|tiff|woff|eot|ttf|svg|svgz|mp4|ogg|ogv|webm|swf|flv)$ {
       expires 3w;
       access_log off;
       add_header Cache-Control public;
     }

    error_log /var/log/nginx/orocrm_error.log;
    access_log /var/log/nginx/orocrm_access.log;
}

crm.example.com実際のドメイン名に変更してください。上記の設定には、GZip圧縮とブラウザキャッシングに必要な設定も含まれています。Gzip圧縮は、ブラウザーに送信する前にデータを圧縮します。ブラウザーのキャッシュを有効にすると、静的リソースがクライアントコンピューターのWebキャッシュに保存されます。次にユーザーがサイトにアクセスするとき、静的コンテンツのほとんどはユーザー自身のWebキャッシュから読み込まれます。これらの2つの方法により、アプリケーションの速度が劇的に向上します。

Nginx構成ファイルにエラーがないか確認します。

sudo nginx -t

出力は次のようになります。

[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

NOCのユーザーにOrOCRMファイルの所有権を提供します。

sudo chown -R nginx:nginx /usr/share/nginx/orocrm

Nginxを再起動して、新しい構成を適用します。

sudo systemctl restart nginx

サーバーでファイアウォールを実行している場合は、ファイアウォールを構成してHTTPサービスの例外を設定する必要があります。Nginxがネットワークの外部から接続できるようにします。

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload

これで、アプリケーションにアクセスできますhttp://crm.example.com。インストール時に設定した管理者のユーザー名とパスワードを使用してログインします。

スケジュールされたタスクとバックグラウンドジョブのセットアップ

スケジュールされたタスクを自動的に実行するには、cronジョブエントリを追加できます。を開きcrontabます。

sudo crontab -e

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

*/1 * * * * /usr/bin/php /usr/share/nginx/orocrm/app/console oro:cron --env=prod > /dev/null

これにより、毎分cronジョブが実行されるため、電子メールキューなどのスケジュールされたタスクが最も早く処理されます。

Message Queueサービスを実行するには、Supervisorもセットアップする必要があります。コンシューマーがメッセージを処理するには、常に少なくとも1つのプロセスが実行されている必要があります。コンシューマは通常、さまざまな方法でメッセージプロセスを中断できます。サービスが継続的に実行されていることを確認するために、スーパーバイザーサービスを使用します。4つのプロセスを並行して実行するようにスーパーバイザーを構成します。4つのプロセスのいずれかが何らかの理由で停止した場合、スーパーバイザはプロセスの再起動を試みます。

スーパーバイザをインストールします。

sudo yum -y install supervisor

スーパーバイザ構成ファイルを編集します。

sudo nano /etc/supervisord.conf

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

[program:oro_message_consumer]
command=/usr/bin/php /usr/share/nginx/orocrm/app/console --env=prod --no-debug oro:message-queue:consume
process_name=%(program_name)s_%(process_num)02d
numprocs=4
autostart=true
autorestart=true
startsecs=0
user=nginx
redirect_stderr=true

スーパーバイザを起動して有効にし、起動時に自動的に起動するようにします。

sudo systemctl start supervisord
sudo systemctl enable supervisord

次のコマンドを実行すると、プロセスのステータスを表示できます。

sudo supervisorctl status

プロセスが実行されていることがわかります。

[user@vultr ~]$ sudo supervisorctl status
oro_message_consumer:oro_message_consumer_00   RUNNING   pid 13596, uptime 0:02:13
oro_message_consumer:oro_message_consumer_01   RUNNING   pid 13595, uptime 0:02:13
oro_message_consumer:oro_message_consumer_02   RUNNING   pid 13594, uptime 0:02:13
oro_message_consumer:oro_message_consumer_03   RUNNING   pid 13593, uptime 0:02:13

これでOroCRMがサーバーにインストールされました。これで、アプリケーションを使用して、組織の日常的なタスクを管理できます。OroCRMの詳細については、公式ウェブサイトをご覧ください



Leave a Comment

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、