GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar SuiteCRM con Nginx en CentOS 7

SuiteCRM es un software CRM (Customer Relationship Management) de código abierto basado en PHP. Es una bifurcación del popular software CRM SugarCRM, y se ha vuelto más popular después de que el equipo detrás de este último decidiera detener el desarrollo de la versión gratuita. SuiteCRM fue nominado como el mejor software CRM de código abierto en BOSSIE 2015 y 2016.

En este tutorial, le mostraremos cómo instalar y configurar SuiteCRM utilizando Nginx como servidor web. El software CRM se ejecutará bajo la pila LEMP con HTTPS habilitado. Y para este propósito, usaremos CentOS 7 como sistema operativo principal.

Lo que haremos

  1. Instalar servidor web Nginx
  2. Instalar y configurar PHP-FPM
  3. Instalar y configurar MariaDB
  4. Descargar y configurar SuiteCRM
  5. Instalar SuiteCRM a través del instalador web
  6. Configuración final

Requisitos

  • Servidor CentOS 7
  • Privilegios de raíz

Paso 1:instalar el servidor web Nginx

El primer paso que debemos hacer es conectar el servidor e instalar el stack básico de SuiteCRM. Conéctese al servidor a través de SSH usando el siguiente comando:

ssh [email protected]

Después de conectarnos como usuario root, necesitamos instalar un repositorio de terceros en nuestro sistema. Específicamente, necesitamos instalar el repositorio EPEL (Extra Package for Enterprise Linux) en el sistema antes de instalar Nginx.

Instale el repositorio EPEL usando el comando yum de la siguiente manera:

yum -y install epel-release

Ahora podemos instalar el servidor web Nginx en el sistema.

yum -y install nginx

Si la instalación está completa, inicie el servicio y permita que se ejecute automáticamente en el momento del arranque con el comando systemctl como se muestra a continuación.

systemctl start nginx
systemctl enable nginx

El servidor web Nginx ahora está instalado y, de forma predeterminada, se ejecuta en el puerto 80. Verifíquelo con los comandos netstat o curl.

netstat -plntu
curl -I localhost

Asegúrese de que el puerto 80 esté en el estado 'ESCUCHAR' y que el comando curl proporcione el código de estado HTTP 200 en su salida.

Paso 2:instalar y configurar PHP-FPM

En este paso, instalaremos y configuraremos la versión 7 de PHP-FPM en el servidor CentOS 7. De forma predeterminada, centOS no proporciona un repositorio para la nueva versión 7 de PHP. Por lo tanto, debemos agregar un repositorio diferente para la instalación de PHP-FPM 7.

Agregue el nuevo repositorio de PHP 7 'webtatic' al sistema usando el comando rpm.

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Ahora instale paquetes y extensiones de PHP 7 usando el comando yum como se muestra a continuación.

sudo yum install -y php71w-fpm php71w-cli php71w-common php71w-imap php71w-gd php71w-mbstring php71w-mcrypt php71w-mysql php71w-xml

Si la instalación está completa, edite el archivo de configuración predeterminado 'php.ini' usando vim.

vim /etc/php.ini

Cambie el tamaño máximo del archivo de carga para la instalación de SuiteCRM a 100 MB. Como mínimo, SuiteCRM necesita más de 6 MB.

upload_max_filesize = 100M

Descomente la siguiente línea CGI y cambie el valor a 0.

cgi.fix_pathinfo=0

Para la configuración de la ruta de la sesión, descomente la línea y cambie la ruta a '/var/lib/session' como se muestra a continuación.

session.save_path = "/var/lib/php/session"

Eso es todo. Guarde los cambios y salga de vim.

Ahora cree un nuevo directorio para la ruta de la sesión y cambie los permisos de propiedad del directorio al usuario y grupo 'nginx'.

mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session

A continuación, debemos editar la configuración de php-fpm. Para ello, vaya al directorio '/etc/php-fpm.d' y edite el archivo de configuración www.conf.

cd /etc/php-fpm.d/
vim www.conf

Ahora cambie la línea de usuario y grupo a 'nginx'.

user = nginx
group = nginx

En lugar de usar el puerto del sistema, PHP-FPM se ejecutará bajo el archivo de socket de Unix.

Cambie la línea 'escuchar':

listen = /var/run/php-fpm/php-fpm.sock

Establezca el permiso para el archivo de socket de Unix y la propiedad del archivo de socket como se muestra a continuación.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Eso es todo. Guarde los cambios y salga del editor.

