如何在CentOS 7上安装OroCRM

OroCRM是基于OroPlatform构建的免费和开放源代码客户关系管理器(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的生产Web服务器上。OroCRM支持7.0以上的所有PHP版本。在本教程中,我们将结合使用Nginx和PHP-FPM和PHP 7.1。

安装Nginx。

sudo yum -y install nginx

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

sudo systemctl start nginx
sudo systemctl enable nginx

默认YUM存储库中没有PHP 7,但是我们可以使用Remi存储库获取并安装最新版本的PHP7。首先,添加并启用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

安装最新版本的PHP 7以及OroCRM所需的PHP模块。

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一起运行并监听port 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

向Nginx用户提供PHP-FPM套接字文件的所有权。

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创建数据库

通过以超级用户身份登录到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用于构建应用程序的用户界面。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

向执行器提供执行权限。

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

检查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

向Nginx用户提供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作业,以便尽早处理诸如电子邮件队列之类的计划任务。

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

安装主管。

sudo yum -y install supervisor

编辑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

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

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

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在Ubuntu 16.10上安装Review Board

如何在Ubuntu 16.10上安装Review Board

使用其他系统?Review Board是一个免费且开源的工具,用于检查源代码,文档,图像等。这是基于网络的软件战

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)

如何使用Ubuntu 15.10在Vultr服务器上安装Xubuntu桌面

如何使用Ubuntu 15.10在Vultr服务器上安装Xubuntu桌面

Xubuntu是XFCE + Ubuntu!XFCE是Ubuntu的轻量级GUI /桌面。Vultr服务器需要其他依赖项,默认情况下未安装这些依赖项。

如何在Debian 9上安装Monica

如何在Debian 9上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

如何使用SSL和安全密码保护由Nginx驱动的网站

如何使用SSL和安全密码保护由Nginx驱动的网站

简介SSL(代表安全套接字层)及其后续版本TLS(代表传输层安全性)是需要加密的加密协议。

如何在Fedora 26 LAMP VPS上安装MODX Revolution

如何在Fedora 26 LAMP VPS上安装MODX Revolution

使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由

如何在Ubuntu 17.04上安装JuliaLang

如何在Ubuntu 17.04上安装JuliaLang

朱莉娅(Julia)通常称为JuliaLang,是一种用于数值计算的编程语言。Julia的速度和C一样快,但是却不牺牲可读性

在Ubuntu 14.04上安装Ruby on Rails

在Ubuntu 14.04上安装Ruby on Rails

Ruby on Rails(RoR)是用Ruby编程语言编写的框架,可让您将Ruby与HTML,CSS和类似的程序结合使用。

在Fedora 28上安装Anchor CMS

在Fedora 28上安装Anchor CMS

使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示

将Debian 9升级到Debian 10

将Debian 9升级到Debian 10

简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin

如何管理Linux服务器时区设置

如何管理Linux服务器时区设置

在Linux服务器上正确设置日期和时间非常重要。您的服务器日志和其他重要信息都将反映时区

如何在Ubuntu 16.04上安装Taiga项目管理工具

如何在Ubuntu 16.04上安装Taiga项目管理工具

使用其他系统?Taiga是用于项目管理的免费和开源应用程序。与其他项目管理工具不同,Taiga使用增量

在Ubuntu上配置Nagios:第1部分-Nagios服务器

在Ubuntu上配置Nagios:第1部分-Nagios服务器

本文是有关在Ubuntu 14.04上安装和配置Nagios的2部分系列文章的一部分。第1部分:Nagios服务器第2部分:远程主机概述Nagio

如何访问Vultr VPS

如何访问Vultr VPS

Vultr提供了几种不同的方式来访问VPS以进行配置,安装和使用。访问凭据VPS ar的默认访问凭据

如何在Debian 9上安装Grav CMS

如何在Debian 9上安装Grav CMS

使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

在Debian / Ubuntu中使用Rsync设置文件镜像

在Debian / Ubuntu中使用Rsync设置文件镜像

简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

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 機器變磚。閱讀這篇文章以了解更多信息