วิธีการติดตั้ง Hubzilla บน Ubuntu 16.04

Hubzilla เป็นแพลตฟอร์มโอเพนซอร์ซเพื่อสร้างเว็บไซต์ที่เชื่อมต่อภายใน ในระบบนิเวศของ Hubzilla เซิร์ฟเวอร์ที่ใช้งาน Hubzilla เรียกว่า "ฮับ" และกลุ่มของฮับจำนวนมากเรียกว่า "กริด" ���ับภายในกริดสื่อสารกันเพื่อแบ่งปันข้อมูลเช่นข้อมูลประจำตัว ทุกคนสามารถเผยแพร่เนื้อหาแบบสาธารณะหรือแบบส่วนตัวโดยใช้ "แชแนล" ซึ่งอาจเป็นบุคคลบล็อกหรือฟอรัม ใช้เฟรมเวิร์ก Zot ที่ใช้ JSON เพื่อดำเนินการสื่อสารและบริการที่มีการกระจายอำนาจอย่างปลอดภัย Hubzilla นั้นเต็มไปด้วยคุณสมบัติต่างๆเช่นหัวข้อการสนทนาในเครือข่ายโซเชียลการจัดเก็บไฟล์บนคลาวด์ปฏิทินและที่อยู่ติดต่อเว็บเพจที่โฮสต์ด้วยระบบจัดการเนื้อหา wiki และอีกมากมาย

ข้อกำหนดเบื้องต้น

  • อินสแตนซ์ของเซิร์ฟเวอร์ Vultr Ubuntu 16.04
  • sudo ผู้ใช้
  • ชื่อโดเมนที่ชี้ไปยังอินสแตนซ์

สำหรับบทช่วยสอนนี้เราจะใช้ hubzilla.example.com เป็นชื่อโดเมนที่ชี้ไปยังอินสแตนซ์ Vultr โปรดตรวจสอบให้แน่ใจว่าได้แทนที่ชื่อโดเมนตัวอย่างทั้งหมดด้วยชื่อจริง

ปรับปรุงระบบฐานของคุณใช้คู่มือ วิธีการปรับปรุง Ubuntu 16.04 เมื่อระบบของคุณอัปเดตแล้วให้ดำเนินการติดตั้งการอ้างอิงต่อ

ติดตั้ง Nginx

Nginx เป็นเว็บเซิร์ฟเวอร์ที่ใช้งานจริงเพื่อเรียกใช้เว็บแอปพลิเคชัน

ติดตั้ง Nginx

sudo apt -y install nginx

เริ่ม Nginx และเปิดใช้งานให้รันโดยอัตโนมัติในเวลาบูต

sudo systemctl start nginx
sudo systemctl enable nginx

ติดตั้ง PHP 7.1

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

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 shell ในฐานะรูท

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 รหัสผ่านที่รัดกุมมาก

ติดตั้ง Hubzilla

ติดตั้ง 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 ที่ได้รับจาก Let's Encrypt certificate Authority

เพิ่มที่เก็บ 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

เปิดไฟล์งาน 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 ได้รับการติดตั้งและกำหนดค่าแล้วคุณสามารถเชิญเพื่อนของคุณและใช้แพลตฟอร์มได้ตามต้องการ



Leave a Comment

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน