「Debian設定メモ」の版間の差分

提供:mrmts wiki
編集の要約なし
 
(同じ利用者による、間の30版が非表示)
28行目: 28行目:
esac
esac
</blockquote>
</blockquote>
==openssh-serverのインストール==
 "openssh-server"がもしインストールされていなかったらインストールする。そうか、これはDebianのインストールのときにデスクトップ環境を入れるかどうかのところで選択できてインストールしたんだった。ということで、もしそのときにインストールしていなかったら。Q4OSでは初期設定で入っていなかったので、aptで入れた。
==mastodonに向けて==
 下記を参考にMastodonをインストールした。基本的にはこのサイトに書かれているとおりでよいのだけど、このサイトはオンライン上のVPS(仮想専用サーバー)にある独自ドメインに導入する前提で書かれているけど、今回私が導入したのは、ローカルのWindows11でVirtualBoxを使って仮想マシン上にインストールしたDebian11に対してなので、そこのところは読み替えるなり別の作業が必要となる。また、Mastodonを導入するのには大きくDockerというものを使う場合と使わない場合とに分けられるが、今回はDockerを使わずにインストールしたので、Dockerを使う場合は別のインストールメモを参照した方がよい。
* https://zenn.dev/yamako/articles/1c2ae0d3bd0697
===基本情報===
* ホストPC:Windows11
* クライアントPC:VirtualBox上のDebian11
* Dockerは使用せず
* Mastodonのバージョンは4.0.2
===つまづいたとき===
 私はいろいろつまづきながら下記の要領でマストドンをインストールして動かせるようになったけど、もしかするとこれを読んで試した人は同じようにはいかないかもしれない。そんなときは、うまくいかないところでネット検索などをして試行錯誤することになるとおもうのだけど、そのときに気をつけておきたいポイントを挙げておく。
* 2017年前後のインストールメモは基本的に参照しない方が無難(何が現在でもあなたに使えて何があなたに使えないことなのか、おそらくこんな私のメモを参照して、さらにそこで躓いているぐらいだから、いまのあなたには判断できないでしょう)
* SSLなしという設定は現行のMastodonのバージョンではできません。
* このインストールメモはDockerなしのものなので、Dockerありのものとは大きく手順が異なります。
===インストール開始===
 以下の作業はVirtualBox上のDebian11にWindows11上のTera TermからSSHで接続してターミナルで行ったが、VirtualBoxで開いているDebian11から行っても同じ。ただ、デスクトップ環境をインストールしていない場合には、VirtualBox上のDebianのコンソールから直接操作すると日本語が文字化けしたりするので、シェルの言語設定を英語に変えるか、日本語が表示できるようにデスクトップ環境をインストールするか、あるいはTera Termなどから操作するかの三択ぐらいになる。
 基本的な操作はrootで行うので、もし一般ユーザーでログインしているなら下記のコマンドでスーパーユーザーのrootになっておく。
<blockquote>
<nowiki>$</nowiki> su -
</blockquote>
 先ほどのサイトで「サーバに必要なソフトウェアをインストール」という項目から指示に従ってインストール等の操作を進める。私の環境では必要ないものも含まれているだろうけど、どれが必要でどれが必要ではないのかということが判断できないので、とりあえず特に断りのない限りこのページの指示に従ってインストール等の操作を進めるものとする。PostgreSQLとかnginxとかもここでインストールすることになる。
* https://zenn.dev/yamako/articles/1c2ae0d3bd0697
 ひと通りインストール作業を進める(以下、時間のあるときに具体的にここに書いていく)。そしてnginxのところでつまづくというのが下記。
<blockquote>
<nowiki>#</nowiki> systemctl reload nginx
</blockquote>
 をすると、
