新井製作所

勉強したことの記録です

nginxでオリジナルのHTMLを置き、アクセスをしてブラウザーで表示させる

近所のアイス屋さんに行ったら、また1スクープ20セント値上げしていました。
最近の値上げラッシュがすごい!悲しみ!

今日はnginxでHTMLを表示する課題に着手したいと思います。

環境

Mac OS Monterey 12.4
さくらVPS上のDebian(ver.11) ※すでにDebianにnginxのインストールは完了しています。

手順

1. nginxがインストールされている事の確認

sudo nginx -v
=> nginx version: nginx/1.18.0

2. nginxを起動

sudo /etc/init.d/nginx start
=> Starting nginx (via systemctl): nginx.service.

nginxが Debian上で稼働し始めたので、つまりサーバーを動かすお仕事が始まっているということ。
確かめてみます。さくらのVPSから割り振られているIPアドレスまたはホスト名をアドレスバーに書くと"Welcome to nginx!"と表示されます。本当に稼働しています。

3. ディレクトリを解明する このWelcome to nginx!"が表示されるということは、nginxがDebianの中のどこかを参照しているということです。 どこを参照しているのかを確認します。

予備知識として、基本的なDebianディレクトリ構造を復習します。

引用:https://www.debian.org/releases/stable/s390x/apcs02.ja.html

実際のnginx構成ファイルを調べて確認します。参考

やり方は以下の通り。

cat /etc/nginx/sites-enabled/default

=># 以下が出力されます。
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
(中略)
#server {
#   listen XX;
#   listen [::]:XX;
#
#   server_name example.com; 
#
#   root /var/www/example.com;←ここです!!

私の場合:root /var/www/example.com;を参照していて、このディレクトリに入っているhtmlファイルを参照しているとわかりました。

このディレクトリに移動します。

cd  /var/www/example.com
=> bash: cd: /var/www/example.com: No such file or directory

そんなディレクトリは存在しないと怒られちゃいました。 フォルダ名が違うのかも、と一つ上の階層に移動します。

cd  /var/www
ls
=>html

どうやら/var/www/htmlが正式なディレクトリ名だったようです。 さらに中身を見ていきます。

ls
=>index.nginx-debian.html
cat index.nginx-debian.html

中身を見てみると、最初に表示された"Welcome to nginx!"のhtmlがこれでした。ちゃんと発見できました。 4. オリジナルのHTMLを置く

それではここからは、任意のHTMLを表示させるプロセスに移ります。

vimを使って作っていくことにしますが、まだvimをインストールしていなかったので このタイミングで入れておきます。

apt update
apt install vim

自分で作ったオリジナルのオリジナルのHTMLを/var/www/htmlディレクトリの中に置きます。

vim test.html

ファイルが開かれ、そこに任意のHTMLを書きます。私は使い慣れたVSコードで下書きしました。 :wqで上書き保存、終了。

5. アクセスをしてブラウザーで表示させる

Webブラウザから見る方法は、ブラウザのURL入力欄に以下を入力するだけです。

ipアドレス/test.html

こんな感じで無事表示できました。

参考

blog.goo.ne.jp

k-koh.hatenablog.com

nginxをセットアップする

季節はすっかり夏ですね。

フィヨルドブートキャンプに参加中です。

nginx の基本を理解するというカリキュラムに着手しています。

今日は、nginxをDebianにインストールしたいと思います。 その手順をまとめました。

環境

Mac OS Monterey 12.4 さくらVPS上のDebianバージョン11

手順

①ローカル環境からリモートでサーバーに接続する

# ポート番号を指定してログイン
$ ssh -p 54321 username@000.000.000.100
# PWを入力

Debianのバージョンを確認する

cat /etc/debian_version 
11.2

③システムを更新する

sudo apt update -y
sudo apt upgrade -y

④公式の情報を見ながらパッケージをインストールする 公式のパッケージ情報はこちら: nginx: Linux packages

私の場合はDebianなので、それをインストールする。

# 前提条件をインストール
$ apt update; apt install -y curl gnupg2 ca-certificates lsb-release debian-archive-keyring

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

$ gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list

# Debian11へのNginxのインストール
sudo apt install nginx

⑤インストールできている事の確認

すでにNginxWebサーバーが実行されているはず。次のコマンドを実行して確認する。

sudo systemctl status nginx

Active:active(running)が表示されたら、Nginxサーバーが正常に実行されていることを意味します。

私は公式の手順に沿ってインストールしましたが、日本語で詳しい手順はこちらが参考になりそうでした。