Ahora inicie el servicio PHP-FPM y agréguelo para que se inicie automáticamente en el momento del arranque.

systemctl start php-fpm
systemctl enable php-fpm

Con esto, PHP-FPM está instalado y ejecutando el archivo de socket.

Puedes comprobarlo con el comando netstat:

netstat -pl | grep php

Asegúrese de ver el archivo php-fpm.sock.

Paso 3:instalar y configurar MariaDB

En este paso, instalaremos MariaDB, luego lo iniciaremos y habilitaremos para que se inicie cada vez que se inicie el sistema. Y finalmente, crearemos una nueva base de datos y usuario para la instalación de SuiteCRM.

Instale mariadb desde el repositorio de CentOS usando el siguiente comando yum.

yum install -y mariadb mariadb-server

Inicie el servicio MariaDB y habilítelo para iniciar el tiempo de arranque con los siguientes comandos.

systemctl start mariadb
systemctl enable mariadb

Entonces MariaDB ahora está instalado y funcionando. Ahora, necesitamos configurar la contraseña de root usando el comando 'mysql_secure_installation'.

mysql_secure_installation

Se le preguntará acerca de la configuración, escriba 'Y' y presione 'Enter'.

Set root password? [Y/n] Y
New password:
Re-enter new password:

Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Así que la contraseña raíz de MariaDB ha sido configurada.

A continuación, debemos crear una nueva base de datos y un nuevo usuario para la instalación de SuiteCRM. Para ello, inicie sesión en el shell de MySQL con el usuario 'root' y su contraseña.

mysql -u root -p

Cree una nueva base de datos llamada 'suitecrm_db' y un nuevo usuario 'crmadmin' con contraseña 'hakase-labs123'. Todo esto se puede hacer usando las consultas mysql a continuación.

CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;

Así que la configuración de la base de datos para la instalación de SuiteCRM se ha completado.

Paso 4:descargue y configure SuiteCRM

En este paso, haremos algunas tareas para la instalación de SuiteCRM. Descargaremos el código fuente de SuiteCRM, configuraremos Firewalld, generaremos un nuevo SSL Letsencrypt y configuraremos el host virtual nginx para SuiteCRM. Así que comencemos.

Descargar SuiteCRM

Si aún no lo ha hecho, instale git en su sistema usando el siguiente comando yum.

yum -y install git

Ahora vaya al directorio '/opt' y descargue el código SuiteCRM usando el comando git como se muestra a continuación.

cd /opt/
git clone https://github.com/salesagility/SuiteCRM.git suitecrm

Después de eso, cree un directorio de caché, cambie los permisos para algunos archivos y directorios en el directorio de suitecrm y luego cambie el propietario de todo el código de suitecrm al usuario y grupo 'nginx'.

cd /opt/suitecrm
mkdir -p /opt/suitecrm/cache
chmod -R 775 cache custom modules themes data upload config_override.php
chown nginx:nginx -R /opt/suitecrm

Entonces, el código de suiteCRM se descargó en el servidor en el directorio '/opt/suitecrm/'.

Configurar Firewalld

Si no tiene Firewalld ejecutándose en su servidor, instálelo usando el siguiente comando.

yum -y install firewalld

Inicie el servicio y permita que se ejecute en el momento del arranque.

systemctl start firewalld
systemctl enable firewalld

A continuación, necesitamos abrir nuevos puertos HTTP y HTTPS. Se utiliza para el acceso a SuiteCRM. Ejecute los siguientes comandos de firewall-cmd para esto.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent

Ahora vuelva a cargar las reglas de firewall con el siguiente comando.

firewall-cmd --reload

Así que ahora, se han agregado nuevos puertos HTTP y HTTPS al Firewalld. Si desea ver la configuración detallada, ejecute el siguiente comando.

firewall-cmd --list-all

Generar nuevo SSL Letsencrypt

En este tutorial, usaremos SSL para el acceso a SuiteCRM. Y usaremos certificados SSL gratuitos de letsencrypt para ese propósito.

Para generar nuevos certificados SSL de letsencrypt, primero debemos instalar la herramienta de comando 'certbot' de letsencrypt en nuestro sistema. Está disponible en el repositorio de CentOS. Instale certbot usando el siguiente comando yum.

yum -y install certbot

Cuando se complete la instalación de certbot, genere un archivo de certificado SSL para el nombre de dominio suiteCRM 'suitecrm.hakase-labs.co'.

Ejecute el siguiente comando para generar archivos de certificado SSL.

certbot certonly --standalone -d suitecrm.hakase-labs.co

