OroCRM é um aplicativo de CRM (Customer Relationship Manager) gratuito e de código aberto desenvolvido no OroPlatform. OroPlatform é um software de plataforma de aplicativos de negócios de código aberto totalmente personalizável. OroPlatform fornece todos os recursos necessários para criar um aplicativo personalizado. O OroCRM é construído usando a estrutura PHP Symfony e armazena seus dados no servidor de banco de dados MySQL / MariaDB. É um aplicativo de CRM pronto para a empresa, oferecendo vários recursos. Ele também se integra a muitos aplicativos de terceiros, como Magento Store, MailChimp, Zendesk e muitos mais. É multilíngue e possui uma interface de usuário totalmente responsiva, que fornece a capacidade de gerenciá-lo usando dispositivos móveis também.
Pré-requisitos
Neste tutorial, usaremos crm.example.comcomo o nome de domínio apontado para o servidor. Substitua todas as ocorrências de crm.example.compelo seu nome de domínio real.
Atualize seu sistema base usando o guia Como atualizar o Ubuntu 16.04 . Depois que seu sistema for atualizado, continue com a instalação das dependências necessárias.
Instale o Nginx e o PHP 7
O OroCRM pode ser instalado em qualquer servidor Web de produção que suporte PHP. OroCRM suporta todas as versões do PHP maiores que 7.0. Neste tutorial, usaremos o Nginx com PHP-FPM e PHP 7.1.
Instale o Nginx.
sudo apt -y install nginx
Inicie o Nginx e permita que ele inicie automaticamente na inicialização.
sudo systemctl start nginx
sudo systemctl enable nginx
O PHP 7.1 não está disponível no aptrepositório padrão . Primeiro, adicione o repositório PPA para PHP.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
Instale o PHP 7.1 junto com os módulos PHP exigidos pelo OroCRM.
sudo apt update
sudo apt -y install php7.1 php7.1-fpm php7.1-common php7.1-curl php7.1-gd php7.1-intl php7.1-json php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-xml php7.1-xml php7.1-zip php7.1-tidy php7.1-soap php7.1-opcache
Edite o arquivo de configuração PHP carregado.
sudo nano /etc/php/7.1/cli/php.ini
Encontre as seguintes linhas. Remova o comentário e faça as alterações conforme mostrado.
date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate timezone
cgi.fix_pathinfo=0
Inicie o PHP-FPM e ative-o na inicialização.
sudo systemctl start php7.1-fpm
sudo systemctl enable php7.1-fpm
Instale o MariaDB
MariaDB é um fork de código aberto do MySQL. Adicione o repositório MariaDB 10.2.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://kartolo.sby.datautama.net.id/mariadb/repo/10.2/ubuntu xenial main'
Instale o MariaDB.
sudo apt -y update
sudo apt -y install mariadb-server
Inicie o MariaDB e ative-o automaticamente na inicialização.
sudo systemctl start mariadb
sudo systemctl enable mariadb
Crie o banco de dados para OroCRM
Efetue login no shell do MySQL como usuário root executando.
mysql -u root -p
Forneça a senha para o usuário root do MariaDB efetuar login.
Execute as seguintes consultas para criar um banco de dados e um usuário de banco de dados para instalação do 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;
Você pode substituir o nome do banco de dados oro_datae o nome de usuário de oro_useracordo com sua escolha. Certifique-se de alterar StrongPasswordpara uma senha muito forte.
Instale o Node.js e o Composer
OroCRM também requer o tempo de execução JavaScript do Node.js. O Node.js será usado pelo OroCRM para compilar o JavaScript, usado para criar a interface do usuário do aplicativo. O repositório padrão do Ubuntu contém uma versão desatualizada do Node.js, portanto, você precisará adicionar o repositório Nodesource ao seu sistema para obter a versão mais recente.
sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -
Instale o Node.js e o Git.
sudo apt -y install nodejs git
O Git será usado para clonar o repositório OroCRM da Internet. Você também precisará instalar o Composer. O Composer é uma ferramenta de gerenciamento de dependência para aplicativos PHP. Como o OroCRM está escrito na estrutura do Symfony, você precisará do Composer para instalar as dependências e o aplicativo.
Instale o Composer.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
Mova o Composer para o /usr/bindiretório para que ele possa ser executado de qualquer lugar do sistema.
sudo mv composer.phar /usr/bin/composer
Forneça permissão de execução ao compositor.
sudo chmod +x /usr/bin/composer
Instale o OroCRM
Existem várias maneiras de baixar o OroCRM no seu servidor. A maneira mais apropriada de obter a versão mais atualizada é clonar o repositório através do Git.
Clone o repositório OroCRM.
cd /usr/share/nginx/
sudo git clone -b 2.4 https://github.com/oroinc/crm-application.git orocrm
Copie o parametersarquivo de exemplo para o parametersarquivo padrão usado pelo OroCRM.
cd orocrm
sudo cp app/config/parameters.yml.dist  app/config/parameters.yml
Antes de prosseguir, você precisará atualizar o parameters.ymlarquivo para fornecer informações de banco de dados e email.
sudo nano app/config/parameters.yml
Encontre as seguintes linhas.
database_driver:   pdo_mysql
database_host:     127.0.0.1
database_port:     ~
database_name:     oro_crm
database_user:     root
database_password: ~
Atualize a configuração acima de acordo com o banco de dados que você criou para armazenar dados OroCRM. No nosso caso, deve ficar assim.
database_driver:   pdo_mysql
database_host:     127.0.0.1
database_port:     3306
database_name:     oro_data
database_user:     oro_user
database_password: StrongPassword
Se você tem um servidor SMTP pronto e deseja usar os recursos de envio de e-mail imediatamente, pode atualizar as configurações do mailer, como mostrado.
mailer_transport:  smtp
mailer_host:       mail.example.com
mailer_port:       456
mailer_encryption: ssl
mailer_user:       [email protected]
mailer_password:   EMailPassword
Se você não tiver um servidor de correio pronto, poderá ignorá-lo por enquanto, deixando os valores existentes. Você sempre pode alterar a configuração do email através do painel.
Defina uma sequência aleatória secretsubstituindo ThisTokenIsNotSoSecretChangeIt. Uma sequência aleatória é necessária para codificar os dados da sessão. Uma sequência de exemplo ficará assim.
secret:            uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd
Você pode gerar uma sequência aleatória usando o pwgenutilitário Instale pwgenexecutando sudo apt -y install pwgen. Para gerar uma sequência aleatória, execute pwgen -s 64 1.
Salve o arquivo e saia do editor. Instale as dependências necessárias do PHP através do compositor.
sudo composer install --prefer-dist --no-dev
O uso --no-devgarantirá que o Composer instale apenas as dependências necessárias para executar o servidor da web no modo de produção. O script levará alguns minutos para baixar e instalar as dependências necessárias do PHP.
Instale o aplicativo.
sudo php app/console oro:install --env=prod
Isso criará o cache da web e gravará o banco de dados. O --env=prodparâmetro é fornecido para instalar o aplicativo no modo de produção. A instalação continuará apenas se todas as dependências necessárias estiverem instaladas e configuradas.
Durante a instalação, você será solicitado a fazer algumas perguntas para configurar a conta de administrador. As perguntas são as seguintes.
Administration setup.
Application URL (http://localhost): http://crm.example.com
Organization name (OroCRM): My Org
Username (admin): admin
Email: [email protected]
First name: John
Last name: Doe
Password:
Load sample data (y/n): y
Forneça as informações. Carregue os dados da amostra para avaliar o produto antes de usá-lo para produção.
Aqueça o cache da documentação da API:
sudo php app/console oro:api:doc:cache:clear
Configurando Nginx, Firewall e Permissões
Crie um arquivo de bloqueio do servidor Nginx para servir o aplicativo aos usuários.
sudo nano /etc/nginx/sites-available/orocrm
Preencher o arquivo.
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:/run/php/php7.1-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;
}
Certifique-se de alterar o crm.example.comseu nome de domínio real. A configuração acima também inclui a configuração necessária para a compactação GZip e o cache do navegador. A compactação Gzip compacta os dados antes de enviá-los ao navegador. A ativação do cache do navegador armazena os recursos estáticos no cache da web do computador cliente. Na próxima vez que o usuário acessar o site, a maior parte do conteúdo estático será carregada do cache da web do usuário. Esses dois métodos aumentam drasticamente a velocidade do aplicativo.
Habilite o site.
sudo ln -s /etc/nginx/sites-available/orocrm /etc/nginx/sites-enabled/orocrm
Verifique o arquivo de configuração do Nginx quanto a erros.
sudo nginx -t
A saída deve ter a seguinte aparência.
user@vultr:/usr/share/nginx/orocrm$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Forneça a propriedade dos arquivos OroCRM ao usuário do Nginx.
sudo chown -R www-data:www-data /usr/share/nginx/orocrm
Reinicie o Nginx para aplicar a nova configuração.
sudo systemctl restart nginx
Agora você pode acessar o aplicativo em http://crm.example.com. Efetue login usando o administrador usernamee passwordvocê definiu durante a instalação.
Configurar tarefas agendadas e trabalhos em segundo plano
Para executar automaticamente as tarefas agendadas, você pode adicionar uma entrada de trabalho Cron. Aberto crontab.
sudo crontab -e
Adicione a seguinte linha ao arquivo.
*/1 * * * * /usr/bin/php /usr/share/nginx/orocrm/app/console oro:cron --env=prod > /dev/null
Isso executará o trabalho cron a cada minuto, para que as tarefas agendadas, como filas de email, sejam processadas mais cedo.
Você também precisará configurar o Supervisor para executar o serviço Fila de Mensagens. É necessário que pelo menos um processo esteja em execução o tempo todo para um consumidor processar as mensagens. Um consumidor normalmente pode interromper o processo da mensagem de várias maneiras. Para garantir que o serviço esteja em execução continuamente, usaremos o serviço Supervisor. Vamos configurar o Supervisor para executar quatro processos em paralelo. Se algum dos quatro processos for parado por qualquer motivo, o Supervisor tentará iniciá-lo novamente.
Instale o Supervisor.
sudo apt -y install supervisor
Crie um novo arquivo de configuração do Supervisor.
sudo nano /etc/supervisor/conf.d/orocrm.conf
Adicione as seguintes linhas ao arquivo.
[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=www-data
redirect_stderr=true
Inicie e ative o Supervisor para iniciar automaticamente no momento da inicialização.
sudo systemctl restart supervisor
sudo systemctl enable supervisor
Você pode visualizar o status dos processos executando o seguinte.
sudo supervisorctl status
Você deve ver que os processos estão em execução.
user@vultr:/usr/share/nginx/orocrm$ sudo supervisorctl status
oro_message_consumer:oro_message_consumer_00   RUNNING   pid 20809, uptime 0:00:01
oro_message_consumer:oro_message_consumer_01   RUNNING   pid 20808, uptime 0:00:01
oro_message_consumer:oro_message_consumer_02   RUNNING   pid 20807, uptime 0:00:01
oro_message_consumer:oro_message_consumer_03   RUNNING   pid 20806, uptime 0:00:01
OroCRM agora está instalado no seu servidor. Agora você pode usar o aplicativo para gerenciar as tarefas rotineiras da sua organização. Para saber mais sobre o OroCRM, você pode visitar o site oficial .