今日のお勉強。180113-rbenvでRubyをインストール

rbenvでRubyをインストール。180113

$ brew update

した後に、

 

$ brew install rbenv

と打ったら、「Xcodeが古い」とエラーが出てしまいましたので、現在もインストール(アップデート?)してる最中です。

 

というわけで今日は調べたりしておりました。

 

Homebrew

Homebrewを使いこなせ!Macへのインストールや使い方。

パッケージ管理システム。ソフトウェア導入を単純化

ソフトウェアのインストールを簡単にする。


rbenv

Rubyのバージョンを切り替える。

プロジェクトごとにRubyのバージョンが異なったりするので、指定して使うことを可能にしてくれるツール。
(似たような機能を持ったツールとして、RVMがあるが、rbenvと相性が悪いそうです。主流はrbenv)


ruby-build
rbenvのプラグイン。rbenv installコマンドが使用できる

ruby-build | rbenv日本語リファレンス | Ruby STUDIO

 


〜コマンド〜

備忘録_最低限必要なbrewコマンド一覧 - Qiita

 

$ brew update

Homebrewを最新にする。

 

$ brew upgrade

インストール済みのパッケージを最新にする。

 

$brew doctor

Homebrewの環境診断

 

 

Rubyをインストールするには〜

[Ruby] Homebrew + rbenv 環境の Ruby を 2.1.0 に変更する | deadwood

 

[Ruby入門] 01.導入(Macに最新版のRubyを入れる) - Qiita

 

ruby 実行環境の構築 - rbenvの使い方とその仕組み | 割り箸ポテチ

 

brewをアップデートした後に、


インストールできるバージョンを確認する。一覧表示。
$ rbenv install -l


その後インストールする。
$rbenv install X.X.X


使うRubyのバージョンを指定。
$ rbenv local X.X.X

 


なかなか進みませんでしたが、次こそは進められるように頑張ります。

 

追記。180114

 無事xcodeのインストール完了しました。

 

$ brew install rbenv

rbenvをインストール。

 

$ rbenv version

(とくに入ってない。)

 

$ rbenv install -l

インストールできるものを一覧表示。たくさん表示されました!

 

最新が2.5.0なので、

$ rbenv install 2.5.0

 

 

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

 

と書いてパスを通すらしい。rubyインストール前に書かなきゃいけなかったみたいですが書き忘れてました。

ruby 実行環境の構築 - rbenvの使い方とその仕組み | 割り箸ポテチ

 

 

rbenv を利用した Ruby 環境の構築 | Developers.IO

 

$ rbenv global

で、確認すると、

2.5.0と表示されました。

rbenvを利用して複数バージョンのRubyをインストール - Qiita

 

$ rbenv version

と書いても、2.5.0だけしか入ってません。

 

しかし、

$ ruby --version

だと、2.0.0p648

と出てくるので、悩み中。

 

 

$ ls -a

隠れてるものも表示される。

 

 

調べてみると、 

$ ~

の階層で ls -a を書くと、

.ruby-version

や、

.rbenv

などが入ってるみたいです。

 

 

あと、

/usr/loca/Cellar/rbenv

を見ると、1.1.1が入ってました。

 

 

 

参考

実行中のRubyのバージョンを確認する - Qiita

.bash_profileとか.bash_loginとか.profileとか.bashrcとか.bash_logoutとか多すぎる - rderaログ

[Brew] install後の場所 | Gerolian

 

 

>>>さらに追記。

ターミナルを一度決して、またつけたら、

$ ruby -v

で、2.5.0と表示されました!やった!

力尽きたので、次までにスクショします…。

 

 

 

 

今日のお勉強。180109-rbenvでRubyをインストール

rbenvでRubyをインストール。180109

 やっとRubyの学習です!

 

Mountain Lion に rbenv を導入 - hrysd の旧ブログ

 

こちらのサイトを見ながら、sshVPSに繋げて、

 

$ brew update

 

と書いても何も反応が無く、焦りました。

 

よく見たらMacにインストールするのでVPSに繋げる必要は無かったようです…。

 

ローカルで上記のコマンドを書いてもダメだったので、調べてみました。

 

 

Homebrewをインストールするらしいです。

Mac OS X - Homebrew のダウンロードとインストール - 開発メモ - Webkaru

 

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

 

と、コピペするとインストール開始!

 

パスワード聞かれて焦りました。

 

