现在的位置: 首页 > 搬瓦工VPS应用 > 正文

如何在CentOS 7上安装OroCRM

2017年12月08日 搬瓦工VPS应用 ⁄ 共 8188字 ⁄ 字号 如何在CentOS 7上安装OroCRM已关闭评论 ⁄ 阅读 369 views 次

OroCRM是在OroPlatform上建立的一个免费的开源客户关系管理器(CRM)应用。OroPlatform是完全可定制的开源商业应用平台软件。OroPlatform提供了创建自定义应用程序所需的所有特性。OroCRM是使用PHP Symfony框架构建的,并将其数据存储到MySQL / MariaDB数据库服务器中。它是一个提供大量特性的企业级CRM应用程序。它还集成了许多第三方应用程序,如Magento Store、MailChimp、Zendesk等,它是多语言的,并且具有完全响应性的用户界面,这为您提供了使用移动设备管理它的能力。

 

准备:

一个搬瓦工服务器实例。

sudo用户。

在本文中,笔者将使用crm.banwagongvps.com作为指向服务器的域名。用你的实际域名替换所有的crm.banwagongvps.com。

更新CentOS 7。

 

安装Nginx和PHP 7

OroCRM可以安装在任何支持PHP的web服务器上。OroCRM支持所有版本的PHP大于7.0。在本文中,我们将使用带有PHP - fpm和PHP 7.1的Nginx。

安装Nginx。

sudo yum -y install nginx

启动Nginx并使它自动启动。

sudo systemctl start nginxsudo systemctl enable nginx

PHP 7在默认的YUM存储库中是不可用的,但是我们可以使用Remi存储库来获取和安装PHP 7的最新版本。首先,添加并启用Remi存储库。

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpmsudo yum -y install yum-utilssudo 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 timezonememory_limit = 512Mcgi.fix_pathinfo=0

编辑php - fpm配置文件。

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

默认情况下,php - fpm配置为运行Apache并监听端口9000。我们需要更改用户和组,以及它将运行的Unix套接字文件。找到以下几行,并按所示进行必要的更改。

user = nginxgroup = 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.socklisten.owner = nobodylisten.group = nobody

启动php - fpm并使其启动。

sudo systemctl start php-fpmsudo systemctl enable php-fpm

向Nginx用户提供php - fpm socket文件的所有权。

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 mariadbsudo systemctl enable mariadb

MariaDB的默认安装有几个测试数据库和匿名用户。在配置数据库之前,您需要先保护MariaDB服务器。您可以通过运行mysql_secure_installation脚本来保护它。

sudo mysql_secure_installation

您将被询问当前的MariaDB根密码。默认情况下,在新的MariaDB安装中没有根密码。按Enter键继续。设置一个强大的密码,为您的MariaDB服务器的根用户,并回答所有其他问题。这些问题是不言自明的。

 

创建OroCRM数据库

通过运行以root用户身份登录到MySQL shell。

mysql -u root -p

提供MariaDB根用户登录的密码。

运行以下查询,创建一个用于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和username oro_user。一定要将强密码更改为非常强的密码。

安装Node.js 和 Composer

OroCRM还要求Node.js JavaScript运行时。Node.js将被OroCRM用来编译JavaScript,用于构建应用程序的用户界面。CentOS的默认存储库包含一个过时的节点版本。因此,您需要将Nodesource存储库添加到您的系统以获得最新版本。

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

安装Node.js 和 Git.

sudo yum -y install nodejs git

Git将被用于从internet克隆OroCRM存储库。您还需要安装Composer。Composer是PHP应用程序的依赖关系管理器。因为OroCRM是在Symfony框架中编写的,所以您需要编写器来安装依赖项和应用程序。

安装的作曲家。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"php composer-setup.phpphp -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复制到OroCRM使用的默认 parameters。

cd orocrmsudo cp app/config/parameters.yml.dist  app/config/parameters.yml

在进一步进行之前,您需要更新parameters.yml 文件提供数据库和电子邮件信息。

sudo nano app/config/parameters.yml

找到下面几行

database_driver:   pdo_mysqldatabase_host:     127.0.0.1database_port:     ~database_name:     oro_crmdatabase_user:     rootdatabase_password: ~

根据您创建的数据库存储OroCRM数据,更新上述配置。在我们的例子中,它应该是这样的。

database_driver:   pdo_mysqldatabase_host:     127.0.0.1database_port:     3306database_name:     oro_datadatabase_user:     oro_userdatabase_password: StrongPassword

如果您已经准备好了一个SMTP服务器,并且您希望立即使用电子邮件发送特性,那么您可以像所显示的那样更新mailer设置。

mailer_transport:  smtpmailer_host:       mail.example.commailer_port:       456mailer_encryption: sslmailer_user:       [email protected]_password:   EMailPassword

如果您没有准备好邮件服务器,您可以通过保留现有值来跳过它。您总是可以通过仪表板更改邮件配置。

设置一个随机字符串ThisTokenIsNotSoSecretChangeIt替换secret。需要一个随机字符串来对会话数据进行编码。一个示例字符串看起来是这样的。

secret:            uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd

您可以使用pwgen实用程序生成一个随机字符串。安装pwgenn实用程序,运行sudo yum -y install pwgen。要生成一个随机字符串,运行pwgen -s 64

保存文件并退出编辑器。通过编写器安装所需的PHP依赖项。

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

使用——no dev将确保编写器只安装在生产模式下运行web服务器所需的依赖项。这个脚本需要几分钟的时间来下载和安装所需的PHP依赖项。

安装应用程序。

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

这将构建web缓存并编写数据库。提供了在生产模式下安装应用程序的参数env = prod参数。只要安装并配置了所有必需的依赖项,安装就会继续进行。

在安装过程中,您将被问及设置管理员帐户的几个问题。问题如下。

Administration setup.Application URL (http://localhost): http://crm.example.comOrganization name (OroCRM): My OrganizationUsername (admin):Email: [email protected] name: JohnLast name: DoePassword: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

输出应该如下所示。

[[email protected]~]$ sudo nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: 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=httpsudo firewall-cmd --zone=public --permanent --add-service=httpssudo firewall-cmd --reload

现在可以在http://crm.banwagongvps.com上访问该应用程序。使用在安装期间设置的管理员用户名和密码登录。

设置计划任务和后台作业

要自动运行预定的任务,您可以添加一个Cron作业条目,开放的crontab.

sudo crontab -e

将以下行添加到文件中。

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

这将每分钟运行cron作业,这样就可以尽早处理诸如电子邮件队列之类的调度任务。

您还需要设置主管来运行消息队列服务。需要至少有一个进程在任何时候都在运行,以供使用者处理消息。消费者通常可以通过多种方式中断消息过程。为了确保服务持续运行,我们将使用主管服务。我们将配置主管并行运行四个进程。如果四个过程中的任何一个因任何原因被停止,主管将尝试重新启动它。

安装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:consumeprocess_name=%(program_name)s_%(process_num)02dnumprocs=4autostart=trueautorestart=truestartsecs=0user=nginxredirect_stderr=true

启动并使 Supervisor在启动时自动启动。

sudo systemctl start supervisordsudo systemctl enable supervisord

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

sudo supervisorctl status

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

[[email protected] ~]$ sudo supervisorctl statusoro_message_consumer:oro_message_consumer_00   RUNNING   pid 13596, uptime 0:02:13oro_message_consumer:oro_message_consumer_01   RUNNING   pid 13595, uptime 0:02:13oro_message_consumer:oro_message_consumer_02   RUNNING   pid 13594, uptime 0:02:13oro_message_consumer:oro_message_consumer_03   RUNNING   pid 13593, uptime 0:02:13

OroCRM现在安装在您的服务器上。现在可以使用应用程序来管理组织的常规任务。想了解更多关于OroCRM的信息,你可以访问它的官方网站。

抱歉!评论已关闭.

×