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

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.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut