วิธีการติดตั้ง 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

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

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