Jak zainstalować OroCRM na Ubuntu 16.04

OroCRM to darmowa i otwarta aplikacja CRM (Customer Relationship Manager) oparta na oprogramowaniu OroPlatform. OroPlatform to w pełni konfigurowalne oprogramowanie platformy aplikacji biznesowych typu open source. OroPlatform zapewnia wszystkie funkcje wymagane do stworzenia niestandardowej aplikacji. OroCRM jest zbudowany przy użyciu frameworka Symfony PHP i przechowuje dane na serwerze bazy danych MySQL / MariaDB. Jest to aplikacja CRM dla przedsiębiorstw, oferująca mnóstwo funkcji. Integruje się również z wieloma aplikacjami innych firm, takimi jak Magento Store, MailChimp, Zendesk i wieloma innymi. Jest wielojęzyczny i ma w pełni responsywny interfejs użytkownika, który umożliwia zarządzanie nim również przy użyciu urządzeń mobilnych.

Wymagania wstępne

W tym samouczku użyjemy crm.example.comjako nazwy domeny wskazanej na serwerze. Zamień wszystkie wystąpienia na crm.example.comswoją rzeczywistą nazwę domeny.

Zaktualizuj system podstawowy, korzystając z przewodnika Jak zaktualizować system Ubuntu 16.04 . Po zaktualizowaniu systemu przejdź do instalacji wymaganych zależności.

Zainstaluj Nginx i PHP 7

OroCRM można zainstalować na dowolnym produkcyjnym serwerze WWW obsługującym PHP. OroCRM obsługuje wszystkie wersje PHP większe niż 7.0. W tym samouczku użyjemy Nginx z PHP-FPM i PHP 7.1.

Zainstaluj Nginx.

sudo apt -y install nginx

Uruchom Nginx i włącz automatyczne uruchamianie podczas uruchamiania.

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7.1 nie jest dostępne w domyślnym aptrepozytorium. Najpierw dodaj repozytorium PPA dla PHP.

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Zainstaluj PHP 7.1 wraz z modułami PHP wymaganymi przez 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

Edytuj załadowany plik konfiguracyjny PHP.

sudo nano /etc/php/7.1/cli/php.ini

Znajdź następujące linie. Odkomentuj i wprowadź zmiany, jak pokazano.

date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate timezone

cgi.fix_pathinfo=0

Uruchom PHP-FPM i włącz uruchamianie przy starcie systemu.

sudo systemctl start php7.1-fpm
sudo systemctl enable php7.1-fpm

Zainstaluj MariaDB

MariaDB jest rozwidleniem MySQL typu open source. Dodaj repozytorium 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'

Zainstaluj MariaDB.

sudo apt -y update
sudo apt -y install mariadb-server

Uruchom MariaDB i włącz automatyczne uruchamianie podczas rozruchu.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Utwórz bazę danych dla OroCRM

Zaloguj się do powłoki MySQL jako użytkownik root, uruchamiając.

mysql -u root -p

Podaj hasło dla użytkownika root MariaDB, aby się zalogować.

Uruchom następujące zapytania, aby utworzyć bazę danych i użytkownika bazy danych dla instalacji 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;

Możesz zastąpić nazwę bazy danych oro_datai nazwę użytkownika oro_userzgodnie z własnym wyborem. Pamiętaj, aby zmienić StrongPasswordna bardzo silne hasło.

Zainstaluj Node.js i Composer

OroCRM wymaga również środowiska wykonawczego JavaScript Node.js. Plik Node.js zostanie wykorzystany przez OroCRM do skompilowania kodu JavaScript, który jest używany do budowy interfejsu użytkownika aplikacji. Domyślne repozytorium Ubuntu zawiera nieaktualną wersję Node.js, dlatego będziesz musiał dodać repozytorium Nodesource do swojego systemu, aby uzyskać najnowszą wersję.

sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -

Zainstaluj Node.js i Git.

sudo apt -y install nodejs git

Git będzie używany do klonowania repozytorium OroCRM z Internetu. Będziesz także musiał zainstalować Composer. Composer to narzędzie do zarządzania zależnościami dla aplikacji PHP. Ponieważ OroCRM jest napisany w frameworku Symfony, będziesz potrzebował Composer do zainstalowania zależności i aplikacji.

Zainstaluj Composer.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php

Przenieś Composer do /usr/binkatalogu, aby można go było uruchomić z dowolnego miejsca w systemie.

sudo mv composer.phar /usr/bin/composer

Udziel uprawnienia wykonawczego kompozytorowi.

sudo chmod +x /usr/bin/composer

Zainstaluj OroCRM

Istnieje wiele sposobów pobierania OroCRM na twój serwer. Najbardziej odpowiednim sposobem uzyskania najbardziej zaktualizowanej wersji jest sklonowanie repozytorium za pomocą Git.

Sklonuj repozytorium OroCRM.

cd /usr/share/nginx/
sudo git clone -b 2.4 https://github.com/oroinc/crm-application.git orocrm

Skopiuj przykładowy parametersplik do domyślnego parameterspliku używanego przez OroCRM.

cd orocrm
sudo cp app/config/parameters.yml.dist  app/config/parameters.yml

Zanim przejdziesz dalej, musisz zaktualizować parameters.ymlplik, aby podać dane bazy danych i e-mail.

sudo nano app/config/parameters.yml

Znajdź następujące linie.

database_driver:   pdo_mysql
database_host:     127.0.0.1
database_port:     ~
database_name:     oro_crm
database_user:     root
database_password: ~

Zaktualizuj powyższą konfigurację zgodnie z bazą danych utworzoną do przechowywania danych OroCRM. W naszym przypadku powinno to wyglądać tak.

database_driver:   pdo_mysql
database_host:     127.0.0.1
database_port:     3306
database_name:     oro_data
database_user:     oro_user
database_password: StrongPassword

Jeśli masz gotowy serwer SMTP i chcesz natychmiast korzystać z funkcji wysyłania wiadomości e-mail, możesz zaktualizować ustawienia programu pocztowego, jak pokazano.

mailer_transport:  smtp
mailer_host:       mail.example.com
mailer_port:       456
mailer_encryption: ssl
mailer_user:       [email protected]
mailer_password:   EMailPassword

Jeśli nie masz gotowego serwera poczty, możesz go na razie pominąć, pozostawiając istniejące wartości. Zawsze możesz zmienić konfigurację poczty e-mail za pomocą pulpitu nawigacyjnego.

Ustaw losowy ciąg znaków secret, zastępując ThisTokenIsNotSoSecretChangeIt. Do zakodowania danych sesji wymagany jest losowy ciąg. Przykładowy ciąg będzie wyglądał tak.

secret:            uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd

Możesz wygenerować losowy ciąg za pomocą pwgennarzędzia. Zainstaluj pwgen, uruchamiając sudo apt -y install pwgen. Aby wygenerować losowy ciąg, uruchom pwgen -s 64 1.

Zapisz plik i wyjdź z edytora. Zainstaluj wymagane zależności PHP przez kompozytora.

sudo composer install --prefer-dist --no-dev

Użycie --no-devzapewni, że Composer zainstaluje tylko zależności wymagane do uruchomienia serwera WWW w trybie produkcyjnym. Skrypt zajmie kilka minut, aby pobrać i zainstalować wymagane zależności PHP.

Zainstaluj aplikację.

sudo php app/console oro:install --env=prod

To zbuduje pamięć podręczną i zapisze bazę danych. Ten --env=prodparametr służy do instalowania aplikacji w trybie produkcyjnym. Instalacja będzie kontynuowana tylko wtedy, gdy wszystkie wymagane zależności zostaną zainstalowane i skonfigurowane.

Podczas instalacji pojawi się kilka pytań dotyczących konfiguracji konta administratora. Pytania są następujące.

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

Podaj informacje. Załaduj przykładowe dane, aby ocenić produkt przed użyciem go do produkcji.

Rozgrzej pamięć podręczną dokumentacji API:

sudo php app/console oro:api:doc:cache:clear

Konfigurowanie Nginx, zapory i uprawnień

Utwórz plik bloku serwera Nginx, aby udostępnić aplikację użytkownikom.

sudo nano /etc/nginx/sites-available/orocrm

Wypełnij plik.

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;
}

Pamiętaj, aby zmienić crm.example.comrzeczywistą nazwę domeny. Powyższa konfiguracja obejmuje również konfigurację wymaganą do kompresji GZip i buforowania przeglądarki. Kompresja Gzip kompresuje dane przed wysłaniem ich do przeglądarki. Włączenie buforowania przeglądarki powoduje przechowywanie zasobów statycznych w pamięci podręcznej WWW komputera klienckiego. Następnym razem, gdy użytkownik wejdzie na stronę, większość zawartości statycznej jest ładowana z własnej pamięci podręcznej użytkownika. Te dwie metody znacznie zwiększają szybkość aplikacji.

Włącz witrynę.

sudo ln -s /etc/nginx/sites-available/orocrm /etc/nginx/sites-enabled/orocrm

Sprawdź plik konfiguracyjny Nginx pod kątem błędów.

sudo nginx -t

Dane wyjściowe powinny wyglądać następująco.

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

Przekaż własność plików OroCRM użytkownikowi Nginx.

sudo chown -R www-data:www-data /usr/share/nginx/orocrm

Uruchom ponownie Nginx, aby zastosować nową konfigurację.

sudo systemctl restart nginx

Możesz teraz uzyskać dostęp do aplikacji pod adresem http://crm.example.com. Zaloguj się przy użyciu administratora usernamei passwordustawiłeś podczas instalacji.

Skonfiguruj zaplanowane zadania i zadania w tle

Aby automatycznie uruchomić zaplanowane zadania, możesz dodać pozycję zadania Cron. Otwarte crontab.

sudo crontab -e

Dodaj następujący wiersz do pliku.

*/1 * * * * /usr/bin/php /usr/share/nginx/orocrm/app/console oro:cron --env=prod > /dev/null

Spowoduje to uruchomienie zadania cron co minutę, aby zaplanowane zadania, takie jak kolejki e-mail, były przetwarzane najwcześniej.

Konieczne będzie także skonfigurowanie funkcji Supervisor, aby uruchomić usługę kolejki wiadomości. Wymagane jest, aby przynajmniej jeden proces był uruchomiony, aby konsument mógł przetworzyć wiadomości. Konsument może zwykle przerwać proces przesyłania wiadomości na wiele sposobów. Aby zapewnić ciągłość działania usługi, skorzystamy z usługi Supervisor. Skonfigurujemy Supervisora, aby równolegle uruchamiał cztery procesy. Jeśli którykolwiek z czterech procesów zostanie zatrzymany z jakiegokolwiek powodu, przełożony spróbuje go uruchomić ponownie.

Zainstaluj Supervisor.

sudo apt -y install supervisor

Utwórz nowy plik konfiguracyjny Supervisor.

sudo nano /etc/supervisor/conf.d/orocrm.conf

Dodaj następujące wiersze do pliku.

[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

Uruchom i włącz Supervisora, aby automatycznie uruchamiał się podczas rozruchu.

sudo systemctl restart supervisor
sudo systemctl enable supervisor

Możesz wyświetlić status procesów, uruchamiając następujące.

sudo supervisorctl status

Powinieneś zobaczyć, że procesy są uruchomione.

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 jest teraz zainstalowany na twoim serwerze. Teraz możesz używać aplikacji do zarządzania rutynowymi zadaniami swojej organizacji. Aby dowiedzieć się więcej o OroCRM, możesz odwiedzić jego oficjalną stronę internetową .



Leave a Comment

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.