Cara Pasang Hubzilla pada Ubuntu 16.04

Hubzilla adalah platform berasaskan web sumber terbuka untuk membuat laman web yang berkaitan secara dalaman. Dalam ekosistem Hubzilla, pelayan yang menjalankan Hubzilla dipanggil "hab" dan sekumpulan hab berganda dipanggil "grid". Hab dalam grid berkomunikasi antara satu sama lain untuk berkongsi maklumat seperti identiti. Sesiapa pun boleh menyiarkan kandungan secara terbuka atau secara peribadi menggunakan "saluran", yang boleh menjadi orang, blog, atau forum. Ia menggunakan rangka kerja Zot berasaskan JSON untuk melaksanakan komunikasi dan perkhidmatan yang terdesentralisasi. Hubzilla penuh dengan ciri-ciri seperti benang perbincangan rangkaian sosial, storan fail awan, kalendar dan kenalan, laman web hosting dengan sistem pengurusan kandungan, wiki dan banyak lagi.

Prasyarat

  • Contoh pelayan Vultr Ubuntu 16.04.
  • Pengguna sudo .
  • Nama domain menunjuk ke arah contohnya.

Untuk tutorial ini, kami akan gunakan hubzilla.example.com sebagai nama domain menunjuk ke arah contoh Vultr. Sila pastikan untuk menggantikan semua kejadian nama domain contoh dengan yang sebenarnya.

Kemas kini sistem asas anda menggunakan panduan Cara Kemaskini Ubuntu 16.04 . Setelah sistem anda diperbaharui, teruskan memasang dependensi.

Pasang Nginx

Nginx adalah pelayan web pengeluaran untuk menjalankan aplikasi web.

Pasang Nginx.

sudo apt -y install nginx

Mula Nginx dan dayakannya secara automatik semasa boot.

sudo systemctl start nginx
sudo systemctl enable nginx

Pasang PHP 7.1

Hubzilla menyokong versi PHP di atas 5.6. Kami akan memasang PHP 7.1 untuk memastikan kelajuan maksimum, keselamatan, dan keserasian. Tambah repositori Ubuntu untuk PHP 7.1.

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

Pasang versi PHP 7.1 berserta 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 fail konfigurasi PHP.

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

Cari baris berikut. Tidak memenuhi syarat itu dan tetapkan zon waktu yang sesuai.

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

Tetapkan had memori yang sesuai pada konfigurasi seterusnya. Menetapkannya -1 akan memberikan memori yang tersedia tanpa had pada skrip. Juga, tambahkan had muat naik fail maksimum.

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

Seterusnya, cari baris berikut dan tetapkan nilainya 0 selepas tidak mengulas.

cgi.fix_pathinfo=0

Mula php7.1-fpm dan aktifkannya secara automatik pada masa boot.

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

Buat direktori sesi dan berikan kebenaran menulis.

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

Sekarang, teruskan ke pemasangan MariaDB.

Pasang MariaDB

MariaDB adalah garpu MySQL. Tambahkan repositori MariaDB ke sistem anda, sebagai repositori Ubuntu lalai mengandungi versi 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

Pasang MariaDB.

sudo apt -y install mariadb-server

Berikan kata laluan yang kuat untuk pengguna root MariaDB ketika ditanya. Mulakan MariaDB dan aktifkan secara automatik pada waktu boot.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Sebelum mengkonfigurasi pangkalan data, anda perlu mengamankan MariaDB. Anda boleh mendapatkannya dengan menjalankan mysql_secure_installation skrip.

sudo mysql_secure_installation

Anda akan diminta kata laluan root MariaDB semasa. Berikan kata laluan yang telah anda tetapkan semasa pemasangan. Anda akan ditanya sama ada anda ingin menukar kata laluan pengguna root sedia ada pelayan MariaDB anda. Anda boleh melangkau menetapkan kata laluan baru, kerana anda telah memberikan kata laluan yang kuat semasa pemasangan. Jawab " Y" untuk semua soalan lain yang diajukan.