Se le preguntará acerca de la dirección de correo electrónico para renovar la notificación:escriba su correo electrónico y presione Entrar para continuar.

Para los TOS de Letsencrypt, escriba 'A' para aceptar y presione Entrar nuevamente. Y para la consulta de dirección de correo electrónico compartida, escriba 'N' y presione Entrar.

Cuando se complete la generación del certificado, obtendrá el siguiente resultado.

Los nuevos archivos de certificado se generan en el directorio '/etc/letsencrypt/live/domain.com'.

Configurar host virtual SuiteCRM Nginx

Vaya al directorio de configuración de Nginx '/etc/nginx' y cree un nuevo archivo suitecrm.conf en el directorio conf.d usando el editor Vim.

cd /etc/nginx/
vim conf.d/suitecrm.conf

Allí, pegue el host virtual SuiteCRM Nginx a continuación.


# Server Config - hakase-labs
server {
    listen 80;
    server_name suitecrm.hakase-labs.co;

    # Automatically redirect to HTTPS
    return 301 https://$host$request_uri;
}

# Nginx SSL for SuiteCRM
server {

    server_name suitecrm.hakase-labs.co;

    # Enable http2
    listen 443 http2 ssl;

    # SSL Config
    ssl_certificate /etc/letsencrypt/live/suitecrm.hakase-labs.co/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/suitecrm.hakase-labs.co/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

    client_max_body_size 50M;

    index index.php index.html index.htm;
    root /opt/suitecrm;

    location / {
        root /opt/suitecrm;
        index index.php index.html index.htm;
    }
 
    error_page 500 502 503 504 /50x.html;
    error_log /var/log/nginx/suitecrm.irsyadf.me.error.log;

    location = /50x.html {
        root /usr/share/nginx/html;
    }

    ## Images and static content is treated different
    location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml|svg|wgoff2)$ {
        access_log off;
        expires max;
        root /opt/suitecrm;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

}

Eso es todo. Guarde el cambio y salga de Vim.

Ahora pruebe la configuración de nginx y asegúrese de que no haya ningún error. Una vez hecho esto, reinicie el servicio.

nginx -t
systemctl restart nginx

Con esto, se ha completado la configuración de nginx para la instalación de SuiteCRM.

Paso 5:Instalador web de SuiteCRM

Abra su navegador web y visite el nombre de dominio de SuiteCRM:'suitecrm.hakase-labs.co'.

Será redirigido a la conexión HTTPS install.php y obtendrá la página sobre la licencia GNU AFFERO. Marque la casilla 'Acepto' y haga clic en 'Siguiente'.

En la página del entorno del sistema, asegúrese de que todos los resultados sean 'OK'.

Y haga clic en 'Siguiente' para continuar.

Luego viene la administración y la configuración de la base de datos. Escriba la información de su base de datos, como dbname, dbuser y dbpassword. Para la configuración de administrador, escriba su nombre de usuario, correo electrónico y contraseña.

Desplácese hasta la parte inferior y haga clic en 'Siguiente' para continuar con la instalación de SuiteCRM.

Espere un momento, cuando se complete la instalación, y será redirigido a la página de inicio de sesión como se muestra a continuación.

En esta página, escriba el usuario administrador y la contraseña, luego presione el botón 'Iniciar sesión'.

Y obtendrá el panel de SuiteCRM como se muestra a continuación.

Así que se ha instalado SuiteCRM.

Paso 6 - Configuración final

En este último paso, debemos agregar la configuración al cronjob.

Básicamente, necesitamos crear un nuevo cron como usuario y grupo nginx.

sudo crontab -e -u nginx

Y pega la siguiente configuración.

*    *    *    *    *     cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1

Guardar y salir.

Eso es todo. Se completó la instalación de SuiteCRM con el servidor web Nginx en CentOS 7.


Cent OS
  1. Cómo instalar Nginx en CentOS 7

  2. Cómo instalar WordPress con Nginx en CentOS 7

  3. Instale Nginx con ngx_pagespeed en CentOS 7

  4. Cómo instalar phpMyAdmin con Nginx en CentOS 7 / RHEL 7

  5. Cómo instalar Sitemagic CMS en CentOS 7 – Con Nginx

Cómo instalar Nginx en CentOS

Cómo instalar Nginx con ngx_pagespeed en CentOS

Cómo instalar Nginx con PHP-FastCGI en CentOS 6

Cómo instalar Magento con Nginx en CentOS 7

Cómo instalar Laravel con Nginx en CentOS 8

¿Cómo instalar Nginx en CentOS 7?