qiita.com

Git-itでGitの使い方をマスターする

春めいてきましたね。

f:id:ayk4:20220324185413p:plain
ヨーロッパもついに開花

Gitについて勉強している中で、Git-itという教材に取り組むことにしました。 インストール手順や、実際に使用してみてつまづいた点を書いておきたいと思います。

目的

  • Git-itの使い方を解説する
    • 自分自身の備忘録
    • 同じところでつまづいている方への参考

環境

ローカルMac
Git-itの最新4.4.0を使ってます。

手順

最新版のGit-it-Macをインストール。

f:id:ayk4:20220324191305p:plain
Git-it install

インストールしたフォルダ内の、Git-it.appを押す。 f:id:ayk4:20220324191936p:plain (エラーが出た場合はこちらの方法で解決してください)

するとGit-itのウィンドウが立ち上がります。
あとはカリキュラムに沿って進めます。 f:id:ayk4:20220324192059p:plain

つまづきポイント

  • 作業内容をリモートにプッシュしようとしたらエラーになった時。 エラーメッセージはこちら。
fatal: Authentication failed for ‘https://github.com/…’

これは2021年8月13日から、これまで利用していたGitHubのパスワード認証によるGit操作がNGになってしまったことが原因。この変更の目的はセキュリティ向上のため。 解決方法はPAT(Personal Access Token)の作成を行うこと。いちいち超長いPATを入力するのは非効率なのでPATをパスワードがわりにクライアント側で利用設定したら良い。

実際のPATの作成とキーチェーンアクセスへの登録作業手順はこちらのサイトを参考にさせていただいた。

web-guided.com


  • コラボレーターにreporobotを追加したいが、紛らわしいアカウントがたくさんある時。 正しいアカウントはこちら。 f:id:ayk4:20220324224039p:plain 猫の画像が目印です。

参考

[新人教育] 何も知らない人がGitとGitHubを独学で知る - Qiita

Git/GitHub 社内勉強会コンテンツ (最小限の手順まとめ) Git-it SourceTree - Qiita

さくらVPS上のサーバーにssh接続する

花壇のお花が綺麗です。 f:id:ayk4:20220326044931j:plain

自分用の覚書としてメモしています。

目的

  • ローカル環境からリモートでサーバー操作を安全に行うための設定。
    • 初期設定の22番ポートから任意のポート番号に変更を行う。
  • リモート接続するときに、都度パスワード入力作業を省略する。

環境

ローカルMac リモートDebian11 さくらVPS

手順

まずは、リモート側(さくらVPSVNCコンソール)で作業します。

sshをインストールする

# aptitude update
# aptitude install ssh

設定ファイルをコピーしバックアップを取る
やってもいいしやらなくてもOK

# cp /etc/ssh/sshd_config  /etc/ssh/sshd_config.org

ssh設定の変更のためsshd_configファイルを編集します。

$ sudo vi /etc/ssh/sshd_config

設定を書き換えます。(編集のやり方を忘れた場合⇨) viコマンドについて詳しくまとめました 【Linuxコマンド集】
まずはrootユーザーのログインを禁止するためPermmitRootLoginをnoに変更します。

PermmitRootLogin no

編集が終わったら、変更を反映させるために再起動します。(再起動しないと反映されません)

# /etc/init.d/ssh restart

rootユーザーのログインを禁止できているか確かめます。 クライアント側(私の場合はMac)からssh接続してみます。 設定がきちんとできていれば、rootユーザーではログインできず、別の設定したユーザーからはログインできるはずです。

# rootユーザーではssh接続できない
❯ ssh root@000.000.000.000
root@000.000.000.0000: Permission denied (publickey).

# 別のユーザーではssh接続できる
❯ ssh username@000.000.000.000
username@000.000.000.000's password: #パスワードを入力

# 抜ける場合は「exit」か「logout」
username@ik0-000-00000:~$ exit

ユーザー認証用の鍵(キーペア)を作成する このまま放置するとセキュリティが甘すぎるので、公開鍵認証を設定します。 さくらVPS(VSCコンソール)で作業します。

$sudo vi /etc/ssh/sshd_config

#パスワード認証の許可
PasswordAuthentication yes
#チャレンジレスポンス認証を許可
ChallengeResponseAuthentication yes

# 設定を反映する
$ /etc/init.d/ssh restart

さくらVPS(VSCコンソール)で作業します。

# ディレクトリの作成
$ mkdir ~/.ssh

