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

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

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

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

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