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. Ezenkívü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 stb. Többnyelvű, és teljesen reszponzív felhasználói felülettel rendelkezik, amely lehetővé teszi a mobileszközök használatával is.
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 a CentOS 7 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 yum -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 nem érhető el az alapértelmezett YUM lerakatban, de a Remi lerakat segítségével beszerezhetjük és telepíthetjük a PHP 7 legújabb buildjeit. Először is add hozzá és engedélyezd a Remi lerakat.
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
Telepítse a PHP 7 legújabb verzióját az OroCRM által igényelt PHP modulokkal együtt.
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
Szerkessze az alapértelmezett PHP konfigurációs fájlt.
sudo nano /etc/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
memory_limit = 512M
cgi.fix_pathinfo=0
Szerkessze a PHP-FPM konfigurációs fájlt.
sudo nano /etc/php-fpm.d/www.conf
Alapértelmezés szerint a PHP-FPM úgy van beállítva, hogy az Apache-val fusson, és figyeljen a portra 9000. Módosítanunk kell a felhasználót és a csoportot, valamint azt a Unix socket fájlt, amelyen futni fog. Keresse meg a következő sorokat, és hajtsa végre a szükséges módosításokat az ábra szerint.
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
Indítsa el a PHP-FPM-et, és engedélyezze az indulást a rendszerindításkor.
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
Biztosítsa a PHP-FPM socket fájl tulajdonjogát az Nginx felhasználó számára.
sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock
Telepítse a MariaDB-t
A MariaDB a MySQL nyílt forráskódú formája. Telepítse a MariaDB-t.
sudo yum -y install mariadb 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
A MariaDB alapértelmezett telepítése néhány tesztadatbázissal és névtelen felhasználóval érkezik. Az adatbázis konfigurálása előtt először biztonságossá kell tennie a MariaDB szervert. A mysql_secure_installationszkript futtatásával biztosíthatja .
sudo mysql_secure_installation
Meg kell adnia a jelenlegi MariaDB root jelszót. Alapértelmezés szerint nincs root jelszó egy friss MariaDB telepítésben. Nyomja meg a Entergombot a folytatáshoz. Állítson be erős jelszót a MariaDB-kiszolgáló root felhasználójának, és válaszoljon Yaz összes többi kérdésre. A feltett kérdések magától értetődőek.
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. A CentOS 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://rpm.nodesource.com/setup_8.x | sudo bash -
Telepítse a Node.js-t és a Git-et.
sudo yum -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
php -r "unlink('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.3 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
If you have an SMTP server ready and you wish to use email sending features immediately, you can update the mailer settings as shown.
mailer_transport: smtp
mailer_host: mail.example.com
mailer_port: 456
mailer_encryption: ssl
mailer_user: mails@example.com
mailer_password: EMailPassword
If you do not have a mail server ready, you can skip it for now by leaving the existing values. You can always change email configuration through the dashboard.
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 utility by running sudo yum -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 the 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 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 Organization
Username (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
Hozzon létre egy Nginx szerver blokkfájlt az alkalmazás kiszolgálásához a felhasználók számára.
sudo nano /etc/nginx/conf.d/orocrm.conf
Töltse fel a fájlt.
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;
}
Győződjön meg róla, hogy megváltoztatta a crm.example.comtényleges domain nevét. 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.
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 ~]$ 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 nginx:nginx /usr/share/nginx/orocrm
Az új konfiguráció alkalmazásához indítsa újra az Nginxet.
sudo systemctl restart nginx
Ha tűzfalat futtat a kiszolgálón, akkor a tűzfalat úgy kell konfigurálnia, hogy kivételt állítson be a HTTP szolgáltatáshoz. Engedélyezze az Nginx számára a csatlakozást a hálózaton kívülről.
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
Az alkalmazást most a címen érheti el http://crm.example.com. Jelentkezzen be a telepítés során megadott rendszergazdai felhasználónévvel és jelszóval.
Ü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 yum -y install supervisor
Szerkessze a Supervisor konfigurációs fájlt.
sudo nano /etc/supervisord.conf
Adja hozzá a következő sorokat a fájl végéhez.
[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
Indítsa el, és engedélyezze, hogy a Supervisor automatikusan elinduljon rendszerindításkor.
sudo systemctl start supervisord
sudo systemctl enable supervisord
A folyamatok állapotát a következő futtatásával tekintheti meg.
sudo supervisorctl status
Látnia kell, hogy a folyamatok futnak.
[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
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 .