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のディレクトリ構造を復習します。
実際の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
こんな感じで無事表示できました。
参考
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サーバーが正常に実行されていることを意味します。
私は公式の手順に沿ってインストールしましたが、日本語で詳しい手順はこちらが参考になりそうでした。
Git-itでGitの使い方をマスターする
春めいてきましたね。
Gitについて勉強している中で、Git-itという教材に取り組むことにしました。 インストール手順や、実際に使用してみてつまづいた点を書いておきたいと思います。
目的
- Git-itの使い方を解説する
- 自分自身の備忘録
- 同じところでつまづいている方への参考
環境
ローカルMac
Git-itの最新4.4.0を使ってます。
手順
インストールしたフォルダ内の、Git-it.appを押す。 (エラーが出た場合はこちらの方法で解決してください)
するとGit-itのウィンドウが立ち上がります。
あとはカリキュラムに沿って進めます。
つまづきポイント
- 作業内容をリモートにプッシュしようとしたらエラーになった時。 エラーメッセージはこちら。
fatal: Authentication failed for ‘https://github.com/…’
これは2021年8月13日から、これまで利用していたGitHubのパスワード認証によるGit操作がNGになってしまったことが原因。この変更の目的はセキュリティ向上のため。 解決方法はPAT(Personal Access Token)の作成を行うこと。いちいち超長いPATを入力するのは非効率なのでPATをパスワードがわりにクライアント側で利用設定したら良い。
実際のPATの作成とキーチェーンアクセスへの登録作業手順はこちらのサイトを参考にさせていただいた。
- コラボレーターにreporobotを追加したいが、紛らわしいアカウントがたくさんある時。 正しいアカウントはこちら。 猫の画像が目印です。
参考
さくらVPS上のサーバーにssh接続する
花壇のお花が綺麗です。
自分用の覚書としてメモしています。
目的
- ローカル環境からリモートでサーバー操作を安全に行うための設定。
- 初期設定の22番ポートから任意のポート番号に変更を行う。
- リモート接続するときに、都度パスワード入力作業を省略する。
環境
手順
まずは、リモート側(さくらVPSのVNCコンソール)で作業します。
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_rsa はRSA(※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
参考
最初の自己紹介
自己紹介
プログラミングを勉強しようと思ったきっかけはロックダウンです。
ドイツに住んでいるのですが、コロナの影響で約1年間断続的にロックダウンが続きました。
最初はただ不安と混乱に支配された生活でしたが、半年も経つとそれにもすっかり慣れて せっかく家に閉じこもらなくてはいけないこの期間、何か有意義なことをしようと思い立ちました。
何をやるか候補を考えたときに、「一生価値があること」「1人でできること」「影響範囲が広いこと」「無駄なもの(ゴミになりかねないもの)を生み出さないこと」を条件にしました。
外出できないし学校にも通えないので、何をやるかはあまり選択肢がなくて、プログラミングにしました。
何をやるか決めたあと
30代からエンジニアになりたいって思ったら、そりゃハードモードです。 最初から、プログラミングを学習するゴールの姿は、エンジニアの仕事が少しはできる事務の人を想定することに決めました。
事務系職場でエンジニア系のことがわかる人材は貴重です。 そしてどの事務系職場にもシステムは保有しているし、技術的な知識がある人は職場に1人いると便利です。
事務系の仕事は基本的に新しいことを生み出す機会は少なくて、いかに効率的に働くかという部分が重要でもあるので プログラミングを勉強することは必ずや自分だけではなく周囲の役にも立つだろうと思っています。
学習の紆余曲折
いざプログラミングに関する学習は、紆余曲折しました。
最初は上流工程の設計とか、用件定義などをメインで勉強をしようと思いMentaでコーチを依頼して取り組んだこともありました。
何でもそうですが、学習において「どう勉強するか」「良い教材に出会えるか」は、最も重要だと思います。 私の場合は、やろうと決めてから、これという教材に出会えるまで11ヶ月もの時間がかかりました(笑)
いろーーんな教材やスクールに手を出しては「違うな」を繰り返してきています。 そしてフィヨルドブートキャンプに入会して、ようやく「これだ」感を掴みました。
同じ境遇の日本にいる誰かにがその情報を必要としているかもしれないので、それについては別途記事を書きたいと思います。