Ubuntu 16.04 Üzerinde Hubzilla Kurulumu

Hubzilla, dahili bağlantılı web siteleri oluşturmak için açık kaynaklı bir web tabanlı platformdur. Hubzilla ekosisteminde, Hubzilla çalıştıran bir sunucuya "hub", birden çok hub grubuna "ızgara" denir. Bir tablodaki hub'lar, kimlikler gibi bilgileri paylaşmak için birbirleriyle iletişim kurar. Herkes, kişi, blog veya forum olabilecek bir "kanal" kullanarak içeriği herkese açık veya özel olarak yayınlayabilir. Güvenli merkezi olmayan iletişim ve hizmetleri uygulamak için JSON tabanlı bir Zot çerçevesi kullanır. Hubzilla, sosyal ağ tartışma konuları, bulut dosya depolama, takvim ve kişiler, bir içerik yönetim sistemi ile barındırma web sayfası, wiki ve çok daha fazlası gibi özelliklerle doludur.

Ön şartlar

  • Bir Vultr Ubuntu 16.04 sunucu örneği.
  • Bir sudo kullanıcısı .
  • Bir alan adı örneğe işaret etti.

Bu eğitimde, hubzilla.example.com Vultr örneğine işaret eden alan adı olarak kullanacağız . Lütfen örnek alan adının tüm tekrarlarını gerçek adla değiştirdiğinizden emin olun.

Ubuntu 16.04 Güncelleme kılavuzunu kullanarak temel sisteminizi güncelleyin . Sisteminiz güncellendiğinde, bağımlılıkları yüklemeye devam edin.

Nginx'i yükle

Nginx, web uygulamalarını çalıştıran bir üretim web sunucusudur.

Nginx'i yükleyin.

sudo apt -y install nginx

Nginx'i başlatın ve önyükleme zamanında otomatik olarak çalışmasını sağlayın.

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7.1'i yükleyin

Hubzilla, 5.6'nın üzerindeki PHP sürümlerini destekler. Maksimum hız, güvenlik ve uyumluluk sağlamak için PHP 7.1'i kuracağız. PHP 7.1 için Ubuntu deposunu ekleyin.

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

PHP 7.1 sürümünü Hubzilla için gerekli olan modüllerle birlikte kurun.

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 yapılandırma dosyasını düzenleyin.

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

Aşağıdaki satırı bulun. Bunu açın ve uygun saat dilimini ayarlayın.

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

Bir sonraki yapılandırmada uygun bir bellek sınırı belirleyin. Bunu ayarlamak -1 , bir komut dosyasına sınırsız kullanılabilir bellek sağlar. Ayrıca, maksimum dosya yükleme sınırlarını artırın.

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

Sonra, aşağıdaki satırı bulun ve 0 açtıktan sonra değerini olarak ayarlayın .

cgi.fix_pathinfo=0

Başlatın php7.1-fpm ve önyükleme zamanında otomatik olarak başlamasını sağlayın.

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

Bir oturum dizini oluşturun ve yazma izinleri sağlayın.

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

Şimdi MariaDB'nin kurulumuna geçin.

MariaDB'yi yükleyin

MariaDB, MySQL'in bir çataldır. Varsayılan Ubuntu deposu MariaDB'nin eski bir sürümünü içerdiğinden, MariaDB deposunu sisteminize ekleyin.

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'yi yükleyin.

sudo apt -y install mariadb-server

Sorulduğunda MariaDB kök kullanıcısı için güçlü bir parola sağlayın. MariaDB'yi başlatın ve önyükleme zamanında otomatik olarak başlamasını sağlayın.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Veritabanını yapılandırmadan önce MariaDB'yi güvence altına almanız gerekir. mysql_secure_installation Komut dosyasını çalıştırarak güvenli hale getirebilirsiniz .

sudo mysql_secure_installation

Geçerli MariaDB kök parolasını girmeniz istenecektir. Kurulum sırasında belirlediğiniz şifreyi girin. MariaDB sunucunuzun kök kullanıcısının mevcut şifresini değiştirmek isteyip istemediğiniz sorulacaktır. Kurulum sırasında güçlü bir parola sağladığınız için yeni bir parola belirlemeyi atlayabilirsiniz. YSorulan tüm diğer sorulara " " yanıtını verin.

MySQL kabuğuna root olarak giriş yapın.

mysql -u root -p

MariaDB kök kullanıcısının oturum açması için şifreyi girin.

Hubzilla yüklemesi için bir veritabanı ve veritabanı kullanıcısı oluşturmak için aşağıdaki sorguları çalıştırın.

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;

Veritabanı adını hubzilla_data ve kullanıcı adını istediğiniz gibi değiştirebilirsiniz hubzilla_user . Lütfen StrongPassword çok güçlü bir şifreyle değiştirdiğinizden emin olun .

Hubzilla'yı yükle

Git'i yükleyin. Git, Hubzilla deposunu Github'dan klonlamak için gereklidir.

sudo apt -y install git

Web kök dizinine geçin ve Hubzilla deposunu klonlayın.

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

Hubzilla verilerini depolamak için yeni bir dizin oluşturun.

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

Hubzilla eklentilerini kopyalayın ve yükleyin.

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

Nginx kullanıcısına dizin ve dosyaların sahipliğini sağlayın.

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

Sanal Ana Makine Oluşturma

SSL'nin bir Hubzilla sitesinde yüklü olması önemlidir, çünkü şifrelenmezse girişler ve diğer veriler tehlikeye girebilir. Bu eğitimde, Let's Encrypt sertifika yetkilisi tarafından alınan SSL sertifikalarını kullanacağız.

Certbot deposunu ekleyin.

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

Let's Encrypt CA'nın istemci uygulaması olan Certbot'u yükleyin.

sudo apt -y install certbot

Not: Let's Encrypt CA'dan sertifika almak için, sertifikaların oluşturulacağı etki alanı sunucuya yönlendirilmelidir. Değilse, etki alanının DNS kayıtlarında gerekli değişiklikleri yapın ve sertifika isteğini yeniden yapmadan önce DNS'nin yayılmasını bekleyin. Certbot, sertifikaları vermeden önce etki alanı yetkilisini denetler.

SSL sertifikaları oluşturun.

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

Oluşturulan sertifikaların depolanması muhtemeldir /etc/letsencrypt/live/hubzilla.example.com/. SSL sertifikası olarak fullchain.pem ve özel anahtar olarak depolanacaktır privkey.pem.

Sertifikaların şifrelenmesini 90 gün içinde sona erdirelim, bu nedenle Cron işlerini kullanarak sertifikaların otomatik olarak yenilenmesi önerilir.

Cron iş dosyasını açın.

sudo crontab -e

Dosyanın sonuna aşağıdaki satırı ekleyin.

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

Yukarıdaki cron işi her gün 05: 30'da çalışacaktır. Sertifikanın geçerlilik süresi dolmuşsa, otomatik olarak yenilenir.

Hubzilla Server için yeni bir yapılandırma dosyası oluşturun.

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

Dosyayı doldurun.

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

Yapılandırmayı etkinleştirin.

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

Nginx web sunucusu yapılandırmasını test edin.

sudo nginx -t

Aşağıdaki çıktıyı göreceksiniz.

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

Yapılandırmada herhangi bir hata görmüyorsanız, yeni yapılandırmanın etkili olabilmesi için Nginx'i yeniden başlatın.

sudo systemctl restart nginx

Paketleme

https://hubzilla.example.comFavori tarayıcınızı kullanarak gezinin ve "sistem kontrolü" arayüzünü gösteren web sayfasını göreceksiniz. Her gereksinimin sistem kontrolünden geçtiğini göreceksiniz. Bir sonraki arayüzde, daha önce oluşturduğunuz veritabanı ayrıntılarını sağlayın. Ardından, yönetici e-postasını, web sitesi URL'sini ve saat dilimini girin. Hubzilla şimdi sunucunuza kurulur, kurulum sırasında kullandığınız yönetici e-postasıyla yönetici kullanıcı oluşturmaya devam edebilirsiniz.

Son olarak, zamanlanan görevleri on dakikada bir çalıştırmak için cron kurmanız gerekecektir.

Cron işi için yeni bir dosya oluşturun.

sudo nano /etc/cron.d/hubzilla

Dosyayı aşağıdakilerle doldurun.

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

Cron hizmetini yeniden başlatın.

sudo systemctl restart cron

Yerel bir belge kümesi oluşturmak istiyorsanız, aşağıdaki komutları çalıştırın.

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

Hubzilla artık kuruldu ve yapılandırıldı, arkadaşlarınızı davet edebilir ve platformu istediğiniz gibi kullanabilirsiniz.



Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun