Előfeltételek
Telepítse az Nginxet és a PHP 7-et
Telepítse a MariaDB-t
Telepítse a Node.js-t és a Composert
Telepítse az OroCRM-et
Az Nginx, a tűzfal és az engedélyek konfigurálása
Ütemezett feladatok és háttérmunkák beállítása
Az OroCRM egy ingyenes és nyílt forráskódú Customer Relationship Manager (CRM) alkalmazás, amely OroPlatformra épül. Az OroPlatform egy teljesen testreszabható nyílt forráskódú üzleti alkalmazásplatform szoftver. Az OroPlatform minden olyan funkciót biztosít Önnek, amely egy személyre szabott alkalmazás létrehozásához szükséges. Az OroCRM PHP Symfony keretrendszerre épül, és adatait a MySQL/MariaDB adatbázis-kiszolgálón tárolja. Ez egy vállalati használatra kész CRM-alkalmazás, amely rengeteg funkciót kínál. Számos harmadik féltől származó alkalmazással is integrálható, mint például a Magento Store, a MailChimp, a Zendesk és még sok más. Többnyelvű, és teljesen reszponzív felhasználói felülettel rendelkezik, amely lehetővé teszi, hogy mobil eszközökről is kezelje.
Előfeltételek
Ebben az oktatóanyagban crm.example.coma szerverre mutató domain névként fogjuk használni . Cserélje le az összes előfordulását crm.example.coma tényleges domain nevére.
Frissítse alaprendszerét az Ubuntu 16.04 frissítése útmutató segítségével . A rendszer frissítése után folytassa a szükséges függőségek telepítésével.
Telepítse az Nginxet és a PHP 7-et
Az OroCRM bármely PHP-t támogató éles webszerverre telepíthető. Az OroCRM támogatja a PHP 7.0-nál nagyobb verzióit. Ebben az oktatóanyagban az Nginxet PHP-FPM-mel és PHP 7.1-gyel fogjuk használni.
Telepítse az Nginx-et.
sudo apt -y install nginx
Indítsa el az Nginx-et, és engedélyezze, hogy rendszerindításkor automatikusan elinduljon.
sudo systemctl start nginx
sudo systemctl enable nginx
A PHP 7.1 nem érhető el az alapértelmezett apttárolóban. Először adja hozzá a PHP PPA-tárházát.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
Telepítse a PHP 7.1-et az OroCRM által igényelt PHP modulokkal együtt.
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
Szerkessze a betöltött PHP konfigurációs fájlt.
sudo nano /etc/php/7.1/cli/php.ini
Keresse meg a következő sorokat. Törölje a megjegyzéseket, és hajtsa végre a módosításokat az ábra szerint.
date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate timezone
cgi.fix_pathinfo=0
Indítsa el a PHP-FPM-et, és engedélyezze az indulást a rendszerindításkor.
sudo systemctl start php7.1-fpm
sudo systemctl enable php7.1-fpm
Telepítse a MariaDB-t
A MariaDB a MySQL nyílt forráskódú formája. Adja hozzá a MariaDB 10.2-es adattárat.
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'
Telepítse a MariaDB-t.
sudo apt -y update
sudo apt -y install mariadb-server
Indítsa el a MariaDB-t, és engedélyezze, hogy rendszerindításkor automatikusan elinduljon.
sudo systemctl start mariadb
sudo systemctl enable mariadb
Az OroCRM adatbázis létrehozása
Futtatással jelentkezzen be a MySQL shellbe root felhasználóként.
mysql -u root -p
Adja meg a MariaDB root felhasználó jelszavát a bejelentkezéshez.
Futtassa a következő lekérdezéseket adatbázis és adatbázis-felhasználó létrehozásához az OroCRM telepítéséhez.
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;
Az adatbázisnevet oro_dataés a felhasználónevet oro_usertetszés szerint lecserélheti . Ne felejtsen el StrongPasswordnagyon erős jelszót váltani .
Telepítse a Node.js-t és a Composert
Az OroCRM-hez a Node.js JavaScript futási ideje is szükséges. A Node.js-t az OroCRM fogja használni az alkalmazás felhasználói felületének felépítéséhez használt JavaScript lefordításához. Az Ubuntu alapértelmezett tárháza a Node.js elavult verzióját tartalmazza, ezért a legújabb verzió beszerzéséhez hozzá kell adnia a Nodesource tárat a rendszeréhez.
sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -
Telepítse a Node.js-t és a Git-et.
sudo apt -y install nodejs git
A Git az OroCRM adattár klónozására szolgál az internetről. A Composert is telepítenie kell. A Composer egy függőségkezelő eszköz PHP-alkalmazásokhoz. Mivel az OroCRM Symfony keretrendszerben íródott, a függőségek és az alkalmazás telepítéséhez a Composerre lesz szüksége.
Telepítse a Composert.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
Helyezze át a Composert a /usr/binkönyvtárba, hogy a rendszer bárhonnan végrehajtható legyen.
sudo mv composer.phar /usr/bin/composer
Adjon végrehajtási engedélyt a zeneszerzőnek.
sudo chmod +x /usr/bin/composer
Telepítse az OroCRM-et
Számos módja van az OroCRM letöltésének a szerverére. A legfrissebb verzió beszerzésének legmegfelelőbb módja az adattár klónozása a Giten keresztül.
Az OroCRM lerakat klónozása.
cd /usr/share/nginx/
sudo git clone -b 2.4 https://github.com/oroinc/crm-application.git orocrm
Másolja a példafájlt az OroCRM által használt parametersalapértelmezett parametersfájlba.
cd orocrm
sudo cp app/config/parameters.yml.dist app/config/parameters.yml
Mielőtt továbblépne, frissítenie kell a parameters.ymlfájlt, hogy adatbázis- és e-mail-adatokat biztosítson.
sudo nano app/config/parameters.yml
Keresse meg a következő sorokat.
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: ~
database_name: oro_crm
database_user: root
database_password: ~
Frissítse a fenti konfigurációt az OroCRM adatok tárolására létrehozott adatbázisnak megfelelően. A mi esetünkben ennek így kell kinéznie.
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: 3306
database_name: oro_data
database_user: oro_user
database_password: StrongPassword
Ha készen áll egy SMTP-kiszolgálója, és azonnal használni szeretné az e-mail küldési funkciókat, frissítheti a levelező beállításait az ábra szerint.
mailer_transport: smtp
mailer_host: mail.example.com
mailer_port: 456
mailer_encryption: ssl
mailer_user: mails@example.com
mailer_password: EMailPassword
Ha nincs kész levelezőkiszolgálója, akkor a meglévő értékek elhagyásával egyelőre kihagyhatja. Az e-mail beállításokat bármikor módosíthatja az irányítópulton keresztül.
Set a random string in secret by replacing ThisTokenIsNotSoSecretChangeIt. A random string is required to encode the session data. An example string will look like this.
secret: uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd
You can generate a random string using the pwgen utility. Install pwgen by running sudo apt -y install pwgen. To generate a random string, run pwgen -s 64 1.
Save the file and exit from the editor. Install the required PHP dependencies through composer.
sudo composer install --prefer-dist --no-dev
Using --no-dev will ensure that Composer only installs the dependencies required to run the web server in production mode. The script will take a few minutes to download and install the required PHP dependencies.
Install the application.
sudo php app/console oro:install --env=prod
This will build the web cache and write the database. The --env=prod parameter is provided to install the application in production mode. The installation will only proceed if all the required dependencies are installed and configured.
During the installation, you will be asked a few questions for setting up the administrator account. The questions are as follows.
Administration setup.
Application URL (http://localhost): http://crm.example.com
Organization name (OroCRM): My Org
Username (admin): admin
Email: mail@example.com
First name: John
Last name: Doe
Password:
Load sample data (y/n): y
Provide the information. Load the sample data to evaluate the product before using it for production.
Warm up the API documentation cache:
sudo php app/console oro:api:doc:cache:clear
Configuring Nginx, Firewall and Permissions
Create an Nginx server block file to serve the application to the users.
sudo nano /etc/nginx/sites-available/orocrm
Populate the file.
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;
}
Győződjön meg arról, crm.example.comhogy a tényleges domain nevet módosítja . A fenti konfiguráció tartalmazza a GZip-tömörítéshez és a böngésző gyorsítótárazásához szükséges konfigurációt is. A Gzip tömörítés tömöríti az adatokat, mielőtt elküldené a böngészőnek. A böngésző gyorsítótárának engedélyezése a statikus erőforrásokat az ügyfélszámítógép webes gyorsítótárában tárolja. Amikor a felhasználó legközelebb hozzáfér az oldalhoz, a statikus tartalom nagy része a felhasználó saját webes gyorsítótárából töltődik be. Ez a két módszer drámaian megnöveli az alkalmazás sebességét.
Engedélyezze a webhelyet.
sudo ln -s /etc/nginx/sites-available/orocrm /etc/nginx/sites-enabled/orocrm
Ellenőrizze az Nginx konfigurációs fájlját, hogy vannak-e hibák.
sudo nginx -t
A kimenetnek a következőképpen kell kinéznie.
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
Adja meg az OroCRM fájlok tulajdonjogát az Nginx felhasználónak.
sudo chown -R www-data:www-data /usr/share/nginx/orocrm
Az új konfiguráció alkalmazásához indítsa újra az Nginxet.
sudo systemctl restart nginx
Az alkalmazást most a címen érheti el http://crm.example.com. Jelentkezzen be az adminisztrátor usernameés passwordbeállította a telepítés során.
Ütemezett feladatok és háttérmunkák beállítása
Az ütemezett feladatok automatikus futtatásához hozzáadhat egy Cron-feladatbejegyzést. Nyissa meg crontab.
sudo crontab -e
Adja hozzá a következő sort a fájlhoz.
*/1 * * * * /usr/bin/php /usr/share/nginx/orocrm/app/console oro:cron --env=prod > /dev/null
Ez percenként futtatja a cron feladatot, így az ütemezett feladatok, például az e-mail-várólisták a legkorábban kerülnek feldolgozásra.
A Message Queue szolgáltatás futtatásához a Supervisort is be kell állítania. Ahhoz, hogy a fogyasztó feldolgozza az üzeneteket, legalább egy folyamatnak folyamatosan futnia kell. A fogyasztó általában sokféleképpen megszakíthatja az üzenetfolyamatot. A szolgáltatás folyamatos működése érdekében a Supervisor szolgáltatást fogjuk igénybe venni. A Supervisort négy folyamat párhuzamos futtatására fogjuk konfigurálni. Ha a négy folyamat bármelyike bármilyen okból leáll, a Supervisor megpróbálja újraindítani.
Telepítse a Supervisort.
sudo apt -y install supervisor
Hozzon létre egy új Supervisor konfigurációs fájlt.
sudo nano /etc/supervisor/conf.d/orocrm.conf
Adja hozzá a következő sorokat a fájlhoz.
[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
Indítsa el, és engedélyezze, hogy a Supervisor automatikusan elinduljon rendszerindításkor.
sudo systemctl restart supervisor
sudo systemctl enable supervisor
A folyamatok állapotát a következő futtatásával tekintheti meg.
sudo supervisorctl status
Látnia kell, hogy a folyamatok futnak.
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
Az OroCRM most telepítve van a szerverére. Most már használhatja az alkalmazást szervezete rutinfeladatainak kezelésére. Ha többet szeretne megtudni az OroCRM-ről, látogasson el a hivatalos webhelyére .