EspoCRM em Debian 9

A necessidade aguça o engenho, e desta vez precisei de ter uma solução simples para o acompanhamento dos clientes numa das empresas para a qual presto serviços. Depois de ver várias soluções, o EspoCRM pareceu-me ser o mais simples para o trabalho a ser feito, e para além disso, também não me pareceu muito difícil de implementar numa máquina virtual VMWare ESXi 6.7 (nota para o ultimo update do 6.5 para a 6.7 que resolve uma série de bugs na interface web) com LAMP.

Instalação Debian

Durante a instalação do Debian, nas opções de instalação de pacotes, aconselho apenas a instalação do servidor SSH.

Locals

É sempre bom, antes de iniciar a configuração do servidor, dizer geograficamente onde é que ele está, para que as horas batam certo. Pessoalmente apenas reconfiguro a Time Zone (tzdata), pois prefiro que o SO esteja sempre em inglês.

dpkg-reconfigure locales
dpkg-reconfigure tzdata

Configuração de rede Debian

IP Fixo

Visto que este irá ser um servidor empresarial convém o mais possível que o IP seja fixo (até porque vão precisar dele fixo mais tarde). Usei a ajuda da Debian para o fazer, disponível aqui. Esta configuração é aplicável também em Ubuntu e todas as distros Debian based. Para definir o IP fixo, editar:

nano /etc/network/interfaces

E depois definir à eth0 os seguintes valores (substituir pelos vossos):
PS: No Ubuntu14.x e Debian 8/9 é provável que encontrem algum texto novo, colocar a configuração estática debaixo de: “source-directory /etc/network/interfaces.d”.

auto eth0
iface eth0 inet static
        address 10.0.0.20/24
        gateway 10.0.0.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 10.0.0.1
        dns-search <network.local>

Recordar que, podem incluir duas, ou mais, configurações de IP, especialmente quando estão a trabalhar em duas redes distintas. É só adicionar a partir de iface. A seguir convém sempre reiniciar a placa de rede para ela poder assumir o IP atribuído:

ifdown eth0
ifup eth0

DNS’s

Em alguns casos será também boa ideia definir os servidores de resolução de nomes:

nano /etc/resolv.conf

E adicionar os seguintes, OpenDNS e Google DNS, respectivamente alterado:

nameserver 208.67.222.222
nameserver 8.8.8.8
nameserver 208.67.220.220
nameserver 8.8.4.4

Preparar o servidor SSH

Debian8/9

Por defeito o servidor SSH não vem instalado. Se não o instalaram no inicio, para continuarem a configuração no conforto do “sofá” basta seguir a help do Debian e:

apt-get install openssh-server

E em principio já podem aceder remotamente a partir da vossa rede interna. No entanto, a partir do Debian 8 o acesso SSH remoto está desactivado por defeito. Para o activar, aceder a

nano /etc/ssh/sshd_config

e depois alterar a secção de “Authentication” para:

LoginGraceTime 1m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
MaxSessions 5

Para quem como eu tive alguns problemas de acesso através do putty, em que passado algum tempo, a conexão era dropada, alterar, mais abaixo, no ficheiro de configuração (apenas descomentar):

TCPKeepAlive yes

E não esquecer depois de ativar o serviço no arranque e reiniciar o servidor de SSH

update-rc.d ssh enable
service ssh restart

Pacotes Base

Estes são alguns dos pacotes que costumo instalar por defeito, e que neste caso, vamos precisar mais tarde.

apt-get install htop zip open-vm-tools

LAMP

Apache2

apt-get install apache2
apt-get install php php-mysql php-json php-gd php-mcrypt php-zip php-imap php-mbstring php-curl

Depois devem ser activados os seguintes modulos:

phpenmod mcrypt imap mbstring
a2enmod rewrite
service apache2 restart

PHP

Algumas alterações devem ser feitas no php.ini, das quais:

nano /etc/php/7.0/apache2/php.ini

max_execution_time = 180
max_input_time = 180
memory_limit = 256M
post_max_size = 50M
upload_max_filesize = 50M

Não esquecer de fazer reload ao Apache:

service apache2 reload

MySQL

Para instalar o servidor de base de dados, correr os seguintes comandos:

apt-get install mysql-server mysql-client

Um comando que deve sempre ser corrido é o que permite retirar as configurações por default do MySQL server, e caso se tenham esquecido, de atribuir uma password diferente ao root:

mysql_secure_installation

phpMyAdmin

Para que depois seja feita a administração das bases de dados, dá muito jeito ter o phpMyAdmin instalado

apt-get install mcrypt phpmyadmin

Uma das grandes preocupações que deve existir, é, configurar o acesso SSL:

nano /etc/phpmyadmin/config.inc.php

E adicionar a seguinte linha em “Server(s) configuration”

/**  * Server(s) configuration  */ 
$cfg['ForceSSL'] = 'true'; 
$i = 0;

Não esquecer que nesta configuração, o acesso ao phpMyAdmin deve ser feito pelo utilizador phpmyadmin que é configurado durante a instalação do mesmo e não como root.

EspoCRM

O EspoCRM têm uma serie de documentação que deve ser seguida, especialmente para o PHP, Apache, MySQL e nginx. Se tal como eu preferem Apache, então devem de seguir os passos que deixei acima. O manual de instalação está aqui e é similar a instalação de qualquer outra aplicação web.

Instalação

wget https://www.espocrm.com/downloads/EspoCRM-5.2.5.zip
unzip EspoCRM-5.2.5.zip
mv EspoCRM-5.2.5 espocrm
mv espocrm /var/www/html/
chown -R www-data:www-data espocrm/

Depois de colocado na directoria, e de se ter dado as devidas permissões, provavelmente terão de adicionar a seguinte linha ao:

nano /etc/apache2/apache2.conf

<Directory /var/www/html/espocrm/>
AllowOverride All
</Directory>

Em principio também será necessário correr este script para dar devidas permissões às pastas de trabalho:

cd /var/www/html/espocrm/
find . -type d -exec chmod 755 {} + && find . -type f -exec chmod 644 {} +;
find data custom -type d -exec chmod 775 {} + && find data custom -type f -exec chmod 664 {} +;

Cron

Por fim, o EspoCRM precisa de um cron para correr uma série de ferramentas que são usadas pela plataforma

crontab -e -u www-data

E inserir a seguinte linha:

* * * * * cd /var/www/html/espocrm; /usr/bin/php -f cron.php > /dev/null 2>&1

Deixe uma resposta

10 − six =