نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
OroCRM هو تطبيق مجاني ومفتوح المصدر لإدارة علاقات العملاء (CRM) مبني على OroPlatform. OroPlatform هو برنامج منصة تطبيق مفتوح المصدر قابل للتخصيص بالكامل. يوفر لك OroPlatform جميع الميزات المطلوبة لإنشاء تطبيق مخصص. تم بناء OroCRM باستخدام إطار عمل PHP Symfony ويخزن بياناته في خادم قاعدة بيانات MySQL / MariaDB. وهو تطبيق CRM جاهز للمؤسسات يوفر العديد من الميزات. يتكامل أيضًا مع العديد من تطبيقات الجهات الخارجية مثل Magento Store و MailChimp و Zendesk وغيرها الكثير. إنه متعدد اللغات ولديه واجهة مستخدم مستجيبة بالكامل ، والتي توفر لك القدرة على إدارتها باستخدام الأجهزة المحمولة أيضًا.
في هذا البرنامج التعليمي ، سوف نستخدم crm.example.com
اسم النطاق الموجه إلى الخادم. استبدل جميع حالات التكرار crm.example.com
باسم نطاقك الفعلي.
قم بتحديث نظامك الأساسي باستخدام الدليل كيفية تحديث Ubuntu 16.04 . بمجرد تحديث النظام الخاص بك ، انتقل إلى تثبيت التبعيات المطلوبة.
يمكن تثبيت 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 هو شوكة مفتوحة المصدر لـ 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
قم بتسجيل الدخول إلى هيكل 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
إلى كلمة مرور قوية جدًا.
يتطلب 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 على الخادم الخاص بك. الطريقة الأكثر ملاءمة للحصول على الإصدار الأحدث هي استنساخ المستودع من خلال 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 لخدمة التطبيق للمستخدمين.
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 ، يمكنك زيارة موقعها الرسمي .
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد