無料で使えるAPIを紹介

無料で使えるAPI

皆さんこんにちは。

今日はフロントエンドで使えそうな、ポートフォリオのプロジェクトで使えそうな無料のAPIを紹介します。

真面目なものから、ふざけたものまで色々集めたので是非、使ってみてください。

NASAの宇宙API

ユーザー登録が必要です。

日替わりの宇宙画像とかがあるそうです。

https://api.nasa.gov/index.html

天気予報API

天気情報のAPIは誰しもが使うマストなAPIですね。簡単な天気アプリとかに使えそうです。

これもユーザー登録が必要になります。

https://openweathermap.org/api

米国株式のAPI

Polygon.ioというところが提供しているAPIです。GitHubで登録してAPIキーを手に入れた後にAPIにアクセスできるようです。


ユーザー登録なしで使えるAPI

ここから、ユーザー登録が不要ですぐに使えるAPIを紹介します。

ポケモンAPI

みんなの大好きなポケモンのデータがAPIになりました。

https://pokeapi.co/

参考URL: https://pokeapi.co/api/v2/pokemon/charizard

カクテルAPI

カクテルのレシピがAPIになってます。

https://www.thecocktaildb.com/api.php

サンプルURL:https://www.thecocktaildb.com/api/json/v1/1/search.php?s=margarita

ビットコインAPI

クリプトのAPIです。CoinBaseが提供しています。

https://docs.cloud.coinbase.com/sign-in-with-coinbase/docs/api-users#data-endpoints

サンプルURL:https://api.coinbase.com/v2/currencies

為替API

為替のレートのAPIです。

https://www.coingecko.com/en/api

サンプルURL:https://api.coingecko.com/api/v3/exchange_rates

アメリカの統計

アメリカの人口や統計がデータになったAPIです。

https://datausa.io/about/api/

サンプルURL: https://datausa.io/api/data?drilldowns=Nation&measures=Population

犬の画像

ランダムで犬の画像が表示されます。

https://dog.ceo/dog-api/

サンプルURL:https://dog.ceo/api/breeds/image/random

アニメAPI

アメリカで有名なMyAnimeListの非公式のAPIです。

https://jikan.moe/

サンプルURL: https://api.jikan.moe/v4/anime?q=naruto&sfw

本のAPI

OpenLibraryという組織で提供している本のAPIです。

https://openlibrary.org/developers/api

サンプルURL: http://openlibrary.org/api/volumes/brief/isbn/9780525440987.json

ランダムユーザーAPI

自動でユーザーを生成してくれるAPIです。

https://randomuser.me/

サンプルURL: https://randomuser.me/api/

とりあえず、これだけあれば次のプロジェクトの参考になるのではないでしょうか?

お疲れ様でした。

UbuntuサーバーのコードをGitHubにプッシュする方法

UbuntuサーバーからGitHubにプッシュ

GitHubにリポジトリを作成してコードを公開したい、もしくはプライベートで管理したいですよね。 今回はUbutnuサーバーでデプロイしているコードをコマンドラインからGitHubにアップロード(プッシュ)する方法をご紹介します。 これができるとちょっとしたコードの変更があった場合にGitHubにコマンドラインで更新できるのでバグ修正をすぐに行い公開することができちゃったりしますね。 でGitHubにあげたコードは自分のパソコンにクローンしてまた作業ができるようになります。 後からのGitでの更新作業を考えると、Git CloneでGitHubのリポを先にサーバー側にコピーしてあげるのが一番良いです。 今日の条件 ①Ubuntuサーバー(22.04)とSSHアクセス 他のOSでもよいですがコマンドが変わる可能性があります。 ②GitHubのアカウント 今回初めてGitとGitHubを使う人は下記の動画から基本を学んでみてください。 SSHが分からない人は下記の動画を見てください。 Gitをインストールする では、UbuntuサーバーにSSHで接続した状態にしてください。 で、ターゲットとなるディレクトリに移動して.gitファイルを作成します。 もし、GitHubからリポをクローンしている場合は飛ばしてください。 コミットができたのでRPGゲームでいうセーブが完了しました。 ではこのセーブデータをシェアするためにGitHubを接続します。 GitHubで使うSSHキーを作成する ではUbuntuサーバーでSSHキーを生成してGitHubにそのパブリックキーの方を渡すような流れになります。 SSHのフォルダーに移動します。 SSHキーを作成します。 ファイルの保管場所を聞かれるので問題がなければそのままエンター パスフレーズの聞かれるので必要に応じて秘密のパスワードを作成します。 なくても大丈夫です。その場合はただエンターを押して次に進みます。 これでid_rsaとid_rsa.pubの二つのキーができました。 では下記のコマンドでパブリックキーの方を閲覧します。 ではこれをコピーします。ターミナルでハイライトすると自動でクリップボードにコピーされますね。 GitHubでSSHのパブリックキーを登録 ではGitHubのサイトに行き、設定の画面を開きます。英語だとSettingsですね。 その中に、SSH and GPG Keysというオプションがあるのでそれをクリックします。 右上の緑のNew SSH Keyのボタンを押して先ほどコピーしたキーを貼り付けます。 タイトルは自分で管理するために使うので分かりやすいように説明を付けてあげてください。 Ubuntuサーバーからコードをプッシュする では、最初にコミットしたコードをGitHubにプッシュ(アップロード、更新)します。 ちゃんと.gitのある場所に戻りましょう。 GitHubのプッシュしたい先のSSHのURLをコピーします。 ではコードのプッシュ先を下記のコマンドで登録しておきます。 では下記のコマンドでGitHubにコミットしたコードをプッシュします。 ちなみにGitHubのブランチ名が何になっているか確認しましょう。 メインのリポにプッシュする場合はmainとかmasterになっているはずです。 もしブランチ名(枝名)をmainに変えたい場合はこのコマンドで。 レッツゴー! yesと入力し接続を完了させます。 トラブルシュート もし、GitHubの接続先にすでにリポが存在する場合はエラーが発生します。 もし、強制的にサーバー側からのコードでプッシュしたい場合は下記のfフラグで更新できるようになります。 GitHubのリポが更新されました。 お疲れ様です。

