GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar SuiteCRM con Nginx en Ubuntu 16.04

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 'SugarCRM' decidiera detener el desarrollo de la versión gratuita. SuiteCRM ha sido nominado como el mejor software CRM de código abierto en BOSSIE 2015 y 2016.

En este tutorial, le mostraré paso a paso cómo instalar el CRM de código abierto 'SuiteCRM'. El software se ejecutará en el servidor web Nginx con la base de datos MariaDB y usará el sistema Ubuntu 16.04.

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. Instalador web SuiteCRM
  6. Pasos finales

Requisitos

  • Servidor Ubuntu 16.04
  • Privilegios de raíz

Paso 1:instalar el servidor web Nginx

SuiteCRM es un software basado en web y necesita un servidor web. Podemos usar Apache o Nginx para este software. En este tutorial, utilizaremos el servidor web Nginx en lugar del servidor web Apache.

Conéctese a su servidor Ubuntu y actualice el repositorio.

ssh [email protected]
sudo apt update

Ahora instale el servidor web Nginx usando el comando apt de la siguiente manera.

apt install -y nginx

Después de la instalación, inicie nginx y permita que se inicie automáticamente cada vez que se inicie el sistema.

systemctl start nginx
systemctl enable nginx

El servidor web Nginx está instalado y se ejecuta en el puerto HTTP predeterminado 80. Verifíquelo con el comando netstat o puede usar curl para ver el código de estado HTTP.

netstat -plntu
curl -I localhost

Paso 2:instalar y configurar PHP-FPM

SuiteCRM es compatible con múltiples versiones de PHP. En este tutorial, utilizaremos la versión más reciente de PHP 7.0 para la instalación de SuiteCRM.

Instale PHP y PHP-FPM 7 junto con otras extensiones requeridas usando el siguiente comando apt.

apt install -y php7.0-fpm php7.0-mcrypt php7.0-imap php7.0-curl php7.0-cli php7.0-mysql php7.0-gd php7.0-xsl php7.0-json php7.0-intl php-pear php7.0-dev php7.0-common php7.0-mbstring php7.0-zip php-soap libcurl3 curl

Una vez completada la instalación, vaya al directorio de configuración de PHP y edite los archivos php.ini para la configuración de 'cli' y 'fpm'.

cd /etc/php/7.0/

Editar archivos php.ini.

vim cli/php.ini
vim fpm/php.ini

Cambie el valor del tamaño máximo del archivo de carga. SuiteCRM necesita al menos 6 MB, pero estableceremos 100 MB como valor.

upload_max_filesize = 100M

Quite el comentario de la línea CGI (que se muestra a continuación) y cambie el valor a 0.

cgi.fix_pathinfo=0

Para la configuración de la ruta de las sesiones, descomente la línea a continuación.

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

Eso es todo. Guarde estos cambios y salga.

Ahora, necesitamos crear un nuevo directorio para los archivos de sesiones de PHP y cambiar el propietario del directorio al usuario y grupo 'www-data'.

mkdir -p /var/lib/php/sessions
chown -R www-data:www-data /var/lib/php/sessions

La configuración de PHP y PHP-FPM se ha completado. Ahora inicie el servicio y permita que se inicie cada vez que se inicie el sistema.

systemctl start php7.0-fpm
systemctl enable php7.0-fpm

De forma predeterminada en el sistema Ubuntu, PHP-FPM se ejecutará bajo el archivo sock en lugar de usar el puerto del sistema. Compruébalo usando el comando netstat a continuación.

netstat -pl | grep php

Y asegúrese de que el resultado que ve sea similar al que se muestra en la siguiente captura de pantalla.

Paso 3:instalar y configurar MariaDB

En este paso, instalaremos MariaDB y configuraremos la contraseña de root. Luego configure una nueva base de datos para la instalación de SuiteCRM.

Instale MariaDB usando el comando apt a continuación.

apt install -y mariadb-server mariadb-client

Después de la instalación, inicie el servicio y permita que se inicie cada vez que se inicia el sistema.

systemctl start mysql
systemctl enable mysql

A continuación, configure la contraseña raíz de MariaDB usando el comando 'mysql_secure_installation' como se muestra a continuación.

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

Se ha configurado la contraseña raíz de MariaDB.

Ahora crearemos una nueva base de datos y usuario para la instalación de SuiteCRM. Cree una base de datos llamada 'suitecrm_db' y un nuevo usuario 'crmadmin' con contraseña 'hakase-labs123'. Conéctese al shell mysql y ejecute las siguientes consultas mysql.

mysql -u root -p
Type your password:

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

Se completó la configuración de la base de datos MariaDB para la instalación de SuiteCRM.

Paso 4:descargue y configure SuiteCRM

En este paso, realizaremos algunas tareas que prepararán el sistema para la instalación de SuiteCRM. Descargaremos el código fuente de SuiteCRM, configuraremos el Firewall UFW, generaremos certificados Letsencrypt y configuraremos el host virtual nginx para SuiteCRM.

- Descarga el código fuente de SuiteCRM

El código fuente de suiteCRM está disponible en Github. Asegúrese de que el comando git esté instalado en su sistema. O si no tiene un paquete git, instálelo con el comando apt a continuación.

apt install -y git

Ahora ve al directorio '/opt' y clona el repositorio usando el siguiente comando git clone.

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