「え!?ルート権限の方!?…なんだっけ?あれじゃない!これじゃない!これじゃあインストールできない(涙)」

 

思い当たるどのパスワードもダメで、しばらく布団で横になってふてくされてました。

 

ふと、毎回Mac起動してログインする時のパスワードを入れてないのでそれを入力したら、インストール開始されました!

 

少々インストールに時間かかりましたが、しばらくすると、

 

Installation successful!

 

と、表示され、無事にインストールできました。

 

 

ちなみに、

 

$ brew help

と書くと、ヘルプが見れるそうです。

 

 

Homebrewのインストールに時間かかってしまいましたが、無事にできて良かったです。

 

 

 

今日のお勉強。180107-nginxでSSL(sshでログインできないトラブル付き)

nginxでSSL…と思ったら、ログイン設定やり直しという自体に。180107

 

オレオレ証明書をopensslで作る(詳細版) - ろば電子が詰まっている

 

$ openssl genrsa 2048 > server.key

 

とコマンドを書いても、 ダメだったので悩んでたら、

$ apt-get install openssl

をインストールしました。

 

 

そのあと、うっかりしてしまいまして。

 

再起動しようとしてしたら、うっかりと、さくらvps自体を再起動してしまいました。

 

そしたら、sshで普段通り

$ ssh ユーザー名@ipアドレス

と、ログインしようとしたら、さくらvpsに繋がらなくなってしまいました…。

 

 

公開鍵認証のやり直しで時間かかってしまいました。

 

「よく分かる公開鍵認証」~初心者でもよくわかる!VPSによるWebサーバー運用講座(2) | さくらのナレッジ

 

 

$ ssh ユーザー名@ipアドレス -p ポート番号

 

設定したポート番号を付けないとログインできなくなってしまいました…。

 

 

ConoHaでVPSを借りて、SSH接続などの初期設定 - tkm_71のブログ

 

sshを使うための各設定 - Qiita

 

 

ローカルの、

/User/ユーザー名/.ssh

まで行く。

 

$ vi ~/.ssh/config

 

Host 【ホスト名(ユーザーアカウント?)】

HostName 【ipアドレス】 

User 【ユーザー名】

Port 【vpsで設定したポート番号】

IdentityFile ~/.ssh/id_rsa秘密鍵?)

 

 で、設定。

 

 

その後、

 

$ ssh 【configに書いたホスト名】

 

で、繋がりました。

 

 

トラブルと言いつつ、これで復習兼ねることがてきて、勉強になりました。

 

 

それはさておき。nginxでSSL

オレオレ証明書をopensslで作る(詳細版) - ろば電子が詰まっている

 

というわけで。sshログインのやり直しでかなり時間を取ってしまいましたが、気を取り直して、SSLです。

 

まずは

/etc/nginx/conf.d/

まで行く。

 

$ openssl genrsa 2048 > server.key

 

$ openssl req -new -key server.key > server.csr

これを書いたあと色々聞かれました。

 

$ openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt

 

その後、

$ sudo vim /etc/nginx/sites-available/nashiko.conf

 

以下を追記。

 

server {
listen 443 ssl;
server_name www.ドメイン;
ssl_certificate /etc/nginx/conf.d/server.crt;
ssl_certificate_key /etc/nginx/conf.d/server.key;
}


server {
listen 443 ssl;
server_name ドメイン;
ssl_certificate /etc/nginx/conf.d/server.crt;
ssl_certificate_key /etc/nginx/conf.d/server.key;
}

 

 

上記を記述したあとに、

$ sudo service nginx stop

$ sudo service nginx start

nginxを停止・起動。

 

 

そしたら、「プライバシーが保護されておりません」と、ブラウザに表示されました!

 

今日のお勉強。180104-nginxでSSL

nginxの復習。180104

nginx設定メモ - おおにしあきらの日記

 

プログラミングビギナーNekoteniがあなたに贈る!NginxでVirtual Hostの巻 - ねこテニ

 

復習がてらにVirtualHostについて目を通しました。

 

$ sudo nginx -V

で、設定を見ることができることを知り、とても便利だと思いました。

 

nginxでSSL

最初わけがわからなくなり、SSLってどこのディレクトリで設定するのだろう。デフォルトのSSLあるのだろうか。と、しばらく迷走(苦笑) 

 

調べて見ると、

 

/etc/nginx/sites-available

のところに、ssl(ポート番号443)を追記する形ということを知りました。

 

 