複数のDjangoのアプリを同じサーバーからデプロイする方法

複数のサイトを一つのサーバーからデプロイする方法

皆さん、こんにちは! Djangoのアプリはデプロイできたけど、複数のDjangoアプリを同じサーバーからデプロイしたいという方に是非読んでほしい記事です。 Djangoのアプリのデプロイができたら複数のDjangoアプリをデプロイすることも特に難しいことはないので是非チャレンジしてください。 今日の環境 Ubuntu 22.04のインストールされたサーバー SSHで接続できる状態 Djangoアプリが一つデプロイされている状態 詳しいDjangoのデプロイについては下記の記事から進めてください。 Djangoがデプロイができたらこの記事に戻ってきましょう! 今日はticketauthという名前のアプリをデプロイします。 あと、Linuxのコマンド(Bash)が少しわかっている方が理解しやすいです。 今日のスタック 今日は上記の記事で紹介したNginxをウェブサーバー、GunicornをWSGIのアプリケーションサーバーとして使用したものに2つ目のDjangoを追加するようにします。 Djangoがデプロイできた状態でさらにもう一つDjangoのアプリを同じサーバーからデプロイするような形で進めます。 ユーザーがアクセスする方法 同じサーバーに複数のドメイン(なんとか.comとか)でそれぞれのDjangoアプリに誘導する方法もあります。 今日は今使っている80番のポートがあるので81番のポートを開けてユーザーがIPアドレスから2つ目のDjangoアプリにアクセスできるようにします。 Djangoアプリをアップロード では、自身で作成したDjangoアプリ(2つ目)をアップロードしましょう。 場所はどこでもよいですが、前回はhome/user名の直下に置いたので同じ階層に置きます。 ticketapiが前回デプロイしたものです。 tikcetapiAuthが今アップロードしたばかりのものでこれからデプロイします。 下準備 では、前回の記事を参考にしながら、下記のDjangoの下準備を進めましょう。 Django用に仮想環境を作成 仮想環境をアクティベート pipでDjangoプロジェクトのライブラリをインストール Settings.pyのコンフィグ設定 DBの設定(PostgreSQLに接続) Staticファイルの扱い データベースのマイグレーション スーパーユーザーの作成 collectstaticの実行 ファイヤーウォールの設定 Djangoのテストサーバーでテスト Gunicornを使ってテスト Gunicornの設定ファイルの作成 ではDjangoのテストサーバーでIPアドレスからアクセスして問題がないようでしたら、2つ目のDjango用に新しくGunicornの設定ファイルを作成します。 今回使うのは、SocketファイルとServiceファイルです。 Gunicornのソケットファイルの作成 前回の記事でgunicorn.socketファイルを作成しているので2つ目のアプリ用と分かるような名称にして.socketファイルを作成します。 中身はこんな感じになります。 Gunicornのサービスファイルの作成 サービスファイルはGunicornがDjangoのファイルをプロセスするためのコンフィグファイルになります。 テストサーバー(python manage.py runserver)の本番用という事ですね。 では下記のコマンドでサービスファイルを作成します。 中身はこのような感じです。 次に下のコマンドでGunicornソケットを実行します。これで自動でソケットファイルが作成されます。 次にこれをEnable(実行:オン)にします。これで、ソケットに接続された際にsystemdが自動でgunicorn.socketを実行して処理してくれるようになります。 Gunicorn Socketファイルを確認しよう gunicorn.socketをアクティブにします。 … Read more

Gunicornってなに?

Gunicornって何

DjangoやFlaskなどのPythonアプリケーションをデプロイする際に使うGunicorn(ジーユニコーン)。 デプロイはできたけど、実際にどのような役目をしているのか分かりづらいですよね。 今日はGunicornについて紹介していきます。 Gunicornとは Gunicorn(Green Unicorn)は、PythonのWebアプリケーションサーバーであり、高速で拡張可能な環境でのWebアプリケーションのデプロイメントを容易にするために設計されています。 Gunicornは、WSGI(Web Server Gateway Interface)準拠のWebアプリケーションフレームワークと連携して動作します。WSGIは、PythonのWebアプリケーションとWebサーバーの間の標準化されたインターフェースです。つまり、GunicornはPythonのWebアプリケーションを受け入れ、HTTPリクエストを処理し、Webアプリケーションに渡す役割を果たします。 Gunicornの特徴的な特徴の一つは、マルチワーカーモデルを採用していることです。これにより、複数のプロセスを同時に実行し、複数のリクエストを同時に処理することができます。これにより、Webアプリケーションのパフォーマンスが向上し、ユーザーに迅速かつ効率的なレスポンスを提供することが可能になります。 さらに、Gunicornは拡張性に優れています。ワーカープロセスの数や接続数などのパラメーターを調整することで、サーバーの動作を調整することができます。また、NginxやApacheなどのリバースプロキシと組み合わせて使用することもできます。これにより、Gunicornは高トラフィックの環境でも優れたパフォーマンスを発揮することができます。 Gunicornはコマンドラインツールとして提供されており、比較的簡単にインストールして使用することができます。また、Pythonの仮想環境やDockerコンテナ内など、さまざまな環境で利用することができます。 要約すると、GunicornはPythonのWebアプリケーションを高速かつ拡張可能な方法でデプロイするためのサーバーソフトウェアです。マルチワーカーモデルと拡張性の高さが特徴であり、Webアプリケーションのパフォーマンス向上とスケーラビリティを実現します。 以下、さらに詳しく説明します。 Gunicornの定義 Gunicornの公式サイトに記載されているものを翻訳します。 Gunicorn もしくは緑のユニコーンとはPythoinのWSGI HTTPサーバーでUnixの為に作られました。これはPre-Forkワーカーモデルです。(※各ワーカーをアプリケーションごとに割り当てロードに必要なキャパシティ以上を割り当てる) Gunicornは様々なウェブフレームワークに対応し、簡単に実装でき、サーバーに負担のかからない、軽量なサーバーになります。 Gunicornができた経緯 Gunicorn(Green Unicorn)は、RubyのWebサーバーであるUnicornにインスパイアされて作られました。RubyのUnicornは、高パフォーマンスで信頼性の高いWebアプリケーションサーバーとして広く使用されていました。 Pythonのコミュニティでは、RubyのUnicornの成功とパフォーマンスの高さに触発され、同様の機能を持つPython用のWebサーバーが求められるようになりました。そこで、Python開発者のBenjamin PetersonがGunicornを開発しました。 Gunicornの開発は、2009年に始まりました。当初はワーカープロセスの管理やリクエストの処理など、基本的な機能の実装に焦点を当てていました。その後、GunicornはPythonのWSGI(Web Server Gateway Interface)仕様との互換性を持つように拡張され、Pythonの主要なWebフレームワークとシームレスに連携できるようになりました。 Gunicornは、PythonのWebアプリケーションサーバーとしての需要を満たすため、活発なオープンソースプロジェクトとして成長しました。開発者コミュニティの貢献により、Gunicornは安定性とパフォーマンスの向上が図られ、多くのユーザーによって利用されるようになりました。 また、Unixのアプローチとして、毎回アプリケーションのデプロイをするたびに下記の作業が必要でした。 以上の作業がアプリケーションのデプロイごとに必要になりとても時間がかかります。 それを解決するのがGunicornになります。 サーバーの仕組みを理解する Pythonのウェブアプリケーションのデプロイには下記の3つのスタックが必要になります。 ウェブサーバーはユーザーからのリクエストを受け、ドメインロジックとHTTPコネクションを担当します。ウェブサーバーは正しいリクエストだけを判別し、実際のDjangoアプリ等に渡してあげることが役目になります。 Django等のアプリケーションは各リクエストに対してリスポンスをすることしかできないことを理解しておきましょう。 ではアプリケーションサーバー(Gunicorn)の役目をこれから説明します。 Web Server Gateway Interface(WSGI)とは Web Server Gateway Interface(WSGI)は、PythonのWebアプリケーションとWebサーバーの間の標準化されたインターフェースです。WSGIは、PythonのWebアプリケーションフレームワークやWebサーバーの開発者が、相互に互換性のあるコンポーネントを作成するための共通のルールを提供します。 WSGIの主な目的は、WebアプリケーションフレームワークとWebサーバーを疎結合にすることです。これにより、異なるフレームワークやサーバーを組み合わせることができ、柔軟性と再利用性が向上します。WSGIを使用することで、Webアプリケーションの開発者は、特定のWebサーバーに依存しないアプリケーションを作成できます。 WSGIでは、2つの主要なコンポーネントが定義されています。 WSGIを使用する場合、Webサーバーとアプリケーションはお互いに疎結合であるため、異なる組み合わせが可能になります。これにより、異なるWebフレームワークを使用したり、Webサーバーを切り替えたりする際の柔軟性が向上します。 要約すると、WSGIはPythonのWebアプリケーションとWebサーバーの間の標準化されたインターフェースであり、疎結合性と柔軟性を提供します。WSGIによって、PythonのWebアプリケーションは異なるフレームワークやサーバーと組み合わせることができ、再利用性と相互運用性が向上します。 WSGIサーバーとしてのGunicorn Gunicornは複数のウェブサーバーと交信ができます。またGunicornはどのウェブサーバーを使っているかも気にしません。(例えばNginxとかApacheとか) GunciornはWSGIサーバーとしてウェブサーバーとコミュニケーションが取れることだけと条件としています。 GunicornはウェブサーバーとPythonアプリケーションの間に入り下記の問題を解決してくれます。なので自身で解決策を探す必要がありません。 Gunicornの代替オプション … Read more

Postgresのユーザーのパスワードを忘れた場合

PostgreSQL

サーバーで色々操作していてPostgresのデータベースで使うユーザーのパスワードを忘れた場合は下記の方法で新しいパスワードを再設定しなおしましょう。 今日の環境 Ubuntu22.04 PostgreSQL 14 今日の目的 Postgresの設定ファイルから仮でパスワードなしで接続できるようにします。 その後にコマンドから、新しいパスワードを設定しなおします。 最後にパスワードでデータベースに接続させるように再設定します。 ※作業にリスクがあると感じた場合はバックアップを取るなり自己責任で操作をしてください。 pg_hba.confを探す Postgrtesをインストールした後にpg_hba.confのコンフィグファイルも作成されます。ここでユーザーがどのようにデータベースに接続できるようにするか設定できます。 通常は下記のファイルパスにあります。 PostgreSQLのバージョンによりファイルの場所が少し変わるので注意します。 /etc/postgresql-9.1/pg_hba.conf /etc/postgresql/14/main/pg_hba.conf rootで入っている場合はpwdのコマンドでどこにいるか確認しましょう。 cd のコマンドとlsのコマンドを使いながらPostgresの場所を探します。 pg_hba.confを見つけました。 pg_hba.confのバックアップをとる では下記のコマンドでオリジナルのファイルをコピーしておきます。 ※パスワードをリセットしたらこっちに戻します。 ファイルがコピーで来たことを確認しました。 認証方法を変更する ではテキストエディタを使ってこのpg_hba.confを開きます。 もともとはこんな感じになっていますね。 これを下記のように変えます。 Ctl +X で抜け出し Yで上書き、エンターでファイル名をそのままにします。 Postgresのサーバーをリスタートする ではファイルを更新しただけではコンフィグを読み取ってくれないのでPostgresのサービスを再起動します。 postgresのユーザーで接続する ここでコンフィグをtrustにしたのでどのユーザーでもパスワードなしで接続できるようになりました。 ではpostgresのユーザーで接続してみます。 パスワードなしで入れました。 パスワードを更新する では更新したいユーザーのパスワードを下記のコマンドで更新します。 元のコンフィグファイルに戻す パスワードなしで誰でも接続できてしまうのは危険なので、元のファイルに戻します。 Postgresサーバーのリスタート 同じようにPostgresのシステムを再起動します。 これでpsqlのコマンドでパスワードが聞かれたらもとに戻っているという事ですね。 ではお疲れ様です。

複数のウェブサイトを一つのサーバーからデプロイする

複数のサイトを一つのサーバーからデプロイする方法

皆さん、こんにちは。 今日は今まで習ってきたウェブサイトのデプロイの仕方をちょっと工夫してみます。 特に、ドメインはいらないけど、複数のポートを開けておいて、各ポートに応じたウェブサイトがユーザーに届けられるようにしたい!という時を想定しています。 下記に、例を挙げます。 社内のアプリケーションで、複数のアプリケーションを同じサーバーからデプロイしたい。 プログラムのポートフォリオを同じサーバーにまとめておきたい。 しかし覚えておきたいのはIPアドレスでユーザーがアクセスできるという事は、HTTPSにできない。つまり、ユーザーとやり取りするデーターが暗号化できないので個人情報のあるフォーム等を使う事は絶対に避けましょう。 もし、ドメインを購入して、ドメインごとに対応したウェブサイトを同じサーバーからデプロイすることもできるので、その場合は別の記事を参考にしてください。 今日の目的 Ubuntuサーバーから2つのサイトをデプロイさせる。ユーザーはIPアドレスとポートを見てそれぞれのサイトにアクセスできるようにする。 今日の環境 Ubuntu 22.04 下準備 では、下記の記事にnginxのセットアップの仕方が記載されているので、まずはそちらを見てください。 この記事の通りに進めてIPアドレスでNginxのデフォルトのページが見れるところまで進めてください。 サーバーブロックの設定 ここも前回の記事を参考に一つ目のサイトとなるファイルを作成していきます。 詳しい説明は前回の記事を参考にしてください。 各ウェブアプリケーション事でサイトを作成します。まずは一つ目のサイトをasameshisoft.comと名前を付けてそのフォルダーを作成します。 (今回はドメインは購入しないのでIPアドレスで参照します。) ランディングページを作りましょう。 今回はテストだけなので適当にテキストを書いておきます。 nginx Nginxの指定したsites-enabledディレクトリにリンクさせます。 nginxのテストをします。sucessと出れば成功です。 Nginxのサービスをリスタートします。 これでポート80をリッスンするサイトが完成しました。 2つ目のサイトのポートを開ける 今回はポート80と81を使ってサイトを公開します。ポート81はまだ何もしていないのでこれから設定していきましょう。 2つ目のサイトを設定 先ほどと同じことを繰り返します。 ポートを81にして、サイト名(ただの名称)をasameshiapp.comにした場合です。 では2つのブラウザをオープンしてサーバーのIPとポートを指定してエンターします。 172.105.218.191:80 172.105.218.191:81 皆さんも自分のサーバーのIPで同じことを行い、それぞれのHTMLが返ってきたら成功です! ではお疲れさまでした。

レンタルサーバーのLinodeで月500円のサーバーを作ろう

Linodeサーバー

Linode(リノード)はアメリカで設立されレンタルサーバーを世界のさまざまな拠点に置き日本なら東京と大阪でサーバーを使うことができます。 Linodeは私も実際に使っており安く、安定性があり、サービスが良い、しかも使いやすいという神のような存在です。 今はそこまで大きな会社ではないですが、アメリカのDigitalOceanのように成長していくと感じています。 今Linodeを始めると$100ドル分のクレジットがもらえ月々の費用から差し引いてくれるので是非試してみてください。(60日間しかクレジットは有効ではありません。) もしこのリンクからアカウントを作成してもらえると私にも$25のクレジットがもらえるので是非よろしくお願いします。(土下座) Linodeを使ったプロジェクトのデプロイの記事もあるので是非どうぞ! Linodeでサーバーを作成する ではLinodeでアカウントを作成したらこのようなウェブポータルのページが表示されます。 ではCreateのボタンを押して、Linode(リノード)を作成しましょう。 Linodeはサーバーのマシンのことをイメージした名称になるようです。 ImageのドロップダウンからOSをお好きなものを選んでください。 今回は使用ユーザーとコミュニティが豊富なUbuntuを使用します。バージョンは最新の22.04を使用します。 場所は東京を選択します。(昔は大阪もあったと思ったんだけどなぁ。) 次に使用プランを選びます。 今回はShared CPU(シェア)の月額$5を使用します。 Linodeの良いところはマシンの拡張がとても簡単で、ボタン一つで専属CPUのマシンに変更できたり、容量を変更できたりします。 なのでまずは、しょぼいスペックから始めてどのようなものか様子を見てみます。 次に、Linode Labelにマシンの名称を付けます。これは管理者用なので自分で名前が分かればなんでもOKです。 日本語がだめだったので英語で打ち直しました。 次にRootのパスワードを設定します。 SSHで接続するときに使います。 もしSSHの意味が分からない人は別の動画で説明しているので是非ご覧ください。 であとは使わないと思うので無視してください。 もし、必要であれば月額$2のバックアップもあるので何かアプリケーションをデプロイしたいのであれば、これはあっても良いと思います。 で、問題がなければCreate Linodeのボタンを押してサーバーが作成されます! おめでとうございます。 これでサーバーが完成しました。 IPアドレスは172.105.218.191のようですね。 これはパブリックIPなのでSSHクライアントを使って先ほど設定したパスワードで接続することができます。 お疲れまです。

UbuntuサーバーにNginxをインストールしよう

Install-nginx-on-Ubuntu

今日は前回作成した仮想マシンにインストールしたUbuntuサーバーにNginxをインストールしていきます。 仮想マシン(VirtualBox)にUbuntuサーバーをインストールする方法かこちらからどうぞ。 Nginxとは Nginx(エンジンエックス)はApacheと同じで、世界で最も使われているウェブサーバーのうちの一つです。 Ngnixは、軽量で、大規模なウェブサイトにも使えるエンタープライズレベルのアプリケーションになります。 今日の目的 この記事では、Ubuntuサーバー22.04にNginxをインストールして、ファイヤーウォールの設定、Nginxののプロセスを管理、そしてサーバーブロックを設定する方法を説明します。 準備しておくこと Ubuntuサーバーのある環境(今回はバージョン22.04) Ubutnuユーザーのログイン情報 必要に応じてドメインネームの取得 Nginxのインストール NginxはUbuntuのデフォルトのリポジトリで取得可能なためそこから簡単にインストールできます。今回はサーバーを設定したばかりなのでローカルパッケージをアップデートして最新のパッケージにアクセスできるようにしておきます。 Nginxの際にDo you want to continue?と聞かれるのでY(イエスの意味)を入力してエンターします。 ファイヤーウォールの設定 Nignixをテストする前にファイヤーウォールのソフトウェアを設定してNginxがサービスにアクセスできるようにします。 先ほどNginxをインストールした際にNginx自体がサービスとしてufw(Uncomplicated Firewall)に登録されています。 まずは、ufwに登録されているアプリケーションを一覧で見てみましょう。 アウトプットから見てわかるようにNginxから3つのプロフィールが作成されていることが分かります。 Nginx Full: ポート 80 (通常, 暗号化されていない)とポート 443 (TLS/SSL 暗号化されたトラフィック) Nginx HTTP: ポート80だけ Nginx HTTPS: ポート443だけ 今回はポート80しか使わないので下記のコマンドでポート80だけ開けておきます。もちろん、プロダクションの場合はHttps://を使うのでポート443を開けることになります。 このコマンドで、現在のステータスを確認しましょう。 もしStatusがinactiveとなっている場合はファイヤーフォールがアクティブになっていないのでこのコマンドでファイヤーオールを起動させます。 再度ステータスを確認するとアクティブになっていることが分かり、HTTPのファイヤーウォールも設定されていることが分かりますね。 ウェブサーバーの設定 Nginxをインストールした時点で、自動でウェブサーバーが起動して使える状態になっているはずです。 念のために確認しておきましょう。 アウトプットを見てわかるように、アクティブになっていることが分かります。 これでサーバーのIPアドレスにアクセスするとNginxのデフォルトのページが見れるはずです。 まずは、サーバーのIPアドレスを見つけましょう。 ifconfigのコマンドが使えない場合は、このコマンドでnet-toolをインストールしてくださいというメッセージが出ますね。インストールし再度ifconfigのコマンドを実行します。 もしVirtualBoxを使っている人は仮想マシンのSettingからNetworkにいき、Bridged Adapterになっていることを確認しましょう。 使用しているネットワークのインターフェースにもよりますが、enp0s3の方のinetが192.168.0.186になっていることが分かります。loの方はローカルの方なので関係ないです。 もしレンタルサーバーとかを使っている方はパブリックIPが分かるはずなのでそれを自身のブラウザに入力します。 これで、Nginxが正しく起動されていることが分かりました。 … Read more

UbutnuサーバーをVirtualBoxにインストールしよう

皆さん、お疲れ様です。

今日は、Ubutnu ServerのISOファイルを使って、VirtualBoxにインストールする作業を説明します。

Ubutnu のデスクトップバージョンも同じやり方でできますし、他のLinuxも同じ方法なので是非試してみてください。

特にお金のかかるサーバーをレンタルする前のテストにはもってこいです!

今日の環境

  • Windows10(VirtualBoxのホストPC、OSで何でもOKです。)
  • ホストPCのメモリが8G以上(理想は16G以上)
  • VirtualBoxがインストールされた状態
  • UbutnuServer22.04

VirtualBoxってなに?

VirtualBoxはOracle社が提供している仮想マシンのアプリケーションのことです。MicrosoftではHyper-Vという同じような仮想マシンを提供しています。他に、有名なものではVMWareというものもあります。

動画ではVirtualBox(以下、略してVB)のインストールから説明しているのでご覧ください。

ISOファイルをダウンロード

Ubuntuの公式サイトからUbuntu ServerのISOファイルをダウンロードしておきます。

https://ubuntu.com/download/server

VBインスタンスを作成

Instanceは事例、という意味ですが、プログラマーの世界では、プロジェクトの意味合いに近いものになります。

では、早速Newのボタンを押して新しいインスタンス(プロジェクト)を作成します。これが各OSがインストールされる仮想マシンになるわけですね。

で、マシン名と、メモリのサイズを指定していきます。サーバーだけならデスクトップよりもメモリは食わないので4Gあれば足りるかな?私は8Gに設定しておきました。これは後から調整できるので色々試してください。

で、Createをクリック。

ファイルサイズを指定します。

使用目的にもよりますが、使うと思う分のハードディスクを割り当ててください。

Hard Disk File Typeは、仮想マシンのファイル端子のことです。他の人とシェアしないならどれでも構わないと思います。

私はVMDKを選びました、これならエキスポートした仮想マシンファイルをVirtualBox以外のアプリケーションにインポートすることができます。

Storage on physical hard diskはハードディスクの容量をどのように区切るかの設定です。

通常はDynamically allocatedでOKです。これは、指定した分を実際にハードディスクから削り取るのではなく、使った分だけダイナミックにホストPCから割り当てるという事になります。

これで問題なければCreateを押します。

ネットワークの設定

では、インスタンスがハイライトされた状態でSettingsを押して詳細を確認します。 

ネットワーク設定を見てみましょう。

もし同じLANネットワークで使用したいのであればBrige Networkを使用しましょう。

その場合は、ホストPCが192.168.1.5とかなら、192168.5.16などの同じネットワークのIPが割り当てられます。

NATの場合はちょっと複雑になります。私の場合はとりあえずこのままでOKにしておきます。

インストールするOSを指定

ではStartボタンからマシンを起動しましょう。

そうするとスタートアップに使用するででディスクを指定してくださいというメッセージが出ます。

フォルダのアイコンをクリックしましょう。

Addを押します。

では、ダウンロードしておいたUbuntuサーバーのISOファイルを指定します。

Chooseを押します。

ではStartを押してマシンを起動しましょう。

Ubuntuサーバーのインストール

ではインストールが始まるので言語選択の画面になるまで待ちます。

日本語がないので英語で進めていきます。私はプログラミングは全部英語で行っています。皆さんも同じ習慣をつけることをお勧めします。

ではEnglishがハイライトされた状態でエンターを押します。

キーボードの設定をします。

キーボードのタブボタンを使って上下にスクロールします。スクロールアップの場合はシフトを押しながらタブになります。LayoutをJapanese、VariantをJapaneseにしましょう。

完了したらDoneを選択します。

特にハードディスクに制限がない場合は通常版のサーバーをインストールしましょう。

minimizedバージョン(軽量版)をインストールしても後から変更できるのでどっちでもOKです。

選択したらDoneをクリックします。

ネットワークの設定をします。

これも後から変更できるのでそのままにしてDoneにしましょう。

次のプロキシアドレスの設定も後から行うのでそのままdoneにします。

これもそのままDoneでOKです。

ストレージはヴァーチャルボックスで割り当てた分をUbuntuサーバーで使用できるようになっているのでデフォルトのまま次に進みましょう。

では全体のサマリーをみて問題がなさそうならdoneを押します。

そうすると確認のメッセージが出るのでContinueを選択しエンター。

Ubutnuのユーザーを作成します。

これはログインの際に使います。

こんな感じで適当に入力できたらDoneを押します。

次にオープンSSHサーバーをインストールするか聞かれます。

もしSSHの意味が分からない人は下記に説明の動画があるので見てみてください。

要約すると、ホスト側(ユーザー側)のPCのコマンドライン(シェル、コマンドプロンプト、ターミナル)からサーバー側のマシンにアクセスするためのツールになります。

これは必須の知識なので是非、練習してみましょう。

ですので、タブとエンターキーを使ってInstall Open SSHServerにチェックを入れてDoneを選択します。

次に他にインストールしたいアプリケーションがあれば選択してください。

個人的にnextcloudのファイル管理アプリが楽しそうだと思いました。

とりあえず今回はスキップするのでそのままDoneを選択します。

インストールが始まります。

インストールが完了したら下のオプションからReboot Nowを選択してマシンを再起動します。

バーチャルボックス側ではインストール用のISOファイルは外れると思いますが、一応それを確認して、サーバーが起動できることを確認します。

サーバーを再起動

サーバーを再起動すると先ほど設定したパスワードを聞かれます。

パスワードの部分は打っても何も動かないですが、入力されています。

ログイン情報を入力したらエンターを押します。

これでログインができました!

とりあえずUbuntu Serverがインストールできたので今日はこれでおしまいにします。

この後はサーバーの更新、初期設定をしたり、SSHで接続してWebサーバーを設定していきたいと思います。

良かったら他の記事も参考にしてください。

ではお疲れ様です。

DB BrowserでSQLiteのデータベースを作ろう

SQLiteの使い方

日本のプログラマーの皆さんこんにちは。今日はDB Browserを使ってSQLiteのデータベースを管理していく方法を紹介します。 エクセルのような感覚で始められるのでリレーショナルデータベースを使ったことがない人には得にお勧めです。 SQLiteってなに? SQLiteは下記のような長所があります。 オープンソースです。(ソースコードが一般に公開されています。) データベースの一種です。(MySQLとかPostgreSQLとかと同じ) ポータブルです。(OSに依存せず、DBファイルにそのままアクセスすることができます。) SQLiteの欠点はこのようなものがあります。 DBサーバー無しで使えるのでネットワークからアクセスできない。 大規模なアプリケーションには向いていない。 データサイズに制限がある。 本日の環境 Windows10(MacOSでも、Linuxでも問題ありません。) 本日の目的 今日も目的はSQLiteのデータベースがどのような仕組みで作れるのか見ていくことが目的になります。慣れてきたら、次回以降はSQL(クエリ)を書いてデータベースを操作できるようにしたいですね。 SQLite DB Browserをダウンロード では、SQLiteのデータベースの作業をするために下記の公式リンクからSQLite Browserをダウンロードしましょう。 https://sqlitebrowser.org/dl/ では、ダウンロードページに行ったらWindowsのポータブル版をダウンロードしましょう。 windowsにインストールしちゃいたい人は64bitのインストーラーをダウンロードしてもOKです。MacOCの人はMacの方からダウンロードしてください。 DBBrowserを展開 ではダウンロードした.exeファイルをダブルクリックしてファイルを展開しましょう。 Nextをクリックします。 ポータブル版のファイルをおきたいファイルパス(場所)を指定します。これだとダウンロードに展開されることになります。 では、Instalをクリック。 Finishをクリックで完了です。 SQLiteDatabaseBrowserを実行 では先ほど展開したファイルを開くと.exe実行ファイルがあるのでそれをクリックしてアプリを起動します。 データベースを作成 では、NewDatabaseのボタンを押してデータベースを作成します。 それからデータベース名を決めて、Saveします。名前は後から変更できるのでご心配なく。 Addをクリックしてカラム(Column)を追加します。 まずは、テーブル名をInventoryとかにしておきましょう。 今回は在庫管理業務で使えそうなデータベースを作ってみましょう。 では下記のようにカラムを追加していきましょう。 Nameはカラムの名前です。クエリで指定する際に使います。 Typeはデータのタイプになります。Textは文字のデータです。(数字を入れると文字データの数字として扱われます。プログラミングを学習する際に習いますね。) INTEGERは整数のことになります。 その横にあるチェックボックスを説明します。 NN NotNull(Null=データがないことを許さないという事です。) PK プライマリーキー(他のデータと被らない行を区別するためのキーです。) AI auto increment (自動で数字が足されていくことです。) U ユニーク(PKと同じですが、PKはテーブルに1つしか設定できないことに対しUは複数設定可能です。 では、今回設定した内容を説明します。 idはプライマリーキーでそれぞれのデータの行を区別するために設定しておきます。またAIにチェックが入っているので新しいデータが作成されるたびに数が1,2と増えていくようになります。 最後にadded_date(追加日)のDefault(デフォルト)の部分に下記のテキストを追加します。 CURRENT_TIMESTAMP デフォルトで初期値を設定することができます。もし何もインプットがない場合にデフォルトの値を記録することになります。 この場合は現在の日時を自動で入力するように指示したことになります。 では右下のOKボタンを押してDB(データベース)が作成されました。 … Read more