Cómo instalar OroCRM en CentOS 7

OroCRM es una aplicación gratuita y de código abierto de Customer Relationship Manager (CRM) desarrollada en OroPlatform. OroPlatform es un software de plataforma de aplicaciones empresariales de código abierto totalmente personalizable. OroPlatform le proporciona todas las funciones necesarias para crear una aplicación personalizada. OroCRM está construido utilizando el marco PHP Symfony y almacena sus datos en el servidor de base de datos MySQL / MariaDB. Es una aplicación CRM lista para la empresa que ofrece toneladas de funciones. También se integra con muchas aplicaciones de terceros, como Magento Store, MailChimp, Zendesk, etc. Es multilingüe y tiene una interfaz de usuario totalmente receptiva, que le brinda la capacidad de administrarla también utilizando dispositivos móviles.

Prerrequisitos

En este tutorial, usaremos crm.example.comcomo el nombre de dominio señalado al servidor. Reemplace todas las apariciones de crm.example.comcon su nombre de dominio real.

Actualice su sistema base utilizando la guía Cómo actualizar CentOS 7 . Una vez que su sistema ha sido actualizado, proceda a instalar las dependencias requeridas.

Instalar Nginx y PHP 7

OroCRM se puede instalar en cualquier servidor web de producción que soporte PHP. OroCRM admite todas las versiones de PHP superiores a 7.0. En este tutorial, utilizaremos Nginx con PHP-FPM y PHP 7.1.

Instala Nginx.

sudo yum -y install nginx

Inicie Nginx y permita que se inicie automáticamente en el arranque.

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7 no está disponible en el repositorio predeterminado de YUM, pero podemos usar el repositorio Remi para obtener e instalar las últimas compilaciones de PHP 7. Primero, agregue y habilite el repositorio 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

Instale la última versión de PHP 7 junto con los módulos PHP requeridos por OroCRM.

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

Edite el archivo de configuración PHP predeterminado.

sudo nano /etc/php.ini

Encuentra las siguientes líneas. Descomente y realice los cambios como se muestra.

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

memory_limit = 512M
cgi.fix_pathinfo=0

Edite el archivo de configuración PHP-FPM.

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

Por defecto, PHP-FPM está configurado para ejecutarse con Apache y para escuchar el puerto 9000. Tendremos que cambiar el usuario y el grupo, así como el archivo de socket Unix en el que se ejecutará. Encuentre las siguientes líneas y realice los cambios necesarios como se muestra.

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

Inicie PHP-FPM y permita que se inicie en el arranque.

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

Proporcione la propiedad del archivo de socket PHP-FPM al usuario de Nginx.

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

Instalar MariaDB

MariaDB es una bifurcación de código abierto de MySQL. Instala MariaDB.

sudo yum -y install mariadb mariadb-server

Inicie MariaDB y permita que se inicie automáticamente en el arranque.

sudo systemctl start mariadb
sudo systemctl enable mariadb

La instalación predeterminada de MariaDB viene con algunas bases de datos de prueba y usuarios anónimos. Antes de configurar la base de datos, primero deberá asegurar el servidor MariaDB. Puede asegurarlo ejecutando el mysql_secure_installationscript.

sudo mysql_secure_installation

Se le pedirá la contraseña de root actual de MariaDB. Por defecto, no hay una contraseña de root en una nueva instalación de MariaDB. Presione la Entertecla para continuar. Establezca una contraseña segura para el usuario raíz de su servidor MariaDB y responda Ya todas las demás preguntas formuladas. Las preguntas formuladas se explican por sí mismas.

Crear la base de datos para OroCRM

Inicie sesión en el shell MySQL como usuario root ejecutando.

mysql -u root -p

Proporcione la contraseña para que el usuario raíz de MariaDB inicie sesión.

Ejecute las siguientes consultas para crear una base de datos y un usuario de la base de datos para la instalación de 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;

Puede reemplazar el nombre de la base de datos oro_datay el nombre de usuario de oro_useracuerdo con su elección. Asegúrese de cambiar StrongPassworda una contraseña muy segura .

Instalar Node.js y Composer

OroCRM también requiere Node.js JavaScript runtime. OrodeM utilizará Node.js para compilar el JavaScript, que se utiliza para construir la interfaz de usuario de la aplicación. El repositorio predeterminado de CentOS contiene una versión desactualizada de Node.js, por lo que deberá agregar el repositorio Nodesource a su sistema para obtener la última versión.

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

Instala Node.js y Git.

sudo yum -y install nodejs git

Git se usará para clonar el repositorio de OroCRM desde Internet. También deberá instalar Composer. Composer es una herramienta de gestión de dependencias para aplicaciones PHP. Debido a que OroCRM está escrito en el marco de Symfony, necesitará Composer para instalar las dependencias y la aplicación.

Instalar Composer.

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

Mueva Composer al /usr/bindirectorio para que pueda ejecutarse desde cualquier parte del sistema.

sudo mv composer.phar /usr/bin/composer

Proporcionar permiso de ejecución al compositor.

sudo chmod +x /usr/bin/composer

Instale OroCRM

Hay muchas formas de descargar OroCRM en su servidor. La forma más adecuada de obtener la versión más actualizada es clonar el repositorio a través de Git.

Clone el repositorio de OroCRM.

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

Copie el parametersarchivo de ejemplo en el parametersarchivo predeterminado utilizado por OroCRM.

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

Antes de continuar, deberá actualizar el parameters.ymlarchivo para proporcionar la base de datos y la información de correo electrónico.

sudo nano app/config/parameters.yml

Encuentra las siguientes líneas.

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

Actualice la configuración anterior de acuerdo con la base de datos que ha creado para almacenar datos de OroCRM. En nuestro caso, debería verse así.

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

Si tiene un servidor SMTP listo y desea utilizar las funciones de envío de correo electrónico de inmediato, puede actualizar la configuración del correo como se muestra.

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

Si no tiene un servidor de correo listo, puede omitirlo por ahora dejando los valores existentes. Siempre puede cambiar la configuración del correo electrónico a través del panel de control.

Establezca una cadena aleatoria secretreemplazando ThisTokenIsNotSoSecretChangeIt. Se requiere una cadena aleatoria para codificar los datos de la sesión. Una cadena de ejemplo se verá así.

secret:            uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd

Puede generar una cadena aleatoria utilizando la pwgenutilidad. Instale la pwgenutilidad ejecutando sudo yum -y install pwgen. Para generar una cadena aleatoria, ejecute pwgen -s 64 1.

Guarde el archivo y salga del editor. Instale las dependencias PHP requeridas a través del compositor.

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

El uso --no-devgarantizará que Composer solo instale las dependencias necesarias para ejecutar el servidor web en modo de producción. El script tardará unos minutos en descargar e instalar las dependencias PHP requeridas.

Instala la aplicación.

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

Esto construirá el caché web y escribirá la base de datos. El --env=prodparámetro se proporciona para instalar la aplicación en modo de producción. La instalación solo continuará si todas las dependencias requeridas están instaladas y configuradas.

Durante la instalación, se le harán algunas preguntas para configurar la cuenta de administrador. Las preguntas son las siguientes.

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

Proporcione la información. Cargue los datos de muestra para evaluar el producto antes de usarlo para la producción.

Calentar la caché de documentación de la API:

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

Configuración de Nginx, firewall y permisos

Cree un archivo de bloque de servidor Nginx para servir la aplicación a los usuarios.

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

Rellene el archivo.

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;
}

Asegúrese de cambiarlo crm.example.comcon su nombre de dominio real. La configuración anterior también incluye la configuración requerida para la compresión GZip y el almacenamiento en caché del navegador. La compresión Gzip comprime los datos antes de enviarlos al navegador. Al habilitar el almacenamiento en caché del navegador, se almacenan los recursos estáticos en la memoria caché web del equipo cliente. La próxima vez que el usuario acceda al sitio, la mayor parte del contenido estático se carga desde la propia caché web del usuario. Estos dos métodos aumentan la velocidad de la aplicación dramáticamente.

Verifique el archivo de configuración de Nginx para ver si hay algún error.

sudo nginx -t

La salida debería ser similar a la siguiente.

[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

Proporcione la propiedad de los archivos OrOCRM al usuario de Nginx.

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

Reinicie Nginx para aplicar la nueva configuración.

sudo systemctl restart nginx

Si está ejecutando un firewall en su servidor, deberá configurar el firewall para establecer una excepción para el servicio HTTP. Permita que Nginx se conecte desde fuera de la red.

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

Ahora puede acceder a la aplicación en http://crm.example.com. Inicie sesión con el nombre de usuario y la contraseña de administrador que estableció durante la instalación.

Configurar tareas programadas y trabajos en segundo plano

Para ejecutar automáticamente las tareas programadas, puede agregar una entrada de trabajo Cron. Abierto crontab.

sudo crontab -e

Agregue la siguiente línea al archivo.

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

Esto ejecutará el trabajo cron cada minuto para que las tareas programadas, como las colas de correo electrónico, se procesen lo antes posible.

También deberá configurar Supervisor para ejecutar el servicio de Message Queue. Se requiere que al menos un proceso se esté ejecutando en todo momento para que un consumidor procese los mensajes. Un consumidor normalmente puede interrumpir el proceso de mensajes de muchas maneras. Para garantizar que el servicio se ejecute continuamente, utilizaremos el servicio Supervisor. Configuraremos Supervisor para ejecutar cuatro procesos en paralelo. Si alguno de los cuatro procesos se detiene por algún motivo, el Supervisor intentará iniciarlo nuevamente.

Instalar Supervisor.

sudo yum -y install supervisor

Edite el archivo de configuración de Supervisor.

sudo nano /etc/supervisord.conf

Agregue las siguientes líneas al final del archivo.

[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

Inicie y permita que Supervisor se inicie automáticamente en el momento del arranque.

sudo systemctl start supervisord
sudo systemctl enable supervisord

Puede ver el estado de los procesos ejecutando lo siguiente.

sudo supervisorctl status

Debería ver que los procesos se están ejecutando.

[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 ahora está instalado en su servidor. Ahora puede usar la aplicación para administrar las tareas rutinarias de su organización. Para obtener más información sobre OroCRM, puede visitar su sitio web oficial .



Leave a Comment

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.

Singularidad tecnológica: ¿un futuro lejano de la civilización humana?

Singularidad tecnológica: ¿un futuro lejano de la civilización humana?

A medida que la ciencia evoluciona a un ritmo rápido, asumiendo muchos de nuestros esfuerzos, también aumentan los riesgos de someternos a una singularidad inexplicable. Lea, lo que la singularidad podría significar para nosotros.

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

El impacto de la inteligencia artificial en la atención médica 2021

El impacto de la inteligencia artificial en la atención médica 2021

La IA en la salud ha dado grandes pasos desde las últimas décadas. Por tanto, el futuro de la IA en el sector sanitario sigue creciendo día a día.