<blockquote>
nginx.service is not active, cannot reload.
</blockquote>
と怒られる。このキーワードでネットを検索してみると
* https://webinoly.com/support/496/nginx-service-is-not-active-cannot-reload
「サービスが開始してないからじゃね?」というアドバイスをしている人がいて、
<blockquote>
<nowiki>#</nowiki> service nginx start
</blockquote>
と打ってサービスを開始しようとすると、サービスの開始に失敗したといったようなエラーが出る。ちなみに"service nginx start"と"systemctl start nginx"の違いはなんなんだろう。そのうち調べるべし。
で、エラーが出たときは
<blockquote>
<nowiki>#</nowiki> nginx -t
</blockquote>
でコンフィギアファイルのチェックをしてくれるみたいで、じっさいこれをやったりしてみたし、あとは現在の状況を確認するのに下記のコマンドで確かめろっていうエラーとかも出たりするので、それで確かめてわかったこともあった。SSLとかポートが埋まってるとかもこれでわかったんだったかなあ。
<blockquote>
<nowiki>#</nowiki> systemctl status nginx.service
</blockquote>
まあこのあといろいろ調べてわかったのはふたつ問題があって、
* SSLの証明書がきちんと設定されていない
* apache2が動いていてポートが埋まってる
だった。SSLを解決したと思ったらそれでもエラーになるから何か調べたらapache2だったと。なぜapache2だとわかったかと言うと以下。
* [https://qiita.com/ngron/items/55a84ef6abce903c4424 【Nginx】portが占領されてサーバーが起動できないときの対処法]
このサイトを参考に、
<blockquote>
<nowiki>#</nowiki> lsof -i:80
</blockquote>
と打ってみたらどうもアパッチが動いているっぽかったので、なんとなく
<blockquote>
<nowiki>#</nowiki> systemctl stop apache2
</blockquote>
と打ってみて、それで次に
<blockquote>
<nowiki>#</nowiki> systemctl start nginx
</blockquote>
としたら無事に動き始めたというわけ。
<blockquote>
<nowiki>#</nowiki> service nginx status
</blockquote>
で状態を確かめてもエラーがない。やっぱりコマンドの"systemctl"と"service"の違いがわからない。それぞれのコマンドで"start"や"stop"をしたときの違いは何なんだろう。あと"systemctl status nginx.service"と"service nginx status"の違い。"status"の語順が違うのはコマンドの文法の違いだとして、"nginx.service"と"nginx"のstatusの違いは何だろう。まあ、そのうち。
===データベース===
データベースのところは下記を参考にした。
* https://pc.watch.impress.co.jp/docs/column/nishikawa/1468283.html
* https://vps.xserver.ne.jp/support/manual/man_server_app_use_mastodon.php
<blockquote>
<nowiki>#</nowiki> apt install postgresql postgresql-contrib -y<br />
<nowiki>#</nowiki> systemctl start postgresql<br />
<nowiki>#</nowiki> sudo -u postgres -i psql<br />
postgres=# CREATE USER mastodon;<br />
postgres=# ALTER USER mastodon createdb;<br />
postgres=# \q
</blockquote>
===Mastodonの設定===
"RAILS_ENV=production bundle exec rake mastodon:setup"のあとのマストドンの設定のところでも
* https://zenn.dev/yamako/articles/1c2ae0d3bd0697
と合わせて
* https://pc.watch.impress.co.jp/docs/column/nishikawa/1468283.html
を参考にした。
===SSLのための証明書===
 opensslを使う。下記のサイトを参考に簡単にできる。SSL/TLS証明書をフリーで発行してくれるというLet's Encryptはlocalhost向けの発行はできないのでLet's Encryptの説明をしているサイトは、ローカルにインストールする人は参考にしてはだめ。
* https://blog.t-mitarai.com/infra/local-docker-env-mastodon/
 基本的に上記のサイトでよいけど、下記のサイトも参考に。
* https://qiita.com/snowdog/items/9c96ee0fa6ed096e8940
===参考に===
* [https://docs.joinmastodon.org/admin/install/ Installing from source - Instructional guide on creating your own Mastodon-powered website.]
* [https://ja.linux-console.net/?p=3628#gsc.tab=0 Debian 11 に Mastodon Social Network をインストールする方法]
* [https://mastodon-docs.vercel.app/admin/install/ ソースからインストール]
* [https://inaenomaki.hatenablog.com/entry/2018/08/12/135342 初心者がローカル上にmastodonサーバーを立てる練習をした話]
==旧Mastodonに向けて(Dockerを使ったもの)==
gnupg2をインストールした。
 下記でほぼいけたのだけど、未熟で最後までいけなかった。また時間ができたら試したい。
* https://gist.github.com/honestwolf/fd98dca7887eb945126b13781c122e5d
 下記は2017年のものだけど、ローカルにDockerでというもの。
* https://qiita.com/zembutsu/items/fd52a504321dd5d6f0b8
==Mastodonの管理をはじめて(ローカル編)==
最初のユーザ名は任意で決めたんだったか、ともかく"admin"になってた。次回は確認すべし。メールアドレスはとばせなくて"kant1724@hotmail.com"にしてあった。すると、ものすごく長いパスワードが表示されてそれを写真にとっていたのだけど、それでログイン。メールアドレスと自動で設定されたパスワードでログイン。そのあとパスワードを変えるように積極的に表示などで促されることはないけど、基本的には変えた方がいいのかな。
ぱっと見、自分が管理者としてログインしているというのはわかりにくいのだけど、ユーザー設定の画面に「管理」という管理者向けのメニューがあるので、まあ管理者なんだなというのがわかる。以下、順を追って設定した際のメモ。
===管理(ダッシュボード)===
「ユーザー設定>管理」とたどっていくと、そこが「ダッシュボード」。ページに「サーバーのルールを定義していません。サーバーのルールを管理」というメッセージとハイパーリンクが表示されているので、リンクをクリックする。
「ルールを追加」のボタンを押すと、番号付きのリスト表示でルールが追加されていきます。追加されたルールをクリックすると、そのルールの編集ができます。ルールの右下には「削除」というリンクもあります。

2023年3月8日 (水) 15:23時点における最新版


aptでDVDを参照する

apt updateなんかをするとDVDを参照しようとしてこれを解除できなくて困る。DVDからインストールしたらこのようになるとか。間違ってapt updateなどしてしまってコマンドから抜け出せなくなったら"ctrl+C"で中断できる。それで、DVDを参照しないようにするためには

# vi /etc/apt/sources.list

でDVDのところをコメントアウトにする。下記を参考に。

コンソールの文字化け

 実機からログインした場合のコンソールは文字化けするもののようです。だから、実機からアクセスした場合には英語表示になるようにbashの設定を変えてあげるべしとのこと。

# vi /etc/bash.bashrc

とルートでコマンドを打って"/etc/bashrc"の最後に下記のスクリプトを追加するべし。

case $TERM in
linux) LANG=C ;;
esac

openssh-serverのインストール

 "openssh-server"がもしインストールされていなかったらインストールする。そうか、これはDebianのインストールのときにデスクトップ環境を入れるかどうかのところで選択できてインストールしたんだった。ということで、もしそのときにインストールしていなかったら。Q4OSでは初期設定で入っていなかったので、aptで入れた。


mastodonに向けて

 下記を参考にMastodonをインストールした。基本的にはこのサイトに書かれているとおりでよいのだけど、このサイトはオンライン上のVPS(仮想専用サーバー)にある独自ドメインに導入する前提で書かれているけど、今回私が導入したのは、ローカルのWindows11でVirtualBoxを使って仮想マシン上にインストールしたDebian11に対してなので、そこのところは読み替えるなり別の作業が必要となる。また、Mastodonを導入するのには大きくDockerというものを使う場合と使わない場合とに分けられるが、今回はDockerを使わずにインストールしたので、Dockerを使う場合は別のインストールメモを参照した方がよい。

基本情報

  • ホストPC:Windows11
  • クライアントPC:VirtualBox上のDebian11
  • Dockerは使用せず
  • Mastodonのバージョンは4.0.2

つまづいたとき

 私はいろいろつまづきながら下記の要領でマストドンをインストールして動かせるようになったけど、もしかするとこれを読んで試した人は同じようにはいかないかもしれない。そんなときは、うまくいかないところでネット検索などをして試行錯誤することになるとおもうのだけど、そのときに気をつけておきたいポイントを挙げておく。

  • 2017年前後のインストールメモは基本的に参照しない方が無難(何が現在でもあなたに使えて何があなたに使えないことなのか、おそらくこんな私のメモを参照して、さらにそこで躓いているぐらいだから、いまのあなたには判断できないでしょう)
  • SSLなしという設定は現行のMastodonのバージョンではできません。
  • このインストールメモはDockerなしのものなので、Dockerありのものとは大きく手順が異なります。

インストール開始

 以下の作業はVirtualBox上のDebian11にWindows11上のTera TermからSSHで接続してターミナルで行ったが、VirtualBoxで開いているDebian11から行っても同じ。ただ、デスクトップ環境をインストールしていない場合には、VirtualBox上のDebianのコンソールから直接操作すると日本語が文字化けしたりするので、シェルの言語設定を英語に変えるか、日本語が表示できるようにデスクトップ環境をインストールするか、あるいはTera Termなどから操作するかの三択ぐらいになる。

 基本的な操作はrootで行うので、もし一般ユーザーでログインしているなら下記のコマンドでスーパーユーザーのrootになっておく。

$ su -


 先ほどのサイトで「サーバに必要なソフトウェアをインストール」という項目から指示に従ってインストール等の操作を進める。私の環境では必要ないものも含まれているだろうけど、どれが必要でどれが必要ではないのかということが判断できないので、とりあえず特に断りのない限りこのページの指示に従ってインストール等の操作を進めるものとする。PostgreSQLとかnginxとかもここでインストールすることになる。

 ひと通りインストール作業を進める(以下、時間のあるときに具体的にここに書いていく)。そしてnginxのところでつまづくというのが下記。


# systemctl reload nginx

 をすると、

nginx.service is not active, cannot reload.

と怒られる。このキーワードでネットを検索してみると

「サービスが開始してないからじゃね?」というアドバイスをしている人がいて、

# service nginx start

と打ってサービスを開始しようとすると、サービスの開始に失敗したといったようなエラーが出る。ちなみに"service nginx start"と"systemctl start nginx"の違いはなんなんだろう。そのうち調べるべし。

で、エラーが出たときは

# nginx -t

でコンフィギアファイルのチェックをしてくれるみたいで、じっさいこれをやったりしてみたし、あとは現在の状況を確認するのに下記のコマンドで確かめろっていうエラーとかも出たりするので、それで確かめてわかったこともあった。SSLとかポートが埋まってるとかもこれでわかったんだったかなあ。

# systemctl status nginx.service

まあこのあといろいろ調べてわかったのはふたつ問題があって、

  • SSLの証明書がきちんと設定されていない
  • apache2が動いていてポートが埋まってる

だった。SSLを解決したと思ったらそれでもエラーになるから何か調べたらapache2だったと。なぜapache2だとわかったかと言うと以下。

このサイトを参考に、

# lsof -i:80

と打ってみたらどうもアパッチが動いているっぽかったので、なんとなく

# systemctl stop apache2

と打ってみて、それで次に

# systemctl start nginx

としたら無事に動き始めたというわけ。

# service nginx status

で状態を確かめてもエラーがない。やっぱりコマンドの"systemctl"と"service"の違いがわからない。それぞれのコマンドで"start"や"stop"をしたときの違いは何なんだろう。あと"systemctl status nginx.service"と"service nginx status"の違い。"status"の語順が違うのはコマンドの文法の違いだとして、"nginx.service"と"nginx"のstatusの違いは何だろう。まあ、そのうち。

データベース

データベースのところは下記を参考にした。

# apt install postgresql postgresql-contrib -y
# systemctl start postgresql
# sudo -u postgres -i psql
postgres=# CREATE USER mastodon;
postgres=# ALTER USER mastodon createdb;
postgres=# \q

Mastodonの設定

"RAILS_ENV=production bundle exec rake mastodon:setup"のあとのマストドンの設定のところでも

と合わせて

を参考にした。

SSLのための証明書

 opensslを使う。下記のサイトを参考に簡単にできる。SSL/TLS証明書をフリーで発行してくれるというLet's Encryptはlocalhost向けの発行はできないのでLet's Encryptの説明をしているサイトは、ローカルにインストールする人は参考にしてはだめ。

 基本的に上記のサイトでよいけど、下記のサイトも参考に。

参考に

旧Mastodonに向けて(Dockerを使ったもの)

gnupg2をインストールした。

 下記でほぼいけたのだけど、未熟で最後までいけなかった。また時間ができたら試したい。

 下記は2017年のものだけど、ローカルにDockerでというもの。

Mastodonの管理をはじめて(ローカル編)

最初のユーザ名は任意で決めたんだったか、ともかく"admin"になってた。次回は確認すべし。メールアドレスはとばせなくて"kant1724@hotmail.com"にしてあった。すると、ものすごく長いパスワードが表示されてそれを写真にとっていたのだけど、それでログイン。メールアドレスと自動で設定されたパスワードでログイン。そのあとパスワードを変えるように積極的に表示などで促されることはないけど、基本的には変えた方がいいのかな。

ぱっと見、自分が管理者としてログインしているというのはわかりにくいのだけど、ユーザー設定の画面に「管理」という管理者向けのメニューがあるので、まあ管理者なんだなというのがわかる。以下、順を追って設定した際のメモ。

管理(ダッシュボード)

「ユーザー設定>管理」とたどっていくと、そこが「ダッシュボード」。ページに「サーバーのルールを定義していません。サーバーのルールを管理」というメッセージとハイパーリンクが表示されているので、リンクをクリックする。

「ルールを追加」のボタンを押すと、番号付きのリスト表示でルールが追加されていきます。追加されたルールをクリックすると、そのルールの編集ができます。ルールの右下には「削除」というリンクもあります。