他、調べた時に参考にしたサイト

nginxのserver_nameとSSLの設定についてのメモ · GitHub

 

$ find ファイル名

で、検索。

*(アスタリスク)マークで、あいまい検索。

ファイルなどを検索する!findコマンドの詳細まとめ【Linuxコマンド集】

 

 

サーバー証明書とプライベート鍵を用意しなくちゃ。

nginx連載6回目: nginxの設定、その4 - TLS/SSLの設定 - インフラエンジニアway - Powered by HEARTBEATS

 

 

さくらVPSにSSLサーバー証明書を設定する(CentOS7+nginx+RapidSSL) | GoodLife.tech

 

 

さくらのVPSにnginxをインストールしSSLサーバ証明書を導入する - Qiita

 

さくらVPSSSLしようとしたら、課金しなければならないのですね…。

 

 

商品・価格一覧 | さくらのSSL

 さくらSSL、選ぶプランによって、金額の差がすごい…!

 

年十何万のSSLのプランはどんな人が使っているのだろう。 と思って見てみたら、取得可能なのは、企業・団体。

 

おぉ…!銀行とかだろうか…。

  

SSLとは。 

SSLの仕組み | 基礎から学ぶSSL入門ガイド | CSP SSL

 

SSLはブラウザ〜サーバー間を暗号化。

 

サーバー証明書とは。

信頼おける第三者機関(認証局)が発行した電子的な証明書。

なりすましや、データの盗聴、改ざんを防ぐための基盤。

 

1.申請者が、認証局に、申請データ(公開鍵・本人データ)を提出する。

 

2.認証局は、申請データを審査。

 

3.審査が通ったら、申請データの公開鍵にデジタル署名を施して、デジタル証明書を作る。

 

4.認証局は、デジタル証明書を申請者に発行。

 

 

このデジタル署名は、一部でも改ざんがあると、作成・復元ができない。らしい。

 

デジタル署名は、本人確認・改ざんの有無の確認

 

 

 

今日のお勉強。171222-nginxでVirtualHost

nginxでVirtualHost171222

 お名前.comでドメインを買いました!

 

1円で取得できるものもあると聞いて、昔、携帯電話が1円で購入できた時代を思い出します。

まるで1円携帯のようですね。 

 

 

DNS(ネームサーバー)の設定はこちらを参考にしました。

 

お名前.comで取得したドメインをサクラVPSに設定する - mfks17’s diary

 

お名前.comで取得したドメインをさくらVPSで使う方法

 

【ドメイン設定】他社で取得・管理中のドメインを利用 – さくらのサポート情報

 

 

プライマリーネームサーバー

利用中のネームサーバー。メインで動いてる。

人が設定するもの。

 

セカンダリーネームサーバー

プライマリーネームサーバーから教えてもらって設定されている。

 

プライマリDNSサーバ

 

もそもーチャルホストとは

バーチャルホストとは | クラウド・データセンター用語集/IDCフロンティア

引用:「バーチャルホストは、一台のサーバーで仮想的に複数のドメインを運用するサーバー技術の一種で、主にメールサーバーやWebサーバーなどで利用されています。」

 

1つのサーバーで複数のドメインを運用することによってコスト削減にもなる、らしい。

 

 

ーチャルホスト。

 お名前.comとさくらインターネットで、ドメイン関連を設定した後、バーチャルホストに挑戦しました。

 

nginx バーチャルホスト - nginx @ ウィキ - アットウィキ

これを参考に、

 

mkdir /home/ユーザー/public_html

を作成。

 

mkdir -p /home/ユーザー/public_html/ドメイン/{public,private,log,backup} 

 も作成。

 

sudo vi /home/ユーザー/public_html/ドメイン/public/index.html

でindexファイル作成。

 

 

sudo vi /etc/nginx/sites-available/ほにゃらら.conf

の中に記述したもの。

 

server {
listen 【ipアドレス】:80;
server_name ドメイン;
access_log /home/ユーザー/public_html/ドメイン/log/access.log;
error_log /home/ユーザー/public_html/ドメイン/log/error.log;
location / {
root /home/ユーザー/public_html/ドメイン/public/;
index index.html;
}
}
server {
listen 【ipアドレス】:80;
server_name  www.ドメイン;
access_log /home/ユーザー/public_html/ドメイン/log/access.log;
error_log /home/ユーザー/public_html/ドメイン/log/error.log;
location / {
root /home/ユーザー/public_html/ドメイン/public/;
index index.html;
}

 

その後、nginxを停止・起動。

 

最初、.confという付け方してなかったため、うまくいきませんでしたが、.confにした途端、できるようになりました。

 

f:id:nashiko_chan:20171223031945p:plain

 

 

ln コマンド

ファイルやディレクトリにリンクを貼る。

 

 

 

 

 

 

今日のお勉強。171219-nginx (171221追記)

nginx。171219

 virtialhostについて学習する途中に思い出しまして。

前回学習の時に指摘していただいたところを。

 

/etc/nginx/conf.d/default.conf

のdefault.confは作る必要はなかったため、rmコマンドで消去。

 

 /etc/nginx/site-available/default 

の方を調整してました。

 

f:id:nashiko_chan:20171220011910j:plain

f:id:nashiko_chan:20171220011928p:plain

 

(すみません、この後serverのlistenの書き方が間違えてたことに気がつき、 [ipアドレス]:80;と書きました。)

 

http {

}

のくくりが最初なかったため、付け足して、

/var/www/html

に、

index.nginx-debian.html

があったので一部書き換えたのですが

 

f:id:nashiko_chan:20171210024816p:plain

 

前回と変わりません…。

 

おそらくどこかで、

/usr/share/nginx/html

の方に行ってしまってるのかと思われます。

 

 

謎に感じており、ハマってしまいましたが、もうちょっと調べてみようと思います。

 

 

追記。171221

アドバイスをいただき、nginxを停止・起動を試してみたところ、うまくいきました。

ありがとうございます。 

 

f:id:nashiko_chan:20171222002322p:plain

 

nginx停止

service nginx stop

 

nginx起動

service nginx start

 

 

アクセスログとエラーログという存在を知りました。

 

/var/log/nginx

の中に、

 

access.logと、error.log

がありました。

 

catコマンドで出力してみましたが、書いてある意味がよくわからなかったため、もっと勉強しなくちゃ。と、若干焦り。

 f(^_^;)

 

 

 

今日のお勉強。171209-HTTPの基本とnginxの基本。

HTTPの基本。171209

 今日はHTTPの基本を勉強。

 

 ポート番号について、大事なところは、

 

20、21はファイル転送(FTP

22はssh

23はtelnet

25はsmtp(メール送信)

80はhttp

110はpop3(メール受信)

 

ポート番号は覚えきれないくらいたくさんありますね。

 

requestとresponse

クライアント側がリクエストし、サーバーが何かを計算してレスポンスをする。

GETとかPOSTとか書いてたのは、リクエストしてた方。

リクエスト後にざーーーっと書かれたのはレスポンス。

f:id:nashiko_chan:20171208013559p:plain

 

HTTP リクエストとレスポンス

http(通信プロトコル)とは?httpの仕組みと、通信内容(リクエストヘッダとレスポンスヘッダ)の確認手順まとめ

 

headerとbodyについて。

headerは情報。

bodyはHTML。

 

 

nginxの基本。

その後、nginxの設定を行いました。

 

まずは、

/etc/nginx/conf.d/default.conf

ここにdefault.confというファイルを作ります。(新規作成でした)

そこに、

 

 

http {

      include /etc/nginx/default.conf;

server{

        listen 【ipアドレス】;

        server_name localhost;

       

        location / {

        root /usr/share/nginx/html;

       index index.html index.htm;

  }
        error_page 500 502 503 504 /50.html;

        location = /50x.html {

             root     /usr/share/nginx/html;

}

}

}

 

と記述。

 

listenはリクエストを受け付けるIPアドレスやポート番号などを設定。

server_nameはサーバー名を設定。

 

 

その後、locationに書いてある階層のindexを書き換える。

/usr/share/nginx/html/index.html

 

vimで書き換える時、

sudo vim ほにゃらら

と、書かないと、権限の関係で、保存も終了もできなくなるため、どうやらroot権限でないとダメみたいです。

 

もしうっかりsudo書かずにvimで書いてしまった時は、

:w !sudo tee %

と書くと保存できました。

vimのsudo忘れで保存できないときの対策メモ

 

 

あとhtml.indexですが、文字コードはmetaタグにてutf-8にしないと文字化けしてしまいます。

 

 

結果は、これを

f:id:nashiko_chan:20171124010557p:plain

こんな感じにしただけですが、成功!

f:id:nashiko_chan:20171210024816p:plain