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
- Instalar servidor web Nginx
- Instalar y configurar PHP-FPM
- Instalar y configurar MariaDB
- Descargar y configurar SuiteCRM
- Instalador web SuiteCRM
- 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
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.