如何在Ubuntu 16.04上安装OroCRM

OroCRM是基于OroPlatform构建的免费和开放源代码客户关系管理器(CRM)应用程序。OroPlatform是完全可定制的开源业务应用程序平台软件。OroPlatform为您提供创建自定义应用程序所需的所有功能。OroCRM使用PHP Symfony框架构建,并将其数据存储到MySQL / MariaDB数据库服务器中。它是一个企业级CRM应用程序,提供大量功能。它还与许多第三方应用程序集成,例如Magento商店,MailChimp,Zendesk等。它是多语言的,具有完全响应的用户界面,使您能够使用移动设备对其进行管理。

先决条件

在本教程中,我们将使用crm.example.com指向服务器的域名作为域名。crm.example.com用您的实际域名替换所有出现的。

使用指南如何更新Ubuntu 16.04更新基本系统。系统更新后,继续安装所需的依赖项。

安装Nginx和PHP 7

OroCRM可以安装在任何支持PHP的生产Web服务器上。OroCRM支持7.0以上的所有PHP版本。在本教程中,我们将结合使用Nginx和PHP-FPM和PHP 7.1。

安装Nginx。

sudo apt -y install nginx

启动Nginx并使它能够在启动时自动启动。

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7.1在默认apt存储库中不可用。首先,添加用于PHP的PPA存储库。

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

安装PHP 7.1以及OroCRM所需的PHP模块。

sudo apt update
sudo apt -y install php7.1 php7.1-fpm php7.1-common php7.1-curl php7.1-gd php7.1-intl php7.1-json php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-xml php7.1-xml php7.1-zip php7.1-tidy php7.1-soap php7.1-opcache

编辑加载的PHP配置文件。

sudo nano /etc/php/7.1/cli/php.ini

找到以下几行。取消注释并进行如下所示的更改。

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

cgi.fix_pathinfo=0

启动PHP-FPM并使其在启动时启动。

sudo systemctl start php7.1-fpm
sudo systemctl enable php7.1-fpm

安装MariaDB

MariaDB是MySQL的一个开源分支。添加MariaDB 10.2存储库。

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://kartolo.sby.datautama.net.id/mariadb/repo/10.2/ubuntu xenial main'

安装MariaDB。

sudo apt -y update
sudo apt -y install mariadb-server

启动MariaDB并启用它以在启动时自动启动。

sudo systemctl start mariadb
sudo systemctl enable mariadb

为OroCRM创建数据库

通过以超级用户身份登录到MySQL Shell。

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运行时。OroCRM将使用Node.js来编译JavaScript,该JavaScript用于构建应用程序的用户界面。Ubuntu的默认存储库包含过时的Node.js版本,因此您需要将Nodesource存储库添加到系统中以获得最新版本。

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

安装Node.js和Git。

sudo apt -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

将Composer移至该/usr/bin目录,以便可以在系统中的任何位置执行它。

sudo mv composer.phar /usr/bin/composer

向执行器提供执行权限。

sudo chmod +x /usr/bin/composer

安装OroCRM

有多种方法可以在服务器上下载OroCRM。获取最新版本的最合适方法是通过Git克隆存储库。

克隆OroCRM存储库。

cd /usr/share/nginx/
sudo git clone -b 2.4 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 apt -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 Org
Username (admin): 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/sites-available/orocrm

填充文件。

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:/run/php/php7.1-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缓存中加载。这两种方法极大地提高了应用程序的速度。

启用站点。

sudo ln -s /etc/nginx/sites-available/orocrm /etc/nginx/sites-enabled/orocrm

检查Nginx配置文件是否有任何错误。

sudo nginx -t

输出应如下所示。

user@vultr:/usr/share/nginx/orocrm$ 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用户提供OroCRM文件的所有权。

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

重新启动Nginx以应用新配置。

sudo systemctl restart nginx

您现在可以在访问该应用程序http://crm.example.com。登录使用管理员usernamepassword您在安装过程中设置。

设置计划任务和后台作业

要自动运行计划的任务,您可以添加Cron作业条目。打开crontab

sudo crontab -e

将以下行添加到文件中。

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

这将每分钟运行一次cron作业,以便尽早处理诸如电子邮件队列之类的计划任务。

您还需要设置Supervisor来运行Message Queue服务。要求消费者始终一直在运行至少一个进程,以便消费者处理消息。消费者通常可以通过多种方式中断消息过程。为了确保该服务连续运行,我们将使用Supervisor服务。我们将配置Supervisor以并行运行四个进程。如果由于某种原因停止了这四个进程中的任何一个,Supervisor将尝试再次启动它。

安装主管。

sudo apt -y install supervisor

创建一个新的Supervisor配置文件。

sudo nano /etc/supervisor/conf.d/orocrm.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=www-data
redirect_stderr=true

启动并使Supervisor能够在引导时自动启动。

sudo systemctl restart supervisor
sudo systemctl enable supervisor

您可以通过运行以下命令查看进程的状态。

sudo supervisorctl status

您应该看到进程正在运行。

user@vultr:/usr/share/nginx/orocrm$ sudo supervisorctl status
oro_message_consumer:oro_message_consumer_00   RUNNING   pid 20809, uptime 0:00:01
oro_message_consumer:oro_message_consumer_01   RUNNING   pid 20808, uptime 0:00:01
oro_message_consumer:oro_message_consumer_02   RUNNING   pid 20807, uptime 0:00:01
oro_message_consumer:oro_message_consumer_03   RUNNING   pid 20806, uptime 0:00:01

OroCRM现在已安装在您的服务器上。现在,您可以使用该应用程序来管理组织的例行任务。要了解有关OroCRM的更多信息,请访问其官方网站



Leave a Comment

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。