# 読込・書込・実行を許可する
$ chmod 700 ~/.ssh

sshフォルダのパーミッションを700にするのは、ディレクトリのアクセス権限を本人しか読み書きできない権限(700)にするという意味です。

Macターミナルで操作 鍵を作成します。

$ ssh-keygen -t rsa

鍵が作成されているかを確認します。

$ ls ~/.ssh/
id_rsa   id_rsa.pub

これで.sshフォルダの中に、 id_rsa秘密鍵)とid_rsa.pub(公開鍵)というファイルが作成されています。

ちなみに id_rsaRSA(※1)の鍵を表すファイル名です。 (※1)RSAとは...Rivest Shamir Adlemanの略。公開鍵の暗号化の一種。Rivestさんと Shamir さんとAdlemanさんが作った暗号で、解読の難しさから、さまざまな場面で使用されている。

Macで作った公開鍵をさくらサーバーへ送信します。鍵の名前はauthorized_keysです。

$ scp ~/.ssh/id_rsa.pub username@000.000.000.000:~/.ssh/authorized_keys

さくらVPS(VSCコンソール)で作業します。 公開鍵の設定ファイル(authorized_keys)のパーミッションを変更します。

$ cd ~/.ssh/
$ chmod 600 authorized_keys

なぜ600という数字なのかというと、パーミッション(権限)は公開鍵の場合は600か400になっている必要があります。権限を600にするか400にするかは、どちらでも構いません。600の場合はファイルの所有者に読み取り、書き込み権限が付きます。 400にした場合は、読み取り権限のみが付きます。

$ sudo vi /etc/ssh/sshd_config
#ポート番号を指定。(※2)
Port <ポート番号>
#パスワード認証を禁止
PasswordAuthentication no
#チャレンジレスポンス認証を禁止
ChallengeResponseAuthentication no

設定を反映する

$ /etc/init.d/ssh restart

(※2)この時、ポート番号の前についている#を消し忘れないように!ついたままだと反映されません。(私はこれに小1時間気づかず悩みました。。。)

Macターミナルで操作 無事接続ができれば、認証鍵でのssh接続は完了です。

# ポート番号を指定してログイン
$ ssh -p 54321 username@000.000.000.100

参考

【さくらVPS】OS再インストールして、鍵認証でSSH接続する

ssh公開鍵認証を実装する - Qiita

SSH公開鍵認証で接続するまで - Qiita

最初の自己紹介

自己紹介

プログラミングを勉強しようと思ったきっかけはロックダウンです。

ドイツに住んでいるのですが、コロナの影響で約1年間断続的にロックダウンが続きました。

最初はただ不安と混乱に支配された生活でしたが、半年も経つとそれにもすっかり慣れて せっかく家に閉じこもらなくてはいけないこの期間、何か有意義なことをしようと思い立ちました。

何をやるか候補を考えたときに、「一生価値があること」「1人でできること」「影響範囲が広いこと」「無駄なもの(ゴミになりかねないもの)を生み出さないこと」を条件にしました。

外出できないし学校にも通えないので、何をやるかはあまり選択肢がなくて、プログラミングにしました。

何をやるか決めたあと

30代からエンジニアになりたいって思ったら、そりゃハードモードです。 最初から、プログラミングを学習するゴールの姿は、エンジニアの仕事が少しはできる事務の人を想定することに決めました。

事務系職場でエンジニア系のことがわかる人材は貴重です。 そしてどの事務系職場にもシステムは保有しているし、技術的な知識がある人は職場に1人いると便利です。

事務系の仕事は基本的に新しいことを生み出す機会は少なくて、いかに効率的に働くかという部分が重要でもあるので プログラミングを勉強することは必ずや自分だけではなく周囲の役にも立つだろうと思っています。

学習の紆余曲折

いざプログラミングに関する学習は、紆余曲折しました。

最初は上流工程の設計とか、用件定義などをメインで勉強をしようと思いMentaでコーチを依頼して取り組んだこともありました。

何でもそうですが、学習において「どう勉強するか」「良い教材に出会えるか」は、最も重要だと思います。 私の場合は、やろうと決めてから、これという教材に出会えるまで11ヶ月もの時間がかかりました(笑)

いろーーんな教材やスクールに手を出しては「違うな」を繰り返してきています。 そしてフィヨルドブートキャンプに入会して、ようやく「これだ」感を掴みました。

同じ境遇の日本にいる誰かにがその情報を必要としているかもしれないので、それについては別途記事を書きたいと思います。