Vaya al directorio suitecrm y cree un nuevo directorio 'caché'. Luego cambie el permiso de algunos archivos y directorios, y finalmente, necesitamos cambiar los permisos de propiedad para el directorio 'suitecrm' al usuario y grupo 'www-data'.

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

Se ha descargado el código fuente de SuiteCRM.

- Configurar cortafuegos UFW

En Ubuntu, usaremos el firewall ufw. Abra nuevos puertos HTTP, HTTPS y SSH usando los comandos ufw como se muestra a continuación.

ufw allow ssh
ufw allow http
ufw allow https

Ahora inicie el firewall y habilítelo para que se inicie cada vez que se inicia el sistema usando el comando ufw enable.

ufw enable

Escriba 'y' y presione Entrar para habilitar el firewall.

Si desea verificar el estado del firewall, use el comando de estado ufw.

ufw status

Y obtendrá el estado del firewall, incluidos los puertos que haya agregado.

- Generar certificados Letsencrypt

En este tutorial, SuiteCRM utilizará HTTPS para una conexión más segura entre el cliente y el servidor. Para este propósito, utilizaremos un certificado SSL gratuito de Letsencrypt.

Antes de generar archivos de certificado, debemos instalar el agente de cliente de letsencrypt en el sistema. Está disponible en el repositorio de Ubuntu, así que instálelo con el siguiente comando apt.

apt install -y letsencrypt

Después de instalar letsencrypt, debemos detener el servicio nginx antes de generar archivos de certificado.

systemctl stop nginx

Ahora genere archivos de certificado SSL usando el comando letsencrypt a continuación.

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

Nota: El --independiente La opción creará un servidor web temporal en el sistema, por lo que debemos detener el servidor web Nginx antes de generar archivos de certificado.

Se le preguntará acerca de su dirección de correo electrónico para renovar la notificación. Escriba su dirección de correo electrónico y haga clic en 'Aceptar'.

Para el Acuerdo de Letsencrypt, elija 'Acepto' y presione Entrar.

Se ha generado un nuevo Letsencrypt SSL en el directorio '/etc/letsencrypt/live/domain.com'.

- Configurar host virtual Nginx para SuiteCRM

Vaya al directorio de configuración de Nginx y cree un nuevo archivo de host virtual 'suitecrm' en el directorio 'sitios disponibles'.

cd /etc/nginx
vim sites-available/suitecrm

Pegue la siguiente configuración de Nginx allí.

# 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 HIGH:!aNULL:!MD5;

    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 /var/www/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:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

}

Guardar y salir.

Ahora active el host virtual, pruebe la configuración y asegúrese de que no haya ningún error. Luego reinicie el servidor web.

ln -s /etc/nginx/sites-available/suitecrm /etc/nginx/sites-enabled/

nginx -t
systemctl restart nginx

Se completó la configuración del sistema para la instalación de SuiteCRM.

Paso 5:Instalador web de SuiteCRM

Abra su navegador web y escriba la URL de SuiteCRM en la barra de direcciones, la mía es suitecrm.hakase-labs.co

Será redirigido a la conexión HTTPS y a la página install.php.

En la página que aparece, verá la licencia GNU AFFERO:marque 'Acepto' y haga clic en 'Siguiente'.

Ahora obtendrá la página sobre el entorno del sistema para la instalación de SuiteCRM.

Asegúrese de que todos los resultados sean 'OK' como se muestra en la imagen a continuación.

Haga clic en 'Siguiente' para continuar.

Luego viene la base de datos y la configuración del usuario administrador. Escriba la información de su base de datos, dbname 'suitecrm_db', dbuser 'crmadmin' con contraseña 'hakase-labs123'. Y escriba su usuario administrador, contraseña y correo electrónico como se muestra a continuación.

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

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

Escriba su usuario y contraseña de administrador y haga clic en el botón 'Iniciar sesión'.

Ahora podrá ver el panel predeterminado de SuiteCRM.

SuiteCRM se ha instalado con el servidor web Nginx en el sistema Ubuntu 16.04.

Paso 6 - Pasos finales

Para este último paso, crearemos un nuevo trabajo de Cron en el usuario www-data.

Ejecute el siguiente comando para agregar un nuevo trabajo Cron.

sudo crontab -e -u www-data

Pegue la configuración del script Cron a continuación.

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

Guardar y Salir. Luego reinicie el servicio Cron.

systemctl restart cron

La instalación de SuiteCRM en Ubuntu 16.04 se ha completado.


Ubuntu
  1. Cómo instalar Nextcloud con Nginx en Ubuntu 18.04 LTS

  2. Cómo instalar MediaWiki con Nginx en Ubuntu 16.04

  3. Cómo instalar Magento 2 con Nginx y Letsencrypt en Ubuntu 18.04

  4. Cómo instalar Magento con Nginx en Ubuntu 15.10

  5. Cómo instalar Mailpile con Nginx en Ubuntu 15.10

Cómo instalar Nginx con ModSecurity en Ubuntu 15.04

Cómo instalar múltiples WordPress con Nginx en Ubuntu 18.04

Cómo instalar SuiteCRM en Ubuntu 20.04 con Apache/Nginx

Cómo instalar Nextcloud 13 en Ubuntu 16.04 con Nginx

Cómo instalar Nginx en Ubuntu 15.04

Cómo instalar SuiteCRM en Ubuntu 20.04