نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
OroCRM هو تطبيق مجاني ومفتوح المصدر لإدارة علاقات العملاء (CRM) مبني على OroPlatform. OroPlatform هو برنامج منصة تطبيق مفتوح المصدر قابل للتخصيص بالكامل. يوفر لك OroPlatform جميع الميزات المطلوبة لإنشاء تطبيق مخصص. تم بناء OroCRM باستخدام إطار عمل PHP Symfony ويخزن بياناته في خادم قاعدة بيانات MySQL / MariaDB. وهو تطبيق CRM جاهز للمؤسسات يوفر العديد من الميزات. كما أنه يتكامل مع العديد من تطبيقات الجهات الخارجية مثل Magento Store و MailChimp و Zendesk وما إلى ذلك. إنه متعدد اللغات ولديه واجهة مستخدم مستجيبة تمامًا ، والتي توفر لك القدرة على إدارتها باستخدام الأجهزة المحمولة أيضًا.
في هذا البرنامج التعليمي ، سوف نستخدم crm.example.com
اسم النطاق الموجه إلى الخادم. استبدل جميع حالات التكرار crm.example.com
باسم نطاقك الفعلي.
قم بتحديث نظامك الأساسي باستخدام الدليل كيفية تحديث CentOS 7 . بمجرد تحديث النظام الخاص بك ، انتقل إلى تثبيت التبعيات المطلوبة.
يمكن تثبيت OroCRM على أي خادم ويب إنتاج يدعم PHP. يدعم OroCRM جميع إصدارات PHP أكبر من 7.0. في هذا البرنامج التعليمي ، سنستخدم Nginx مع PHP-FPM و PHP 7.1.
قم بتثبيت Nginx.
sudo yum -y install nginx
قم بتشغيل Nginx وتمكينه من البدء تلقائيًا عند التمهيد.
sudo systemctl start nginx
sudo systemctl enable nginx
لا يتوفر PHP 7 في مستودع YUM الافتراضي ، ولكن يمكننا استخدام مستودع Remi للحصول على أحدث إصدارات PHP 7. وتثبيتها أولاً ، قم بإضافة مستودع 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
قم بتثبيت أحدث إصدار من PHP 7 مع وحدات PHP التي يتطلبها 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
تحرير ملف التكوين PHP الافتراضي.
sudo nano /etc/php.ini
ابحث عن الخطوط التالية. uncomment وقم بإجراء التغييرات كما هو موضح.
date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate timezone
memory_limit = 512M
cgi.fix_pathinfo=0
قم بتحرير ملف تكوين PHP-FPM.
sudo nano /etc/php-fpm.d/www.conf
بشكل افتراضي ، يتم تكوين PHP-FPM للتشغيل مع Apache والاستماع إلى المنفذ 9000
. سنحتاج إلى تغيير المستخدم والمجموعة ، وكذلك ملف مقبس يونكس الذي سيتم تشغيله عليه. ابحث عن الخطوط التالية وقم بإجراء التغييرات اللازمة كما هو موضح.
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
قم بتشغيل PHP-FPM وتمكينه من البدء عند التمهيد.
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
توفير ملكية ملف مقبس PHP-FPM لمستخدم Nginx.
sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock
MariaDB هو شوكة مفتوحة المصدر لـ MySQL. قم بتثبيت MariaDB.
sudo yum -y install mariadb mariadb-server
قم بتشغيل MariaDB وتمكينه من البدء تلقائيًا عند التمهيد.
sudo systemctl start mariadb
sudo systemctl enable mariadb
يأتي التثبيت الافتراضي لـ MariaDB مع عدد قليل من قواعد بيانات الاختبار والمستخدمين المجهولين. قبل تكوين قاعدة البيانات ، ستحتاج إلى تأمين خادم MariaDB أولاً. يمكنك تأمينه عن طريق تشغيل mysql_secure_installation
البرنامج النصي.
sudo mysql_secure_installation
ستتم مطالبتك بكلمة مرور جذر MariaDB الحالية. بشكل افتراضي ، لا توجد كلمة مرور جذرية في تثبيت MariaDB جديد. اضغط على Enter
المفتاح للمتابعة. قم بتعيين كلمة مرور قوية للمستخدم الأساسي لخادم MariaDB وأجب Y
عن جميع الأسئلة الأخرى المطروحة. الأسئلة المطروحة ذاتيّة.
قم بتسجيل الدخول إلى هيكل 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 ، والذي يتم استخدامه لبناء واجهة المستخدم الخاصة بالتطبيق. يحتوي المستودع الافتراضي لـ CentOS على إصدار قديم من Node.js ، وبالتالي ستحتاج إلى إضافة مستودع Nodesource إلى نظامك للحصول على أحدث إصدار.
sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
قم بتثبيت Node.js و Git.
sudo yum -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
php -r "unlink('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.3 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 yum -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 Organization
Username (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/conf.d/orocrm.conf
تعبئة الملف.
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;
}
تأكد من تغيير crm.example.com
اسم المجال الفعلي. يتضمن التكوين أعلاه أيضًا التكوين المطلوب لضغط GZip وذاكرة التخزين المؤقت للمتصفح. ضغط Gzip يضغط البيانات قبل إرسالها إلى المستعرض. يؤدي تمكين التخزين المؤقت للمتصفح إلى تخزين الموارد الثابتة في ذاكرة التخزين المؤقت على الويب للكمبيوتر العميل. في المرة التالية التي يصل فيها المستخدم إلى الموقع ، يتم تحميل معظم المحتوى الثابت من ذاكرة الويب الخاصة بالمستخدم. تعمل هاتان الطريقتان على زيادة سرعة التطبيق بشكل كبير.
تحقق من ملف تكوين Nginx بحثًا عن أي أخطاء.
sudo nginx -t
يجب أن يبدو الإخراج كما يلي.
[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
قم بتوفير ملكية ملفات OrOCRM لمستخدم Nginx.
sudo chown -R nginx:nginx /usr/share/nginx/orocrm
أعد تشغيل Nginx لتطبيق التكوين الجديد.
sudo systemctl restart nginx
إذا كنت تقوم بتشغيل جدار حماية على الخادم الخاص بك ، فستحتاج إلى تكوين جدار الحماية لتعيين استثناء لخدمة HTTP. اسمح لـ Nginx بالاتصال من خارج الشبكة.
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
يمكنك الآن الوصول إلى التطبيق على http://crm.example.com
. قم بتسجيل الدخول باستخدام اسم مستخدم وكلمة مرور المسؤول اللذين قمت بتعيينهما أثناء التثبيت.
لتشغيل المهام المجدولة تلقائيًا ، يمكنك إضافة إدخال مهمة Cron. افتح crontab
.
sudo crontab -e
أضف السطر التالي إلى الملف.
*/1 * * * * /usr/bin/php /usr/share/nginx/orocrm/app/console oro:cron --env=prod > /dev/null
سيؤدي ذلك إلى تشغيل وظيفة cron كل دقيقة حتى تتم معالجة المهام المجدولة مثل قوائم انتظار البريد الإلكتروني في أقرب وقت ممكن.
ستحتاج أيضًا إلى إعداد مشرف لتشغيل خدمة قائمة انتظار الرسائل. يلزم تشغيل عملية واحدة على الأقل في جميع الأوقات حتى يقوم المستهلك بمعالجة الرسائل. يمكن للمستهلك عادة مقاطعة عملية الرسالة بعدة طرق. لضمان تشغيل الخدمة بشكل مستمر ، سوف نستخدم خدمة المشرف. سنقوم بتكوين مشرف لتشغيل أربع عمليات بالتوازي. إذا تم إيقاف أي من العمليات الأربع لأي سبب ، فسيحاول المشرف بدء تشغيلها مرة أخرى.
تثبيت المشرف.
sudo yum -y install supervisor
قم بتحرير ملف تكوين المشرف.
sudo nano /etc/supervisord.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=nginx
redirect_stderr=true
بدء وتمكين المشرف لبدء التشغيل تلقائيًا في وقت التمهيد.
sudo systemctl start supervisord
sudo systemctl enable supervisord
يمكنك عرض حالة العمليات عن طريق تشغيل ما يلي.
sudo supervisorctl status
يجب أن ترى أن العمليات قيد التشغيل.
[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 مثبت الآن على الخادم الخاص بك. يمكنك الآن استخدام التطبيق لإدارة المهام الروتينية لمؤسستك. لمعرفة المزيد عن OroCRM ، يمكنك زيارة موقعها الرسمي .
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد