Jak zainstalować OroCRM na CentOS 7

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 itp. 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

  • Instancja serwera Vultr CentOS 7.
  • Użytkownik sudo .

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 za pomocą przewodnika Jak zaktualizować CentOS 7 . 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 yum -y install nginx

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

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7 nie jest dostępne w domyślnym repozytorium YUM, ale możemy użyć repozytorium Remi, aby uzyskać i zainstalować najnowsze wersje PHP 7. Najpierw dodaj i włącz repozytorium Remi.

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php71

Zainstaluj najnowszą wersję PHP 7 wraz z modułami PHP wymaganymi przez OroCRM.

sudo yum -y install php php-fpm php-ctype php-curl php-fileinfo php-gd php-intl php-json php-mbstring php-mcrypt php-mysql php-pcre php-simplexml php-tokenizer php-xml php-zip php-tidy php-soap php-opcache php-posix

Edytuj domyślny plik konfiguracyjny PHP.

sudo nano /etc/php.ini

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

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

memory_limit = 512M
cgi.fix_pathinfo=0

Edytuj plik konfiguracyjny PHP-FPM.

sudo nano /etc/php-fpm.d/www.conf

Domyślnie PHP-FPM jest skonfigurowany do działania z Apache i nasłuchiwania portu 9000. Będziemy musieli zmienić użytkownika i grupę, a także plik gniazda Unix, na którym będzie działał. Znajdź następujące wiersze i wprowadź niezbędne zmiany, jak pokazano.

user = nginx
group = nginx

;listen = 127.0.0.1:9000
;Comment out or remove the above line and add the following line.
listen = /var/run/php-fpm/php-fpm.sock

listen.owner = nobody
listen.group = nobody

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

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Przekaż własność pliku gniazda PHP-FPM użytkownikowi Nginx.

sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock

Zainstaluj MariaDB

MariaDB jest rozwidleniem MySQL typu open source. Zainstaluj MariaDB.

sudo yum -y install mariadb mariadb-server

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

sudo systemctl start mariadb
sudo systemctl enable mariadb

Domyślna instalacja MariaDB zawiera kilka testowych baz danych i anonimowych użytkowników. Przed skonfigurowaniem bazy danych musisz najpierw zabezpieczyć serwer MariaDB. Możesz to zabezpieczyć, uruchamiając mysql_secure_installationskrypt.

sudo mysql_secure_installation

Zostaniesz poproszony o podanie bieżącego hasła roota MariaDB. Domyślnie w nowej instalacji MariaDB nie ma hasła roota. Naciśnij Enterklawisz, aby kontynuować. Ustaw silne hasło dla użytkownika root na swoim serwerze MariaDB i odpowiedz Yna wszystkie pozostałe pytania. Zadane pytania są oczywiste.

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 CentOS zawiera nieaktualną wersję Node.js, dlatego będziesz musiał dodać repozytorium Nodesource do swojego systemu, aby uzyskać najnowszą wersję.

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

Zainstaluj Node.js i Git.

sudo yum -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
php -r "unlink('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.3 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 pwgennarzędzie, uruchamiając sudo yum -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-devspowoduje, że Kompozytor 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 Organization
Username (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/conf.d/orocrm.conf

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:/var/run/php-fpm/php-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.

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

sudo nginx -t

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

[user@vultr ~]$ 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 nginx:nginx /usr/share/nginx/orocrm

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

sudo systemctl restart nginx

Jeśli używasz zapory na swoim serwerze, musisz skonfigurować zaporę, aby ustawić wyjątek dla usługi HTTP. Pozwól Nginx na łączenie się spoza sieci.

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload

Możesz teraz uzyskać dostęp do aplikacji pod adresem http://crm.example.com. Zaloguj się przy użyciu nazwy użytkownika i hasła administratora ustawionych 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, Inspektor spróbuje go uruchomić ponownie.

Zainstaluj Supervisor.

sudo yum -y install supervisor

Edytuj plik konfiguracyjny Supervisor.

sudo nano /etc/supervisord.conf

Dodaj następujące wiersze na końcu 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=nginx
redirect_stderr=true

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

sudo systemctl start supervisord
sudo systemctl enable supervisord

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

sudo supervisorctl status

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

[user@vultr ~]$ sudo supervisorctl status
oro_message_consumer:oro_message_consumer_00   RUNNING   pid 13596, uptime 0:02:13
oro_message_consumer:oro_message_consumer_01   RUNNING   pid 13595, uptime 0:02:13
oro_message_consumer:oro_message_consumer_02   RUNNING   pid 13594, uptime 0:02:13
oro_message_consumer:oro_message_consumer_03   RUNNING   pid 13593, uptime 0:02:13

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.