HubzillaをUbuntu 16.04にインストールする方法

Hubzillaは、内部接続されたWebサイトを作成するためのオープンソースのWebベースのプラットフォームです。Hubzillaのエコシステムでは、Hubzillaを実行するサーバーは「ハブ」と呼ばれ、複数のハブのグループは「グリッド」と呼ばれます。グリッド内のハブは相互に通信して、IDなどの情報を共有します。だれでも、ブログ、フォーラムなどの「チャネル」を使用して、誰でもコンテンツを公開または非公開で公開できます。これは、JSONベースのZotフレームワークを使用して、安全な分散型通信およびサービスを実装します。Hubzillaには、ソーシャルネットワーキングのディスカッションスレッド、クラウドファイルストレージ、カレンダーと連絡先、コンテンツ管理システムを使用したWebページのホスティング、Wikiなどの機能が満載です。

前提条件

  • Vultr Ubuntu 16.04サーバーインスタンス。
  • sudoのユーザー
  • インスタンスを指すドメイン名。

このチュートリアルではhubzilla.example.com 、Vultrインスタンスを指すドメイン名としてを使用 します。例のドメイン名をすべて実際のドメイン名に置き換えてください。

How to Update Ubuntu 16.04のガイドを使用してベースシステムを更新します 。システムが更新されたら、依存関係のインストールに進みます。

Nginxをインストールする

Nginxは、ウェブアプリケーションを実行するためのプロダクションウェブサーバーです。

Nginxをインストールします。

sudo apt -y install nginx

Nginxを起動し、起動時に自動的に実行されるようにします。

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7.1をインストールする

Hubzillaは5.6以上のPHPバージョンをサポートしています。PHP 7.1をインストールして、最高の速度、セキュリティ、互換性を確保します。PHP 7.1のUbuntuリポジトリを追加します。

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

Hubzillaに必要なモジュールと共にPHPバージョン7.1をインストールします。

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 rootユーザーに強力なパスワードを入力します。MariaDBを起動して、起動時に自動的に起動するようにします。

sudo systemctl start mariadb
sudo systemctl enable mariadb

データベースを構成する前に、MariaDBを保護する必要があります。mysql_secure_installation スクリプトを実行することで保護でき ます。

sudo mysql_secure_installation

現在のMariaDBルートパスワードの入力を求められます。インストール中に設定したパスワードを入力します。MariaDBサーバーのrootユーザーの既存のパスワードを変更するかどうかを尋ねられます。インストール中に強力なパスワードをすでに提供しているため、新しいパスワードの設定をスキップできます。Y尋ねられる他のすべての質問に「」と答えます。

MySQLシェルにrootとしてログインします。

mysql -u root -p

MariaDB rootユーザーがログインするためのパスワードを入力します。

次のクエリを実行して、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をインストールします。GithubからHubzillaリポジトリを複製するには、Gitが必要です。

sudo apt -y install git

Webルートディレクトリに切り替え、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

仮想ホストを作成する

ログインやその他のデータは暗号化されていないと侵害される可能性があるため、HubzillaサイトにSSLをインストールすることが重要です。このチュートリアルでは、Let's Encrypt認証局が取得したSSL証明書を使用します。

Certbotリポジトリを追加します。

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

Let's Encrypt CAのクライアントアプリケーションであるCertbotをインストールします。

sudo apt -y install certbot

注: Let's Encrypt CAから証明書を取得するには、証明書を生成するドメインをサーバーに向ける必要があります。そうでない場合は、ドメインのDNSレコードに必要な変更を加え、DNSが伝播するのを待ってから、証明書要求を再度行ってください。証明書ボットは、証明書を提供する前にドメイン認証局をチェックします。

SSL証明書を生成します。

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

生成された証明書は、おそらくに保存され /etc/letsencrypt/live/hubzilla.example.com/ます。SSL証明書はとして保存され fullchain.pem 、秘密鍵はとして保存され privkey.pemます。

Let's Encrypt証明書は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 Webサーバー構成をテストします。

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お好きなブラウザを使用してに移動すると、「システムチェック」インターフェースを示すWebページが表示されます。すべての要件がシステムチェックに合格することがわかります。次のインターフェースで、以前に作成したデータベースの詳細を入力します。次に、管理者のメールアドレス、ウェブサイトのURL、タイムゾーンを入力します。Hubzillaがサーバーにインストールされました。インストール中に使用した管理者の電子メールを使用して、管理者ユーザーを作成できます。

最後に、スケジュールされたタスクを10分ごとに実行するように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

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、