نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
Hubzilla هو نظام أساسي مفتوح المصدر يستند إلى الويب لإنشاء مواقع ويب متصلة داخليًا. في النظام البيئي في Hubzilla ، يُطلق على الخادم الذي يقوم بتشغيل Hubzilla اسم "hub" ومجموعة من محاور متعددة تسمى "شبكة". تتواصل محاور الشبكة مع بعضها البعض لتبادل المعلومات مثل الهويات. يمكن لأي شخص نشر المحتويات بشكل عام أو خاص باستخدام "قناة" ، والتي يمكن أن تكون شخصًا أو مدونة أو منتدى. يستخدم إطار عمل Zot القائم على JSON لتنفيذ الاتصالات والخدمات اللامركزية الآمنة. Hubzilla مليء بالميزات مثل سلاسل مناقشة الشبكات الاجتماعية وتخزين الملفات السحابية والتقويم وجهات الاتصال واستضافة صفحة الويب مع نظام إدارة المحتوى و wiki والمزيد.
في هذا البرنامج التعليمي ، سنستخدم hubzilla.example.com
كاسم المجال الموجه نحو مثيل Vultr. يرجى التأكد من استبدال جميع حالات اسم النطاق المثال بالاسم الفعلي.
قم بتحديث نظامك الأساسي باستخدام الدليل كيفية تحديث Ubuntu 16.04 . بمجرد تحديث النظام الخاص بك ، انتقل إلى تثبيت التبعيات.
Nginx هو خادم إنتاج ويب لتشغيل تطبيقات الويب.
قم بتثبيت Nginx.
sudo apt -y install nginx
قم بتشغيل Nginx وتمكينه من التشغيل تلقائيًا في وقت التمهيد.
sudo systemctl start nginx
sudo systemctl enable nginx
يدعم Hubzilla إصدارات PHP أعلى من 5.6. سنقوم بتثبيت PHP 7.1 لضمان أقصى سرعة وأمان وتوافق. أضف مستودع Ubuntu لـ PHP 7.1.
sudo add-apt-repository --yes ppa:ondrej/php
sudo apt update
قم بتثبيت PHP الإصدار 7.1 مع الوحدات المطلوبة من قبل Hubzilla.
sudo apt -y install php7.1 php7.1-mysql php7.1-curl php7.1-json php7.1-cli php7.1-gd php7.1-xml php7.1-mbstring php7.1-fpm imagemagick php7.1-zip
قم بتحرير ملف تكوين PHP.
sudo nano /etc/php/7.1/fpm/php.ini
ابحث عن السطر التالي. فك التعليق وتعيين المنطقة الزمنية المناسبة.
date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate time zone
قم بتعيين حد ذاكرة مناسب على التكوين التالي. إعداده -1
سيعطي ذاكرة متوفرة غير محدودة للنص. أيضًا ، قم بزيادة الحد الأقصى لحدود تحميل الملف.
memory_limit = -1
upload_max_filesize = 100M
post_max_size = 100M
بعد ذلك ، ابحث عن السطر التالي وقم بتعيين قيمته إلى 0
بعد إلغاء التثبيت.
cgi.fix_pathinfo=0
ابدأ php7.1-fpm
وتمكينه من البدء تلقائيًا في وقت التمهيد.
sudo systemctl restart php7.1-fpm
sudo systemctl enable php7.1-fpm
إنشاء دليل جلسة وتوفير أذونات الكتابة.
sudo mkdir /var/lib/php/session
sudo chmod -R 777 /var/lib/php/session
الآن ، انتقل إلى تثبيت MariaDB.
MariaDB هي شوكة في MySQL. أضف مستودع MariaDB إلى نظامك ، حيث يحتوي مستودع Ubuntu الافتراضي على إصدار أقدم من MariaDB.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/ubuntu xenial main'
sudo apt update
قم بتثبيت MariaDB.
sudo apt -y install mariadb-server
قم بتوفير كلمة مرور قوية للمستخدم الجذر MariaDB عند سؤالك. قم بتشغيل MariaDB وتمكينه من البدء تلقائيًا في وقت التمهيد.
sudo systemctl start mariadb
sudo systemctl enable mariadb
قبل تكوين قاعدة البيانات ، ستحتاج إلى تأمين MariaDB. يمكنك تأمينه عن طريق تشغيل mysql_secure_installation
البرنامج النصي.
sudo mysql_secure_installation
ستتم مطالبتك بكلمة مرور جذر MariaDB الحالية. أد��ل كلمة المرور التي قمت بتعيينها أثناء التثبيت. سيتم سؤالك عما إذا كنت ترغب في تغيير كلمة المرور الحالية للمستخدم الجذر لخادم MariaDB. يمكنك تخطي تعيين كلمة مرور جديدة ، لأنك قدمت بالفعل كلمة مرور قوية أثناء التثبيت. أجب " Y
" على جميع الأسئلة الأخرى التي يتم طرحها.
قم بتسجيل الدخول إلى هيكل MySQL كجذر.
mysql -u root -p
أدخل كلمة المرور لمستخدم الجذر MariaDB لتسجيل الدخول.
قم بتشغيل الاستعلامات التالية لإنشاء قاعدة بيانات ومستخدم قاعدة بيانات لتثبيت Hubzilla.
CREATE DATABASE hubzilla_data;
CREATE USER 'hubzilla_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON hubzilla_data.* TO 'hubzilla_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
يمكنك استبدال اسم قاعدة البيانات واسم hubzilla_data
المستخدم hubzilla_user
وفقًا لاختيارك. يرجى التأكد من التغيير StrongPassword
إلى كلمة مرور قوية للغاية.
تثبيت Git. مطلوب Git لاستنساخ مستودع Hubzilla من Github.
sudo apt -y install git
قم بالتبديل إلى دليل جذر الويب واستنساخ مستودع Hubzilla.
cd /var/www
sudo git clone https://github.com/redmatrix/hubzilla.git hubzilla
إنشاء دليل جديد لتخزين بيانات Hubzilla.
cd hubzilla
sudo mkdir -p "store/[data]/smarty3"
sudo chmod -R 777 store
استنساخ وتثبيت إضافات Hubzilla.
sudo util/add_addon_repo https://github.com/redmatrix/hubzilla-addons.git hzaddons
sudo util/update_addon_repo hzaddons
توفير ملكية الدليل والملفات لمستخدم Nginx.
sudo chown -R www-data:www-data /var/www/hubzilla
من المهم أن يتم تثبيت SSL على موقع Hubzilla ، حيث يمكن اختراق بيانات تسجيل الدخول والبيانات الأخرى إذا لم يتم تشفيرها. في هذا البرنامج التعليمي ، سوف نستخدم شهادات SSL التي تم الحصول عليها من قبل هيئة تشفير الشهادة.
أضف مستودع Certbot.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
قم بتثبيت Certbot ، وهو تطبيق العميل لـ Let's Encrypt CA.
sudo apt -y install certbot
ملاحظة: للحصول على شهادات من Let's Encrypt CA ، يجب توجيه النطاق الذي سيتم إنشاء الشهادات من أجله إلى الخادم. إذا لم يكن الأمر كذلك ، قم بإجراء التغييرات اللازمة على سجلات DNS للمجال وانتظر DNS للنشر قبل إجراء طلب الشهادة مرة أخرى. يتحقق Certbot من سلطة المجال قبل تقديم الشهادات.
إنشاء شهادات SSL.
sudo certbot certonly --webroot -w /var/www/html -d hubzilla.example.com
من المرجح أن يتم تخزين الشهادات التي تم إنشاؤها /etc/letsencrypt/live/hubzilla.example.com/
. سيتم تخزين شهادة SSL كـ وسيتم تخزين fullchain.pem
المفتاح الخاص كـ privkey.pem
.
تنتهي صلاحية شهادات التشفير في غضون 90 يومًا ، وبالتالي يوصى بإعداد التجديد التلقائي للشهادات باستخدام وظائف Cron.
افتح ملف مهمة كرون.
sudo crontab -e
أضف السطر التالي في نهاية الملف.
30 5 * * * /usr/bin/certbot renew --quiet
سيتم تشغيل وظيفة cron المذكورة أعلاه كل يوم الساعة 5:30 صباحًا. إذا كانت الشهادة مستحقة للانتهاء ، فسيتم تجديدها تلقائيًا.
إنشاء ملف تكوين جديد لخادم Hubzilla.
sudo nano /etc/nginx/sites-available/hubzilla
تعبئة الملف.
server {
listen 80;
server_name hubzilla.example.com;
index index.php;
root /var/www/hubzilla;
rewrite ^ https://hubzilla.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name hubzilla.example.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/hubzilla.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hubzilla.example.com/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;
ssl_prefer_server_ciphers on;
fastcgi_param HTTPS on;
index index.php;
charset utf-8;
root /var/www/hubzilla;
access_log /var/log/nginx/hubzilla.log;
client_max_body_size 20m;
client_body_buffer_size 128k;
location / {
if ($is_args != "") {
rewrite ^/(.*) /index.php?q=$uri&$args last;
}
rewrite ^/(.*) /index.php?q=$uri last;
}
location ^~ /.well-known/ {
allow all;
rewrite ^/(.*) /index.php?q=$uri&$args last;
}
location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|map|ttf|woff|woff2|svg)$ {
expires 30d;
try_files $uri /index.php?q=$uri&$args;
}
location ~* \.(tpl|md|tgz|log|out)$ {
deny all;
}
location ~* \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\. {
deny all;
}
location ~ /store {
deny all;
}
}
قم بتنشيط التكوين.
sudo ln -s /etc/nginx/sites-available/hubzilla /etc/nginx/sites-enabled/hubzilla
اختبار تكوين خادم الويب 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
إذا لم تشاهد أي أخطاء في التكوين ، فأعد تشغيل Nginx حتى يصبح التكوين الجديد ساري المفعول.
sudo systemctl restart nginx
انتقل إلى https://hubzilla.example.com
استخدام متصفحك المفضل وسترى صفحة الويب التي تعرض واجهة "فحص النظام". سترى أن كل المتطلبات تمر في فحص النظام. في الواجهة التالية ، قدم تفاصيل قاعدة البيانات التي قمت بإنشائها سابقًا. بعد ذلك ، قدم البريد الإلكتروني للمشرف وعنوان URL لموقع الويب والمنطقة الزمنية. تم تثبيت Hubzilla الآن على الخادم الخاص بك ، يمكنك المتابعة لإنشاء مستخدم المسؤول باستخدام البريد الإلكتروني للمسؤول الذي استخدمته أثناء التثبيت.
أخيرًا ، ستحتاج إلى إعداد cron لتشغيل المهام المجدولة كل عشر دقائق.
قم بإنشاء ملف جديد لوظيفة cron.
sudo nano /etc/cron.d/hubzilla
تعبئة الملف بما يلي.
*/10 * * * * www-data cd /var/www/hubzilla; /usr/bin/php Zotlabs/Daemon/Master.php Cron
أعد تشغيل خدمة cron.
sudo systemctl restart cron
إذا كنت ترغب في إنشاء مجموعة محلية من الوثائق ، قم بتشغيل الأوامر التالية.
cd /var/www/hubzilla
util/importdoc
sudo chown www-data:www-data -R /var/www/hubzilla
تم تثبيت Hubzilla وتكوينه الآن ، يمكنك دعوة أصدقائك واستخدام النظام الأساسي حسب الرغبة.
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد