Tag Archives: Linux

はじめに

巷には、LightsailのWordPressでLet’s Ecryptを使ってSSL化する方法が数多く紹介されてます。
その中でも一番確実なのは、Bitnamiのドキュメンテーション通りに実装する方法であると考えています。
なぜなら、LightsailでWordPressを使う場合、必ずBitnamiだからです。

私はQiita等で紹介されている方法に従い、Let’s Encrypt を入れましたが、上手くSSL化されませんでした。
しかしBitnamiに紹介されている方法で入れたところ、上手くSSLかに成功しました。
なので私はこの方法を推奨しています。

しかし難点が一つあります。それはBitnamiのドキュメンテーションが英語だけなのです。
そこで今回、このBitnamiのドキュメンテーションをベースに、私なりの解説記事を書くことにしました。
この記事に従ってもらえれば、Bitnamiのドキュメンテーションに従って設定したことになります。
なるべく短時間に実現できるよう、余計な記述は省きました。

なおこの記事は、2019年2月9日現在のものがベースになっています。
要望があれば、定期的に更新するようにしたいと思います。

公式HP:
https://docs.bitnami.com/aws/how-to/generate-install-lets-encrypt-ssl/

 

Bitnami用にSSL証明書を作成する方法

前提条件

  • Lightsail上にBitnamiのWordPressを設定していること。
  • 静的IPアドレスを設定していること。
  • ドメイン名を所有していること。
  • DNS ゾーンを設定していること。

自動設定スクリプトを実行する

最新のBitnamiには、自動設定スクリプトが用意されているようです(私のころはなかった)。
この自動設定スクリプトを使う場合は、以下を打つだけで設定できます。

YOURMAILとYOURDOMAINを実際のメールアドレスとドメイン名に置き換えてください。

 

以下に手動で行うための手順を記載しておきます。
古いBitnamiを使用している方はこちらをお試しください。私はこの方法で設定しました。

手順1:Legoクライアントをインストールする

Legoクライアントを使うことで、Let’s Encrypt の証明書を簡単に行うことができます。
手順は以下の通りです。

  • Lightsailから、”SSLを使用して接続”を押して、コンソールにログインする。
  • curlコマンドを実行して、Legoクライアントをインストールする。
  • tarでダウンロードしたファイルを解凍する。
  • X.Y.Zには、実際のバージョン番号で置き換えるのを忘れずに。

 

手順2:ドメインの証明書を暗号化する

注:この手順を進める前に、ドメイン名がBitnamiアプリケーションホストのパブリックIPアドレスを指していることを確認してください。

次のステップでは、自分のドメインのLet’s Encrypt証明書を生成します。

  • すべてのBitnamiサービスを無効にする:

  • 以下のように、ドメインの新しい証明書を要求する(wwwプレフィックスの有無にかかわらず)。
  • DOMAINを実際のドメイン名に置き換え、EMAIL-ADDRESSをメールアドレスに置き換えてください。

注記:指定するドメインの数だけ-domainsオプションを指定することにより、複数のドメイン(たとえば、DOMAINおよびwww.DOMAIN)を使用できます。

  • 利用規約に同意します。

/etc/lego/certificatesディレクトリに、一連の証明書が生成されるようになりました。

手順3:Let’s Encrypt証明書を使用するようにWebサーバーを構成する

次に、Webサーバーに新しい証明書を次のように伝えます。

  • 使用しているWebサーバーに応じて、新しいSSL証明書と証明書キーファイルを正しい場所にリンクします。rootユーザーだけが読み取り可能にするために、ファイルのアクセス許可を更新します。DOMAINを実際のドメイン名に置き換えてください。

Apacheの場合:

NGINXの場合:

 

ヒント:BitnamiスタックがApacheまたはnginxを使用しているかどうかを調べるには、コマンドsudo /opt/bitnami/ctlscript.sh statusの出力を確認してください。

  • すべてのBitnamiサービスを再起動します。

手順4:構成をテストする

https://DOMAINにアクセスしてください(DOMAINを正しいドメイン名に置き換えてください)。

ブラウザのアドレスバーにある南京錠のアイコンが表示されていることを確認してください。

この南京錠のアイコンをクリックすると、ドメインとSSL証明書の詳細が表示されます。

この一連の作業ができれば設定完了です。

手順5:Let’s Encrypt証明書を更新する

暗号化しようとする証明書は90日間有効です。有効期限が切れる前に証明書を更新するには、サーバーコンソールからbitnamiユーザーとして次のコマンドを実行します。DOMAINを実際のドメイン名に置き換え、EMAIL-ADDRESSをメールアドレスに置き換えてください。

失敗する場合:
私はこの方法だと以下のようなエラーが発生しました。

その場合、legoのバージョンアップを行うことで解決します。以下コマンドを打ってバージョンアップしてください。

参考URL:
https://community.bitnami.com/t/lets-encrypt-ssl-certificate-not-renewing/64327/5

 

有効期限が切れる前に証明書を自動的に更新するには、上記のタスクを実行するシェルスクリプトを作成し、定期的にスクリプトを実行するcronジョブをスケジュールします。手順を以下に記載します。

  • /etc/lego/renew-certificate.shに次の内容のスクリプトを作成します。DOMAINを実際のドメイン名に置き換え、EMAIL-ADDRESSをメールアドレスに置き換えてください。

  • スクリプトを実行可能にする:

  • 次のコマンドを実行してcrontabエディタを開きます。

  • crontabファイルに次の行を追加して保存します。

 

以上です。
この記事がいいねと思ったら、以下の方にある”この記事いいね!”ボタンを押してください。
管理人のモチベーションがあがります(笑)
いいね! ←この記事いいね!
Loading...

はじめに

私は、ゆたか先生のLinux デバイスドライバプログラミングという本を読み始めました。
私が実際にカーネルプログラムを動かした時の覚書を残していきたいと思います。

この本は2008年に執筆された本であり、記述が古いことがあります。
そういうところを補完できればと考えています。

私の環境は以下の通りです。

  • Ubuntu 18.04 LTS

マシンスペックは以下の通りです。

  • マザーボード:ASRock Z370M-ITX
  • CPU:Intel Core i5 8400 BOX
  • GPU:NVIDIA GeForce GTX 1060 6GB (*1)
  • メモリ:DDR4-17000 8GB
  • SSD:M.2 256GB
  • 電源:SILVERSTONE SST-SX600-G
  • CPUクーラー:白虎 775-1366
  • ケース:RAIJINTEK METIS PLUS

 

Linux Kernelをダウンロード&解凍

以下URLからLinux Kernelをダウンロードしてください。

https://www.kernel.org/

私は現時点でStableの4.20.3をダウンロードしました。

linux-4.20.3.tar.xz

 

ダウンロードしたファイルは、ホームディレクトリに置いてください。
そして以下コマンドで解凍してください。

 

 

Linux Kernelのビルド方法を確認

まず、カーネルビルド方法が書かれているドキュメントを確認します。
ドキュメントの保存場所は以下の通りです。

Documentation/admin-guide/README.rst

日本語版を用意してくれているサイトを見つけた。神すぎる。
https://doc.kusakata.com/admin-guide/README.html

 

 

カーネルコンフィグレーション

カーネルをビルドする前に、カーネルにどんな機能を組み込むのか選択する必要があります。
これは、以下コマンドで実行できます。

 

私の環境の場合、いくつかのモジュールが足りないと怒られてしまいました。
私は色々検索した結果、以下モジュールをインストールしました。
(他にもインストールした気がするのですが、メモし忘れました…
でもターミナル上に対処法が出ていたので、それ通りにインストールすればOKなはずです。)

(参考)https://www.linuxquestions.org/questions/debian-26/compile-of-kernel-4-16-fails-4175628085/

 

さて気を取り直して、以下コマンドを実行します。

 

すると、以下画面が表示されます。

 

一度でもビルドを行うとクリーンアップが必要です。その時は、makeの前に以下のコマンドを打ちます。

 

今日はここまで。
続きは、この記事を更新していきたいと思います。

この記事がいいねと思ったら、以下の方にある”この記事いいね!”ボタンを押してください。
管理人のモチベーションがあがります(笑)

いいね! ←この記事いいね!
Loading...

はじめに

この記事では、以下内容を記載しています。

  1. Ubuntu 18.04 LTSに、最新のChainer 5.1.0(2019/1/21 執筆時点)をインストールする
  2. GPUを設定する
  3. MNISTサンプルを実行する

私のデスクトップPCのスペックは以下の通りです。

  • マザーボード:ASRock Z370M-ITX
  • CPU:Intel Core i5 8400 BOX
  • GPU:NVIDIA GeForce GTX 1060 6GB (*1)
  • メモリ:DDR4-17000 8GB
  • SSD:M.2 256GB
  • 電源:SILVERSTONE SST-SX600-G
  • CPUクーラー:白虎 775-1366
  • ケース:RAIJINTEK METIS PLUS

 

このデスクトップPCは、Deep Learningを勉強するために、2018年3月に購入しました。
それぞれ安い部品をネットや実店舗で探して購入しました。パーツ代は合計で約10万円ちょいだったと記憶しています。

(*1) 当時、マイニングが流行っており、GPUがとても高価でした!今は当時と比べると1万円ほど安くなってました。。。

 

普段はノートPCからSSHでアクセスして動かしていますが、今回はデスクトップPC上で操作しています。

 

 

最新のChainerをインストールする

ターミナルを開き、以下コマンドを順番に入力してください。

 

これで最新のChainer がインストールされます。
もし5.1.0をインストールしたい方は、以下のようにコマンドを入力してください。

 

GPUを設定する

次にGPUをセットアップしていきます。
NVIDIAが提供しているCUDAというライブラリと、それに対応したGPUを利用することで、Chainerの学習時間を劇的に短縮できます。

学習内容や使用するGPUにもよると思いますが、私の場合、約5倍ほど早くなっています。
もしGPUをお持ちでしたら、設定することをおすすめします。

 

1. CUDAのインストール

以下ホームページにアクセスしてください。

https://developer.nvidia.com/cuda-toolkit

 

まず、”Downloard Now” をクリックします。

次に、環境に合わせて選択していきます。私は以下のように選択しました。

  • Operation System: Linux
  • Architecture: x86_64
  • Distribution: Ubuntu
  • Version: 18.04
  • Installer Type: deb(network)

 

Installer Typeを選択すると、下にDownloadのリンク先が”にょきん”と出てきますので、Downloadをクリックします。
2.9KBしかないので、一瞬で終わります。

 

ダウンロードが終わったら、今度はそいつを展開し、インストールしていきます。
デフォルトではダウンロードディレクトリにあるはずです。

今回はひとまずホームディレクトリに移動し、CUDAをインストールします。
再びターミナルを開き、以下コマンドを順番に入力してください。

 

私はこの手順でやったところ、何故かエラーが発生し、インストールできませんでした。
このコマンドを打って再インストールしたところ、無事にCUDAがインストールできました。

インストール後は、PCを再起動してください。

再起動後、ターミナルを開き、以下コマンドを入力してみてください。

 

以下のような表示がされれば、インストール成功です。
この表示をやめる場合は、Ctrl + c を入力してください。

 

2. cuDNNのインストール

cuDNNはNVIDIAが公開しているディープラーニング用のライブラリです。

以下ホームページにアクセスしてください。

https://developer.nvidia.com/cudnn

Download cuDNNをクリックします。

 

するとメンバーシップ登録の画面が出てきます。
初めての方はJoinをクリックし、メンバーシップ登録してください。
私は過去にダウンロードしたことがあり、メンバーシップになっているのでLoginをクリックしました。

自身のアカウントでログインすると、以下画面が開きます。

 

cuDNN Software License Agreementにチェックします。

すると”にょきっと”選択画面が出てくるので、cuDNN v7.4.2 をクリックします。

 

するとさらに、”にょきっと”選択画面が出てくるので、以下の3つをクリックし、それぞれインストールします。

  • cuDNN Runtime Library for Ubuntu18.04 (Deb)
  • cuDNN Developer Library for Ubuntu18.04 (Deb)
  • cuDNN Code Samples and User Guide for Ubuntu18.04 (Deb)

 

 

ダウンロードが終わったら、今度はそいつらを展開し、インストールしていきます。
デフォルトではダウンロードディレクトリにあるはずです。

今回はひとまずホームディレクトリに移動し、cuDNNをインストールします。
再びターミナルを開き、以下コマンドを順番に入力してください。

 

3. CuPyのインストール

最後にCuPyをインストールします。
CuPyは、行列計算をするためのモジュールです。

Pythonで行列計算を行う場合、通常はNumpyを使うと思いますが、これはCPUでしか計算できません。
このCuPyはGPUで計算することが可能です。

 

再びターミナルを開き、以下コマンドを入力してください。

これだけです。

以上でGPUの設定が完了しました。

 

 

MNISTサンプルを実行する

最後に動作確認も兼ねて、Chainerが用意してくれている、MNISTサンプルを実行してみます。
MNISTとは、手書きの数字画像とテスト画像を集めた画像データのセットです。

 

再びターミナルを開き、以下コマンドを順番に入力してください。

これでMNISTサンプルのダウンロード&展開が完了です。

 

次にこのサンプルを実行していきます。
まずはCPUを使って学習させてみましょう。以下コマンドを入力してください。

 

するとこんな画面が出てきます。

 

次にGPUを使って学習させてみます。以下コマンドを入力してください。

-gの後の数字について記載しておきます。
この数字には、GPU番号を指定します。

あなたのGPU番号は以下コマンドで確認できます。

このコマンドを打つと、以下画面が表示されます。
ここのGPUという箇所を見てください。この例の場合は0なので、GPU番号は0です。

 

コマンドを入力すると、以下のような画面が出てきます。

 

elapsed_timeが実行時間です。
CPUの実行時間と比較すると、GPUの方が3.5倍ほど早いことがわかります。

それぞれのパラメータについては、今回のスコープからは外れるので、また別の機会とさせてください。

これらがきちんと実行されれば、Chainerのインストール及び、GPUの設定はうまくいっています。
おつかれさまでした。

 

以上です。

この記事がいいねと思ったら、以下のいいねボタンを押してください。
管理人のモチベーションがあがります(笑)

いいね! ←この記事いいね!
Loading...