#author("2025-03-21T08:21:56+09:00;2025-03-13T19:15:13+09:00","default:tanopro","tanopro") #author("2025-03-21T08:29:23+09:00;2025-03-13T19:15:13+09:00","default:tanopro","tanopro") #html{{ <h1 style="color: red; background-color: #FFFFCC; padding: 20px;"> HumHub </h1> <div class="alert alert-warning" role="alert"> PHPで作られたオープンソースのSNSアプリ<br> Webフレームワーク「Yii」を採用している </div> }} //---------------------------------------- #contents //---------------------------------------- * HumHub とは? [#l6e0af73] [[PHP]]で作られたオープンソースのSNSアプリで、Webフレームワーク「[[Yii]]」を採用しています。 割と簡単にインストールできて便利です。 ちょっとしたコミュニティーサイトを作るなら、機能は十分かも? - HumHub - Google 検索 https://www.google.com/search?q=HumHub - 公式サイト -- HumHub – Putting People and Pieces together https://www.humhub.com/ //---------------------------------------- * ダウンロード [#download] HumHubのZIPファイルが以下のWebサイトで公開されています。 ダウンロードして利用します。 - Downloads - HumHub https://download.humhub.com/ このページからダウンロードしたZIPファイルをUbuntuのホームディレクトリーなどに保存して展開(解凍)します。 unzip /home/user/data/humhub/humhub-1.17.1.zip 展開したデータをNginxの[[バーチャルホスト]]のディレクトリーにコピーします。 sudo cp -r /home/user/data/humhub-1.17.1/* /var/www/sns/ 必要に応じて、所有者を変更しておきます。 sudo chown -R user:user /var/www/sns //---------------------------------------- * インストール [#install] [[VPS]]にHumHubを直接インストールする方法をメモ。(今回は[[Docker]]などの仮想化ツールは使いません。) //---------------------------------------- ** VPSの用意 [#yd0e8ac7] 今回は、ConoHa [[VPS]] の4Gプランを用意してみました。 https://www.conoha.jp/conoha/vps/pricing/ #ref(./ConoHaVPS-price.png,800x) //---------------------------------------- ** Ubuntuのインストール [#rcbdb757] VPSのコントロールパネルで、Ubuntu 24.04 LTSを選び、インストールします。 長期サポートのLTS版で新しいバージョンを選んでみました。 #ref(./ubuntu_install_1.png,800x) ~ #ref(./ubuntu_install_2.png,800x) //---------------------------------------- ** SSH接続 [#j211cea3] [[SSH]]で自分のパソコンからサーバーに接続すれば、安全に操作することができます。 SSH接続ができるように準備します。 *** 公開鍵暗号の作成 [#oa2413b1] Windowsパソコンなら「[[PuTTY]]」というフリーソフトでSSH接続用の公開鍵を作れます。 公開鍵の作成手順の詳細は[[PuTTY]]のページを参照してください。 *** 作業用ユーザーの追加 [#h908c3d5] [[Ubuntuでユーザーを追加]] を参照。 「tensai」という作業用ユーザーを作成しておきます。 *** 作業用ユーザーの公開鍵を保存 [#o9fa965b] tensaiのホームディレクトリーに「.ssh」ディレクトリーを作成します。 # mkdir -p /home/tensai/.ssh 公開鍵を「authorized_keys」ファイルに追加します。 # nano /home/tensai/.ssh/authorized_keys ここで先に作成しておいたOpenSSH形式の公開鍵の文字列を貼り付けて保存します。 (参考:[[PuTTY#puttygen]]) (例)以下のような文字列です。 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINVpQ/hiFQPWeqQYz7mK+44YbQvvdJfzsvACkhXpvbMN eddsa-key-20250313 + Ctrl+oで保存 + Ctrl+xでnanoを終了 *** 公開鍵を保存しているディレクトリーとファイルのパーミッション(アクセス権限)を設定 [#wa80b1d8] # chown -R tensai:tensai /home/tensai/.ssh # chmod 700 /home/tensai/.ssh # chmod 600 /home/tensai/.ssh/authorized_keys *** SSHの設定を確認 [#w12dff92] 「/etc/ssh/sshd_config」ファイルを開いて、以下の項目を確認・修正します。 # nano /etc/ssh/sshd_config ↓ PermitRootLogin no (rootログイン禁止を推奨) PubkeyAuthentication yes PasswordAuthentication no(パスワードログインを無効化して鍵認証のみ許可する場合) AllowUsers tensai(特定のユーザーだけを許可する場合) *** SSH設定をテスト [#kebd0e8e] # sshd -t というコマンドでSSHの設定にミスがないか確認します。 Missing privilege separation directory: /run/sshd というエラーメッセージが出た場合、Ubuntuのインストール直後でまだSSHを起動していなければ「/run/sshd」というディレクトリーが作成されていないので表示される警告です。 SSHを起動して「/run/sshd」が作成されたら、このエラーは出てこなくなります。 *** SSHを起動(再起動) [#q288bec3] # systemctl restart ssh *** VPSのセキュリティー設定でSSH接続を許可 [#ud313c72] ConoHa VPSのコントロールパネルでセキュリティグループに「IPv4v6-SSH」を追加します。 これでポート22が開かれて、SSH接続ができるようになります。 (ポート22に対するサイバー攻撃が心配な場合、22以外のポート番号でSSH接続をするように設定することも可能ですが、面倒なので今回はそこまでしません。) #ref(./vps_security_SSH.png,800x) ~ これで、以降の作業はSSH接続して、作業用ユーザー「tensai」で操作できるようになりました。 ** OSのアップデート [#ff89da80] Ubuntuを最新の状態にします。 (VPSのコントロールパネルのコンソールで、サーバーにrootでログインして更新することも可能です。) $ sudo apt update $ sudo apt upgrade 258 upgraded, 8 newly installed, 0 to remove and 1 not upgraded. 79 standard LTS security updates Need to get 875 MB of archives. After this operation, 338 MB of additional disk space will be used. Do you want to continue? [Y/n] &color(red){→ Yを入力}; $ sudo apt autoremove Reading package lists... Done Building dependency tree... Done Reading state information... Done The following packages will be REMOVED: linux-headers-6.8.0-31 linux-headers-6.8.0-31-generic linux-image-6.8.0-31-generic linux-modules-6.8.0-31-generic linux-modules-extra-6.8.0-31-generic linux-tools-6.8.0-31 linux-tools-6.8.0-31-generic 0 upgraded, 0 newly installed, 7 to remove and 1 not upgraded. After this operation, 296 MB disk space will be freed. Do you want to continue? [Y/n] &color(red){→ Yを入力}; ** LEMP環境の構築 [#k1dc8e49] LEMPとは、 +L:[[Linux]] +E:[[Nginx]] +M:[[MySQL]] or [[MariaDB]] +P:[[PHP]] の組み合わせのこと。 設定の依存関係を考慮して、ここでは Nginx → MariaDB → PHP という順番でインストールしていきます。 - Nginxを最初にインストールする理由 -- php-fpm をNginxと連携させるため、設定を事前に確認できる。 - PHPを最後にインストールする理由 -- php-fpm はNginxと連携するので、Nginxが先にインストールされていないと設定ができない。 -- 必要なPHPモジュール(php-mysql など)をMariaDBに合わせて導入できる。 *** Nginxのインストール [#uf81764d] [[Nginx]] を参照。 *** MariaDBのインストール [#j7d02fba] [[MariaDB]] を参照。 *** PHPのインストール [#n113808b] [[PHP]] を参照。 ** Let's EncryptでSSL証明書を発行 [#edc42248] [[Let's Encrypt]] を参照。 メールサーバーでもSSL証明書を使いたいので、先に入れておく。 ** メールサーバーの構築 [#q76cad2e] [[メールサーバー]]を参照。 - メールサーバー(Postfix、Dovecot)の構築をLEMP環境の構築の後にする理由 -- Webメールクライアント(Roundcubeなど)を導入する場合、LEMP環境がないと動作確認ができないので。 ** HumHubのインストール [#a056bb09] - HumHubのドキュメント -- HumHub Documentation | HumHub Documentation https://docs.humhub.org/ - インストール手順 -- System Requirements | HumHub Documentation https://docs.humhub.org/docs/admin/requirements/ // *Amazon [#amazon] #html{{ }} //---------------------------------------- * 関連 [#da30a65f] //---------------------------------------- -[[PHP]] -[[SNS]] -[[Yii]]