كيفية تثبيت OroCRM على أوبونتو 16.04

OroCRM هو تطبيق مجاني ومفتوح المصدر لإدارة علاقات العملاء (CRM) مبني على OroPlatform. OroPlatform هو برنامج منصة تطبيق مفتوح المصدر قابل للتخصيص بالكامل. يوفر لك OroPlatform جميع الميزات المطلوبة لإنشاء تطبيق مخصص. تم بناء OroCRM باستخدام إطار عمل PHP Symfony ويخزن بياناته في خادم قاعدة بيانات MySQL / MariaDB. وهو تطبيق CRM جاهز للمؤسسات يوفر العديد من الميزات. يتكامل أيضًا مع العديد من تطبيقات الجهات الخارجية مثل Magento Store و MailChimp و Zendesk وغيرها الكثير. إنه متعدد اللغات ولديه واجهة مستخدم مستجيبة بالكامل ، والتي توفر لك القدرة على إدارتها باستخدام الأجهزة المحمولة أيضًا.

المتطلبات الأساسية

في هذا البرنامج التعليمي ، سوف نستخدم crm.example.comاسم النطاق الموجه إلى الخادم. استبدل جميع حالات التكرار crm.example.comباسم نطاقك الفعلي.

قم بتحديث نظامك الأساسي باستخدام الدليل كيفية تحديث Ubuntu 16.04 . بمجرد تحديث النظام الخاص بك ، انتقل إلى تثبيت التبعيات المطلوبة.

قم بتثبيت Nginx و PHP 7

يمكن تثبيت OroCRM على أي خادم ويب إنتاج يدعم PHP. يدعم OroCRM جميع إصدارات PHP أكبر من 7.0. في هذا البرنامج التعليمي ، سنستخدم Nginx مع PHP-FPM و PHP 7.1.

قم بتثبيت Nginx.

sudo apt -y install nginx

قم بتشغيل Nginx وتمكينه من البدء تلقائيًا عند التمهيد.

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7.1 غير متوفر في aptالمستودع الافتراضي . أولاً ، أضف مستودع PPA لـ PHP.

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

قم بتثبيت PHP 7.1 مع وحدات PHP المطلوبة بواسطة 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

قم بتحرير ملف تكوين PHP المحمل.

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

ابحث عن الخطوط التالية. uncomment وقم بإجراء التغييرات كما هو موضح.

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

cgi.fix_pathinfo=0

قم بتشغيل PHP-FPM وتمكينه من البدء عند التمهيد.

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

قم بتثبيت MariaDB

MariaDB هو شوكة مفتوحة المصدر لـ MySQL. إضافة مستودع 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'

قم بتثبيت MariaDB.

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

قم بتشغيل MariaDB وتمكينه من البدء تلقائيًا عند التمهيد.

sudo systemctl start mariadb
sudo systemctl enable mariadb

إنشاء قاعدة بيانات OroCRM

قم بتسجيل الدخول إلى هيكل MySQL كمستخدم أساسي عن طريق التشغيل.

mysql -u root -p

أدخل كلمة المرور لمستخدم الجذر MariaDB لتسجيل الدخول.

قم بتشغيل الاستعلامات التالية لإنشاء قاعدة بيانات ومستخدم قاعدة بيانات لتثبيت 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;

يمكنك استبدال اسم قاعدة البيانات واسم oro_dataالمستخدم oro_userوفقًا لاختيارك. تأكد من التغيير StrongPasswordإلى كلمة مرور قوية جدًا.

قم بتثبيت Node.js و Composer

يتطلب OroCRM أيضًا وقت تشغيل JavaScript Node.js. سيتم استخدام Node.js بواسطة OroCRM لتجميع JavaScript ، والذي يتم استخدامه لبناء واجهة المستخدم الخاصة بالتطبيق. يحتوي المستودع الافتراضي لـ Ubuntu على إصدار قديم من Node.js ، وبالتالي ستحتاج إلى إضافة مستودع Nodesource إلى نظامك للحصول على أحدث إصدار.

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

قم بتثبيت Node.js و Git.

sudo apt -y install nodejs git

سيتم استخدام Git لاستنساخ مستودع OroCRM من الإنترنت. ستحتاج أيضًا إلى تثبيت Composer. Composer هو أداة إدارة التبعية لتطبيقات PHP. نظرًا لأن OroCRM مكتوب في إطار عمل Symfony ، ستحتاج إلى Composer لتثبيت التبعيات والتطبيق.

قم بتثبيت الملحن.

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

انقل Composer إلى /usr/binالدليل بحيث يمكن تنفيذه من أي مكان في النظام.

sudo mv composer.phar /usr/bin/composer

تقديم إذن تنفيذ إلى الملحن.

sudo chmod +x /usr/bin/composer

قم بتثبيت OroCRM

هناك العديد من الطرق لتنزيل OroCRM على الخادم الخاص بك. الطريقة الأكثر ملاءمة للحصول على الإصدار الأحدث هي استنساخ المستودع من خلال Git.

استنساخ مستودع OroCRM.

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

انسخ parametersملف المثال إلى parametersالملف الافتراضي الذي يستخدمه OroCRM.

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

قبل المضي قدمًا ، ستحتاج إلى تحديث parameters.ymlالملف لتوفير معلومات قاعدة البيانات والبريد الإلكتروني.

sudo nano app/config/parameters.yml

ابحث عن الخطوط التالية.

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

قم بتحدي�� التكوين أعلاه وفقًا لقاعدة البيانات التي قمت بإنشائها لتخزين بيانات OroCRM. في حالتنا ، يجب أن تبدو هكذا.

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

إذا كان لديك خادم SMTP جاهزًا وترغب في استخدام ميزات إرسال البريد الإلكتروني على الفور ، يمكنك تحديث إعدادات البريد كما هو موضح.

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

إذا لم يكن لديك خادم بريد جاهز ، يمكنك تخطيه الآن عن طريق ترك القيم الحالية. يمكنك دائمًا تغيير تكوين البريد الإلكتروني من خلال لوحة التحكم.

تعيين سلسلة عشوائية secretعن طريق استبدال ThisTokenIsNotSoSecretChangeIt. مطلوب سلسلة عشوائية لترميز بيانات الجلسة. سلسلة المثال ستبدو هكذا.

secret:            uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd

يمكنك إنشاء سلسلة عشوائية باستخدام pwgenالأداة المساعدة. التثبيت pwgenعن طريق التشغيل sudo apt -y install pwgen. لإنشاء سلسلة عشوائية ، قم بتشغيل pwgen -s 64 1.

احفظ الملف واخرج من المحرر. قم بتثبيت تبعيات PHP المطلوبة من خلال الملحن.

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

--no-devيضمن استخدام أن الملحن يقوم فقط بتثبيت التبعيات المطلوبة لتشغيل خادم الويب في وضع الإنتاج. سيستغرق البرنامج النصي بضع دقائق لتنزيل وتثبيت تبعيات PHP المطلوبة.

قم بتثبيت التطبيق.

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

سيؤدي هذا إلى إنشاء ذاكرة التخزين المؤقت على الويب وكتابة قاعدة البيانات. و --env=prodيتم توفير المعلمة لتثبيت التطبيق في وضع الإنتاج. سيستمر التثبيت فقط إذا تم تثبيت وتكوين جميع التبعيات المطلوبة.

أثناء التثبيت ، سيُطلب منك بعض الأسئلة لإعداد حساب المسؤول. الأسئلة هي كما يلي.

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

قدم المعلومات. قم بتحميل بيانات العينة لتقييم المنتج قبل استخدامه للإنتاج.

قم بتسخين ذاكرة التخزين المؤقت لوثائق API:

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

تكوين Nginx وجدار الحماية والأذونات

قم بإنشاء ملف كتلة خادم Nginx لخدمة التطبيق للمستخدمين.

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

تعبئة الملف.

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

تأكد من تغيير crm.example.comاسم المجال الفعلي الخاص بك. يتضمن التكوين أعلاه أيضًا التكوين المطلوب لضغط GZip وذاكرة التخزين المؤقت للمتصفح. ضغط Gzip يضغط البيانات قبل إرسالها إلى المستعرض. يؤدي تمكين التخزين المؤقت للمتصفح إلى تخزين الموارد الثابتة في ذاكرة التخزين المؤقت على الويب للكمبيوتر العميل. في المرة التالية التي يصل فيها المستخدم إلى الموقع ، يتم تحميل معظم المحتوى الثابت من ذاكرة الويب الخاصة بالمستخدم. تعمل هاتان الطريقتان على زيادة سرعة التطبيق بشكل كبير.

تمكين الموقع.

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

تحقق من ملف تكوين Nginx بحثًا عن أي أخطاء.

sudo nginx -t

يجب أن يبدو الإخراج كما يلي.

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

توفير ملكية ملفات OroCRM لمستخدم Nginx.

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

أعد تشغيل Nginx لتطبيق التكوين الجديد.

sudo systemctl restart nginx

يمكنك الآن الوصول إلى التطبيق على http://crm.example.com. قم بتسجيل الدخول باستخدام المسؤول usernameوقمت passwordبتعيينه أثناء التثبيت.

إعداد المهام المجدولة ووظائف الخلفية

لتشغيل المهام المجدولة تلقائيًا ، يمكنك إضافة إدخال مهمة Cron. افتح crontab.

sudo crontab -e

أضف السطر التالي إلى الملف.

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

سيؤدي ذلك إلى تشغيل وظيفة cron كل دقيقة حتى تتم معالجة المهام المجدولة مثل قوائم انتظار البريد الإلكتروني في أقرب وقت ممكن.

ستحتاج أيضًا إلى إعداد مشرف لتشغيل خدمة قائمة انتظار الرسائل. يلزم تشغيل عملية واحدة على الأقل في جميع الأوقات حتى يقوم المستهلك بمعالجة الرسائل. يمكن للمستهلك عادة مقاطعة عملية الرسالة بعدة طرق. لضمان تشغيل الخدمة بشكل مستمر ، سوف نستخدم خدمة المشرف. سنقوم بتكوين مشرف لتشغيل أربع عمليات بالتوازي. إذا تم إيقاف أي من العمليات الأربع لأي سبب من الأسباب ، فسيحاول المشرف بدء تشغيلها مرة أخرى.

تثبيت المشرف.

sudo apt -y install supervisor

إنشاء ملف تكوين مشرف جديد.

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

أضف الأسطر التالية إلى الملف.

[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

بدء وتمكين المشرف لبدء التشغيل تلقائيًا في وقت التمهيد.

sudo systemctl restart supervisor
sudo systemctl enable supervisor

يمكنك عرض حالة العمليات عن طريق تشغيل ما يلي.

sudo supervisorctl status

يجب أن ترى أن العمليات قيد التشغيل.

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 مثبت الآن على الخادم الخاص بك. يمكنك الآن استخدام التطبيق لإدارة المهام الروتينية لمؤسستك. لمعرفة المزيد عن OroCRM ، يمكنك زيارة موقعها الرسمي .



Leave a Comment

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد