Cara Memasang Hubzilla di Ubuntu 16.04

Hubzilla adalah platform berbasis web sumber terbuka untuk membuat situs web yang terhubung secara internal. Dalam ekosistem Hubzilla, server yang menjalankan Hubzilla disebut "hub" dan sekelompok beberapa hub disebut "grid". Hub di dalam kisi berkomunikasi satu sama lain untuk berbagi informasi seperti identitas. Siapa pun dapat mempublikasikan konten secara publik atau pribadi menggunakan "saluran", yang dapat berupa orang, blog, atau forum. Ia menggunakan kerangka kerja Zot berbasis JSON untuk mengimplementasikan komunikasi dan layanan terdesentralisasi yang aman. Hubzilla dikemas dengan fitur-fitur seperti utas diskusi jejaring sosial, penyimpanan file cloud, kalender dan kontak, hosting halaman web dengan sistem manajemen konten, wiki, dan banyak lagi.

Prasyarat

  • Contoh server Vultr Ubuntu 16.04.
  • Seorang pengguna sudo .
  • Sebuah nama domain menunjuk ke arah instance.

Untuk tutorial ini, kita akan menggunakan hubzilla.example.com nama domain yang menunjuk ke instance Vultr. Pastikan untuk mengganti semua kemunculan nama domain contoh dengan yang sebenarnya.

Perbarui sistem basis Anda menggunakan panduan Cara Memperbarui Ubuntu 16.04 . Setelah sistem Anda diperbarui, lanjutkan untuk menginstal dependensi.

Instal Nginx

Nginx adalah server web produksi untuk menjalankan aplikasi web.

Instal Nginx.

sudo apt -y install nginx

Mulai Nginx dan aktifkan secara otomatis saat boot.

sudo systemctl start nginx
sudo systemctl enable nginx

Instal PHP 7.1

Hubzilla mendukung versi PHP di atas 5.6. Kami akan menginstal PHP 7.1 untuk memastikan kecepatan, keamanan, dan kompatibilitas maksimum. Tambahkan repositori Ubuntu untuk PHP 7.1.

sudo add-apt-repository --yes ppa:ondrej/php
sudo apt update

Instal PHP versi 7.1 bersama dengan modul yang diperlukan oleh 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

Edit file konfigurasi PHP.

sudo nano /etc/php/7.1/fpm/php.ini

Temukan baris berikut. Batalkan komentar dan atur zona waktu yang sesuai.

date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate time zone

Tetapkan batas memori yang sesuai pada konfigurasi selanjutnya. Menyetelnya -1 akan memberikan memori yang tidak terbatas tersedia untuk skrip. Juga, tambahkan batas unggah file maksimum.

memory_limit = -1
upload_max_filesize = 100M
post_max_size = 100M

Selanjutnya, cari baris berikut dan atur nilainya 0 setelah membatalkan komentar.

cgi.fix_pathinfo=0

Mulai php7.1-fpm dan aktifkan untuk memulai secara otomatis saat boot.

sudo systemctl restart php7.1-fpm
sudo systemctl enable php7.1-fpm

Buat direktori sesi dan berikan izin menulis.

sudo mkdir /var/lib/php/session
sudo chmod -R 777 /var/lib/php/session

Sekarang, lanjutkan ke instalasi MariaDB.

Instal MariaDB

MariaDB adalah garpu dari MySQL. Tambahkan repositori MariaDB ke sistem Anda, karena repositori Ubuntu default berisi versi yang lebih lama dari 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

Instal MariaDB.

sudo apt -y install mariadb-server

Berikan kata sandi yang kuat untuk pengguna root MariaDB saat ditanya. Mulai MariaDB dan aktifkan untuk memulai secara otomatis saat boot.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Sebelum mengkonfigurasi basis data, Anda perlu mengamankan MariaDB. Anda dapat mengamankannya dengan menjalankan mysql_secure_installation skrip.

sudo mysql_secure_installation

Anda akan dimintai kata sandi root MariaDB saat ini. Berikan kata sandi yang telah Anda tentukan selama instalasi. Anda akan ditanya apakah Anda ingin mengubah kata sandi yang ada dari pengguna root dari server MariaDB Anda. Anda dapat melewati pengaturan kata sandi baru, karena Anda telah memberikan kata sandi yang kuat selama instalasi. Jawab " Y" untuk semua pertanyaan lain yang ditanyakan.

Masuk ke shell MySQL sebagai root.

mysql -u root -p

Berikan kata sandi untuk pengguna root MariaDB untuk masuk.

Jalankan pertanyaan berikut untuk membuat database dan pengguna basis data untuk instalasi 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;

Anda dapat mengganti nama database hubzilla_data dan nama pengguna hubzilla_user sesuai pilihan Anda. Pastikan untuk mengubah StrongPassword kata sandi yang sangat kuat.

Instal Hubzilla

Instal Git. Git diperlukan untuk mengkloning repositori Hubzilla dari Github.

sudo apt -y install git

Beralih ke direktori root web dan klon repositori Hubzilla.

cd /var/www
sudo git clone https://github.com/redmatrix/hubzilla.git hubzilla

Buat direktori baru untuk menyimpan data Hubzilla.

cd hubzilla
sudo mkdir -p "store/[data]/smarty3"
sudo chmod -R 777 store

Klon dan instal addon Hubzilla.

sudo util/add_addon_repo https://github.com/redmatrix/hubzilla-addons.git hzaddons
sudo util/update_addon_repo hzaddons

Berikan kepemilikan direktori dan file kepada pengguna Nginx.

sudo chown -R www-data:www-data /var/www/hubzilla

Buat Host Virtual

SSL harus diinstal di situs Hubzilla, karena login dan data lain dapat dikompromikan jika tidak dienkripsi. Dalam tutorial ini, kita akan menggunakan sertifikat SSL yang diperoleh oleh Let's Encrypt otoritas sertifikat.

Tambahkan repositori Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Instal Certbot, yang merupakan aplikasi klien untuk Let's Encrypt CA.

sudo apt -y install certbot

Catatan: Untuk mendapatkan sertifikat dari Let's Encrypt CA, domain tempat sertifikat akan dibuat harus diarahkan ke server. Jika tidak, buat perubahan yang diperlukan pada catatan DNS domain dan tunggu hingga DNS menyebar sebelum membuat permintaan sertifikat lagi. Certbot memeriksa otoritas domain sebelum memberikan sertifikat.

Buat sertifikat SSL.

sudo certbot certonly --webroot -w /var/www/html -d hubzilla.example.com

Sertifikat yang dihasilkan cenderung disimpan di /etc/letsencrypt/live/hubzilla.example.com/. Sertifikat SSL akan disimpan sebagai fullchain.pem dan kunci pribadi akan disimpan sebagai privkey.pem.

Mari Enkripsi sertifikat kedaluwarsa dalam 90 hari, oleh karena itu disarankan untuk mengatur perpanjangan otomatis sertifikat menggunakan pekerjaan Cron.

Buka file tugas cron.

sudo crontab -e

Tambahkan baris berikut di akhir file.

30 5 * * * /usr/bin/certbot renew --quiet

Pekerjaan cron di atas akan berjalan setiap hari pada pukul 5:30 pagi. Jika sertifikat jatuh tempo, sertifikat itu akan diperpanjang secara otomatis.

Buat file konfigurasi baru untuk Hubzilla Server.

sudo nano /etc/nginx/sites-available/hubzilla

Mengisi file.

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;
    }
}

Aktifkan konfigurasi.

sudo ln -s /etc/nginx/sites-available/hubzilla /etc/nginx/sites-enabled/hubzilla

Uji konfigurasi server web Nginx.

sudo nginx -t

Anda akan melihat output berikut.

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

Jika Anda tidak melihat kesalahan dalam konfigurasi, mulai ulang Nginx sehingga konfigurasi baru dapat berlaku.

sudo systemctl restart nginx

Membungkus

Arahkan ke https://hubzilla.example.commenggunakan browser favorit Anda dan Anda akan melihat halaman web yang menunjukkan antarmuka "pemeriksaan sistem". Anda akan melihat bahwa setiap persyaratan lulus dalam pemeriksaan sistem. Pada antarmuka berikutnya, berikan detail basis data yang telah Anda buat sebelumnya. Selanjutnya, berikan email administrator, URL situs web, dan zona waktu. Hubzilla sekarang diinstal pada server Anda, Anda dapat melanjutkan untuk membuat pengguna administrator dengan email administrator yang Anda gunakan selama instalasi.

Terakhir, Anda perlu mengatur cron untuk menjalankan tugas yang dijadwalkan setiap sepuluh menit.

Buat file baru untuk pekerjaan cron.

sudo nano /etc/cron.d/hubzilla

Isi file dengan yang berikut ini.

*/10 * * * * www-data cd /var/www/hubzilla; /usr/bin/php Zotlabs/Daemon/Master.php Cron

Mulai ulang layanan cron.

sudo systemctl restart cron

Jika Anda ingin membuat kumpulan dokumentasi lokal, jalankan perintah berikut.

cd /var/www/hubzilla
util/importdoc
sudo chown www-data:www-data -R /var/www/hubzilla

Hubzilla sekarang diinstal dan dikonfigurasi, Anda dapat mengundang teman-teman Anda dan menggunakan platform yang diinginkan.



Leave a Comment

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Pelajari langkah-langkah untuk memasang Panel Kontrol Hosting Mudah (EHCP) di Ubuntu 16.04 dengan panduan ini.

Cara Memasang Graylog Server pada CentOS 7

Cara Memasang Graylog Server pada CentOS 7

Menggunakan Sistem yang Berbeda? Graylog server adalah perangkat lunak manajemen log sumber terbuka siap pakai perusahaan. Ia mengumpulkan log dari berbagai sumber dan menganalisis

Cara Memasang Anchor CMS pada Fedora 26 LAMP VPS

Cara Memasang Anchor CMS pada Fedora 26 LAMP VPS

Menggunakan Sistem yang Berbeda? Anchor CMS adalah Content Engine System (CMS) Blog Engine yang super-sederhana dan sangat ringan, gratis, dan terbuka

Siapkan Berbagi NFS di Debian

Siapkan Berbagi NFS di Debian

NFS adalah sistem file berbasis jaringan yang memungkinkan komputer untuk mengakses file di seluruh jaringan komputer. Panduan ini menjelaskan bagaimana Anda dapat mengekspos folder melalui NF

Cara Memasang GitBucket di Ubuntu 16.04

Cara Memasang GitBucket di Ubuntu 16.04

Panduan ini mencakup instalasi dasar dan pengaturan GitBucket untuk instance Vultr yang menjalankan Ubuntu 16.04, dan mengasumsikan bahwa Anda menjalankan perintah sebagai

Cara Memasang Directus 6.4 CMS pada Fedora 26 LAMP VPS

Cara Memasang Directus 6.4 CMS pada Fedora 26 LAMP VPS

Menggunakan Sistem yang Berbeda? Directus 6.4 CMS adalah Headless Content Management System (CMS) yang kuat dan fleksibel, gratis dan open source yang menyediakan pengembang

Cara Memasang Mattermost 5.2 di Ubuntu 16.04

Cara Memasang Mattermost 5.2 di Ubuntu 16.04

Menggunakan Sistem yang Berbeda? Mattermost adalah sumber terbuka, alternatif yang di-host-sendiri ke layanan pesan Slack SAAS. Dengan kata lain, dengan Mattermost, Anda ca

Menyiapkan Server TeamTalk di Linux

Menyiapkan Server TeamTalk di Linux

TeamTalk adalah sistem konferensi yang memungkinkan pengguna untuk memiliki percakapan audio / video berkualitas tinggi, obrolan teks, transfer file, dan berbagi layar. Itu saya

Menggunakan kunci SSH Anda untuk masuk ke pengguna non-root

Menggunakan kunci SSH Anda untuk masuk ke pengguna non-root

Vultr menyediakan fitur yang memungkinkan Anda untuk melakukan pra-instal kunci SSH setelah membuat instance baru. Ini memungkinkan Anda untuk mengakses pengguna root server, namun, th

Cara Menginstal PostgreSQL 11.1 Di Arch Linux

Cara Menginstal PostgreSQL 11.1 Di Arch Linux

Prasyarat Server Vultr berjalan terbaru Arch Linux (lihat artikel ini.) Akses Sudo. Perintah yang diperlukan untuk dijalankan karena root diawali oleh #, dan satu

Cara Memasang Manajer File Terminal Ranger di Linux

Cara Memasang Manajer File Terminal Ranger di Linux

Ranger adalah manajer file berbasis baris perintah dengan binding kunci VI. Ini memberikan antarmuka kutukan minimalis dan bagus dengan tampilan pada hierarki direktori

Cara Memasang Redmine di Ubuntu 16.04

Cara Memasang Redmine di Ubuntu 16.04

Menggunakan Sistem yang Berbeda? Redmine adalah alat manajemen proyek berbasis web gratis dan open source. Itu ditulis dalam Ruby on Rails dan mendukung banyak database

Cara Membangun Brotli Dari Sumber di Ubuntu 18.04 LTS

Cara Membangun Brotli Dari Sumber di Ubuntu 18.04 LTS

Menggunakan Sistem yang Berbeda? Brotli adalah metode kompresi baru dengan rasio kompresi yang lebih baik daripada GZIP. Kode sumbernya dihosting secara publik di Githu ini

Atur Akun Pengguna khusus SFTP di CentOS 7

Atur Akun Pengguna khusus SFTP di CentOS 7

Pada kesempatan tertentu, Administrator Sistem mungkin perlu membuat akun pengguna dan membatasi akses mereka untuk hanya mengelola file mereka sendiri melalui sFTP, tetapi tidak

Menggunakan Tampilan MySQL pada Debian 7

Menggunakan Tampilan MySQL pada Debian 7

Pendahuluan MySQL memiliki fitur hebat yang dikenal sebagai tampilan. Tampilan adalah kueri yang disimpan. Pikirkan mereka sebagai alias untuk permintaan yang panjang. Dalam panduan ini,

Cara Memasang Nginx 1.14 Di Arch Linux

Cara Memasang Nginx 1.14 Di Arch Linux

Prasyarat Server Vultr berjalan terbaru Arch Linux (lihat artikel ini.) Akses Sudo. Perintah yang harus dijalankan sebagai root diawali oleh #. Th

Nonaktifkan atau Batasi Login Root melalui SSH di Linux

Nonaktifkan atau Batasi Login Root melalui SSH di Linux

Mengizinkan login root melalui SSH umumnya dianggap sebagai praktik keamanan yang buruk di seluruh industri teknologi. Sebagai gantinya, Anda dapat melakukan administrativ sensitif

Cara Memasang Seafile Server di Ubuntu 16.10

Cara Memasang Seafile Server di Ubuntu 16.10

Menggunakan Sistem yang Berbeda? Seafile (versi komunitas) adalah solusi sinkronisasi dan berbagi file sumber gratis dan terbuka yang mirip dengan ownCloud. Sepanjang kecerdasan

Cara Memasang Thelia 2.3 pada Debian 9

Cara Memasang Thelia 2.3 pada Debian 9

Menggunakan Sistem yang Berbeda? Thelia adalah alat sumber terbuka untuk membuat situs web e-bisnis dan mengelola konten online yang ditulis dalam PHP. Kode sumber thelia i

Cara Memasang MongoDB 4.0 di Arch Linux

Cara Memasang MongoDB 4.0 di Arch Linux

Prasyarat Server Vultr berjalan terbaru Arch Linux (lihat artikel ini) Akses Sudo: Perintah yang diperlukan untuk dijalankan karena root diawali oleh #, dan satu

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Pelajari langkah-langkah untuk memasang Panel Kontrol Hosting Mudah (EHCP) di Ubuntu 16.04 dengan panduan ini.

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.