Log masuk ke shell MySQL sebagai root.

mysql -u root -p

Berikan kata laluan untuk pengguna root MariaDB untuk log masuk.

Jalankan pertanyaan berikut untuk membuat pangkalan data dan pengguna pangkalan data untuk pemasangan 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 boleh mengganti nama pangkalan data hubzilla_data dan nama pengguna hubzilla_user mengikut pilihan anda. Sila pastikan anda menukar StrongPassword kata laluan yang sangat kuat.

Pasang Hubzilla

Pasang Git. Git diperlukan untuk mengklon repositori Hubzilla dari Github.

sudo apt -y install git

Tukar 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 pasangkan addon Hubzilla.

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

Berikan hak milik direktori dan fail kepada pengguna Nginx.

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

Buat Host Virtual

Penting untuk memasang SSL di laman Hubzilla, kerana log masuk dan data lain mungkin terganggu jika tidak dienkripsi. Dalam tutorial ini, kami akan menggunakan sijil SSL yang diperoleh oleh otoriti sijil Let's Encrypt.

Tambah repositori Certbot.

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

Pasang Certbot, iaitu aplikasi klien untuk Let's Encrypt CA.

sudo apt -y install certbot

Nota: Untuk mendapatkan sijil dari Let's Encrypt CA, domain yang mana sijil yang akan dihasilkan mesti ditujukan ke pelayan. Sekiranya tidak, buat perubahan yang diperlukan pada rekod DNS domain dan tunggu DNS disebarkan sebelum membuat permintaan sijil lagi. Certbot memeriksa pihak berkuasa domain sebelum menyediakan sijil.

Menjana sijil SSL.

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

Sijil yang dijana mungkin disimpan di dalam /etc/letsencrypt/live/hubzilla.example.com/. Sijil SSL akan disimpan sebagai fullchain.pem dan kunci peribadi akan disimpan sebagai privkey.pem.

Mari Sijikan sijil tamat tempoh dalam 90 hari, oleh itu, disyorkan untuk menyediakan pembaharuan automatik sijil menggunakan kerja-kerja Cron.

Buka fail kerja cron.

sudo crontab -e

Tambahkan garisan berikut pada akhir fail.

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

Pekerjaan cron di atas akan dijalankan setiap hari pada jam 5:30 pagi. Sekiranya sijil perlu tamat tempoh, ia akan diperbaharui secara automatik.

Buat fail konfigurasi baru untuk Hubzilla Server.

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

Isi fail.

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 pelayan 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

Sekiranya anda tidak melihat ralat dalam konfigurasi, mulakan semula Nginx supaya konfigurasi baru dapat dikuatkuasakan.

sudo systemctl restart nginx

Mengakhiri

Navigasi https://hubzilla.example.commenggunakan penyemak imbas kegemaran anda dan anda akan melihat halaman web yang menunjukkan antara muka "cek sistem". Anda akan melihat bahawa setiap keperluan lulus dalam pemeriksaan sistem. Pada antara muka seterusnya, berikan butiran pangkalan data yang telah anda buat sebelumnya. Seterusnya, berikan e-mel pentadbir, URL laman web, dan zon waktu. Hubzilla kini dipasang pada pelayan anda, anda boleh meneruskan untuk mencipta pengguna pentadbir dengan e-mel pentadbir yang anda gunakan semasa pemasangan.

Akhirnya, anda perlu menyediakan cron untuk menjalankan tugas yang dijadualkan setiap sepuluh minit.

Buat fail baru untuk cron job.

sudo nano /etc/cron.d/hubzilla

Isi fail dengan yang berikut.

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

Mulakan semula perkhidmatan cron.

sudo systemctl restart cron

Sekiranya anda ingin membuat satu set dokumentasi tempatan, jalankan perintah berikut.

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

Hubzilla kini dipasang dan dikonfigurasikan, anda boleh menjemput rakan anda dan menggunakan platform yang dikehendaki.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut