SQLの基本を理解する

1. SQLの概要 1-1. SQLとは リレーショナルデータベースを操作するための言語 標準規格に準拠したSQLを標準SQLと言う 1-2. SQLの基本的な記述ルール SQL文の最後に;(セミコロン)をつける キーワードに大文字/小文字の区別はない 定数は''(シングルクォーテーション)で囲む 2. SQLの分類 2-1. DDL(Data Definition Language) CREATE DROP ALTER 2-2. DML(Data Manipulation Language) SELECT INSERT UPDATE DELETE 2-3. DCL(Data Control Language) COMMIT ROLLBACK GRANT REVOKE 3. SQL基礎 3-1. CREATE TABLE テーブルの作成 CREATE TABLE Staff (id CHAR(4) NOT NULL, name TEXT NOT NULL, age INTEGER , PRIMARY KEY (id)); 主な制約 PRIMARY KEY UNIQUE REFERENCES 表名(列名) CHECK(条件) NOT NULL DEFAULT 値 3-2. INSERT 行の挿入 INSERT INTO Staff (id, name, age) VALUES ('0001', '山田太郎', 26); INSERT INTO Staff VALUES ('0004', '渡辺さつき', 28); 3-3. SELECT 列の取得 ...

6月 7, 2022

さくらのVPSにXserverドメインで取得した独自ドメインを設定する方法

この記事ではさくらのネームサーバにXserverドメインで取得した独自ドメインを設定する方法を紹介します。 これによりさくらのVPSに作成したサーバに、設定したドメイン名でアクセスできるようになります。 前提条件 さくらのVPSでサーバを契約済み Xserverドメインで取得した独自ドメインをXserverで使用 さくらのVPSでサーバを契約する方法は以下を参照してください。 さくらのVPSにDebian11 (bullseye)をインストールする方法 | あまブログ 1. Xserverドメイン側の設定 1-1. ネームサーバー設定の変更 Xserverアカウントにログインします。 XServerアカウント - ログイン | レンタルサーバーならエックスサーバー ログイン後、該当のドメインを選択。 ドメイン選択後の画面で「ネームサーバー設定」>「設定変更」を選択。 ネームサーバー設定で「ドメイン適用先サービス」>「その他のサービスで利用する」を選択し、ネームサーバーに以下を入力します。 ns1.dns.ne.jp ns2.dns.ne.jp 以下のようになっていればOKです。「確認画面へ進む」を選択します。 以下の画面で、設定内容を確認して「設定を変更する」を選択。 Xserverドメイン側の設定は以上です。 ネームサーバーの設定 | Xserverドメイン 2. さくらのVPS側の設定 2-1. ドメイン名の登録 さくらインターネットの会員メニューにログインします。 会員認証|さくらインターネット 「契約中のドメイン一覧」を選択。 以下の画面で、「ドメインコントロールパネル」を選択。 以下の画面で、「ネームサーバサービス」>「ネームサーバ新規登録」を選択。 以下の画面で、利用したいドメイン名を入力し、「ドメインを登録する」を選択。 ネームサーバサービス一覧に追加したドメインが表示されたら、新規登録は完了です。 ネームサーバー(オプションサービス)を利用したい | さくらのサポート情報 2-2. ゾーン情報の作成 以下の画面で、先ほど追加したドメインの「ゾーン>」を選択します。(画面右側) 以下の画面で、「さくらのDNSに設定する(簡単設定)」でサーバーのIPアドレスを入力し、「追加して設定」を選択。 さくらのVPS側の設定は以上です。 ドメインのゾーン情報を編集したい | さくらのサポート情報 以上で終了です。 【メモ】 【IIS】さくらのVPS(WindowsServer)にエックスサーバーの独自ドメインを設定してみた ネームサーバー IPアドレスとドメイン名の紐付けを行うサーバー = DNSサーバー ドメイン移管とは ドメイン移管とは?移管の流れ・具体的な方法や費用・トラブルの原因まで解説! – 初心者のためのブログ始め方講座 別のパターン 他社で取得・管理中のドメインを設定したい | さくらのサポート情報 さくらインターネットで取得・管理中のドメインを設定したい | さくらのサポート情報 他社から移管したドメインを設定したい | さくらのサポート情報

6月 6, 2022

【Debian】NginxでVirtual Hostsを使って複数のドメインを設定する方法【Server Blocks】

NginxのWebサーバではVirtual Hosts(Server Blocks)を使って1台のサーバで複数のドメインを運用することができます。 この記事では、Debian 11上のNginxにVirtual Hostsを設定する方法を紹介します。 なお、本稿の手順を進める前にDebian上にNginxがインストールされている必要があります。 DebianでのNginxのインストール方法は以下の記事を参照してください。 【Debian】Nginx公式リポジトリにある最新バージョンのNginxをインストールする | あまブログ 1. 環境 Debian 11 bullseye nginx 1.21.6 2. 手順 2-1. ドキュメントルートディレクトリの作成 ドキュメントルートは各ドメインのhtmlファイルが保存されるディレクトリで、任意の場所に作ることができます。 以下では /var/wwwディレクトリの中にサーバでホストしたいドメインごとに html ディレクトリを作成します。 今回はサンプルとしてtest1.comとtest2.comの2つのドメインを使用します。 以下のコマンドを実行して、ドキュメントルートディレクトリを作成します。 $ sudo mkdir -p /var/www/test1.com/html $ sudo mkdir -p /var/www/test2.com/html 2-2. サンプルページの作成 次に各サイトのデフォルトページをドキュメントルートディレクトリの中に作成します。 以下のコマンドを実行して、1つ目のサンプルページを作成します。 $ sudo vi /var/www/test1.com/html/index.html テスト用として、以下の内容で作成します。 /var/www/test1.com/html/index.html <html> <head> <title>test1</title> </head> <body> <h1>test1.com</h1> </body> </html> 続けて、2つ目のサンプルページも作成します。 $ sudo cp /var/www/test1.com/html/index.html /var/www/test2.com/html/ $ sudo vi /var/www/test2.com/html/index.html 内容は以下のようになります。 ...

6月 6, 2022

【Debian】Nginx公式リポジトリにある最新バージョンのNginxをインストールする

この記事では、DebianにNginx公式リポジトリにある最新バージョンのNginxをインストールする手順を紹介します。 ※Debianのデフォルトの設定でapt install nginxした場合、Nginx公式リポジトリからではなく、Debian公式リポジトリから少し古いバージョンのNginxがインストールされます。 1. 実行環境 Debian 11 bullseye 2. 手順 2-1. 必要なパッケージのインストール Nginxのインストールに必要な以下のパッケージをインストールします。 curl gnupg2 ca-certificates lsb-release debian-archive-keyring 以下のコマンドを実行してパッケージをインストール。 $ sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring パッケージの情報を表示:apt show <パッケージ名> インストール済みパッケージの確認:apt list --installed <パッケージ名> 2-2. 署名鍵のインポート aptがパッケージの信頼性を確認できるようにするために、Nginxが公式に公開している署名鍵をインポートします。 以下のコマンドを実行して署名鍵をインポート。 $ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null コマンドの意味 curl https://nginx.org/keys/nginx_signing.key curlコマンドで署名鍵ファイルをダウンロード gpg --dearmor 署名鍵ファイルをgpgコマンドで暗号化 sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg teeコマンドで /usr/share/keyrings 配下に nginx-archive-keyring.gpg というファイル名で保存 >/dev/null コマンド実行時の出力結果を /dev/null に渡している 以下のコマンドを実行して、ダウンロードした署名鍵が正しいことを確認します。 ...

6月 6, 2022

telnetでGETとPOSTでHTTPリクエストを送る方法

この記事では、クライアントからtelnetを使ってGETメソッドとPOSTメソッドでWebサーバにHTTPリクエストを送信する方法を紹介します。 HTTPは、Webサーバ(サーバ)⇄Webブラウザ(クライアント)間のWebページの送受信に使われるプロトコルです。 1. 環境 macOS Monterey:12.4 2. 手順 2-1. telnetのインストール $ brew install telnet 2-2. GETメソッド 以下のコマンドで、example.comの80番ポート(HTTP)に接続 $ telnet example.com 80 書式:telnet <ホスト名> <ポート番号> 続けて、以下のHTTPリクエストを実行 GET / HTTP/1.1 # リクエスト行 Host: example.com # ヘッダ <改行> リクエスト行 メソッド:GETメソッド、リクエストURI:/、プロトコルバージョン:HTTP/1.1 ヘッダ フィールド名:Host、フィールド値:example.com Host→HTTP/1.1 で唯一の必須ヘッダ。フィールド値にURLのホスト部分を指定。 <改行> 1行空けることでヘッダの終わりを伝える 2-3. POSTメソッド xxx.com/articlesに以下のようなフォームがある場合を想定 <form action="/articles" method="post"> <div> <label for="article_title">Title</label> <input type="text" name="article[title]" id="article_title"> </div> <div> <label for="article_body">Body</label> <textarea type="text" name="article[body]" id="article_body"></textarea> </div> <div> <input type="submit" name="commit" value="Submit" data-disable-with="Submit"> </div> </form> 以下のコマンドで、xxx.comの80番ポート(HTTP)に接続 ...

6月 5, 2022

【Debian】Nginxで自分で作ったhtmlファイルを表示させる方法

この記事では、Nginx上に自分で作ったhtmlファイルを配置し、ブラウザから表示させる方法を紹介します。 1. 環境 Debian 11 bullseye nginx 1.21.6 2. 手順 2-1. Nginxのインストール Nginxをインストール $ sudo apt update $ sudo apt install nginx Nginxのインストールを確認 $ /usr/sbin/nginx -v nginx version: nginx/1.21.6 2-2. Nginxの起動 Nignxを起動 $ sudo systemctl start nginx Nginxの起動を確認 $ systemctl status nginx ● nginx.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2022-06-05 06:38:04 JST; 1h 45min ago Docs: https://nginx.org/en/docs/ Process: 8247 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 8248 (nginx) Tasks: 2 (limit: 529) Memory: 1.7M CPU: 10ms CGroup: /system.slice/nginx.service ├─8248 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf └─8250 nginx: worker process 2-3. 設定ファイルの確認 Nginxの設定ファイルを確認 ...

6月 5, 2022

【Debian 11 bullseye】sudoコマンドをインストールする方法

本稿では、さくらVPSにインストールしたDebian 11にsudoコマンドをインストールする方法を紹介します。 sudoは一般ユーザにスーパーユーザ(root)の権限を与えるコマンドです。 なお、さくらVPSにDebian 11をインストール方法は以下をご参照ください。 さくらのVPSにDebian11 (bullseye)をインストールする方法 | あまブログ 1. sudoのインストール sudoコマンドをインストールします。 # apt install -y sudo 2. /etc/sudoersの編集 sudoコマンドの設定ファイルである/etc/sudoersを編集して、権限の設定を行います。 /etc/sudoersは直接テキストエディタで開いて編集してはいけません。 書き方を誤るとsudoが動作せずに、どのユーザもsudoが使えなくなってしまうことがあるためです。 /etc/sudoersの編集はvisudoコマンドを使用します。 # visudo visudoコマンドを実行したら、/etc/sudoersに以下を追記します。 foo ALL=(ALL) ALL 書式:<ユーザ> <マシン名>=(<権限>) <コマンド> (<権限>)のところを(<ALL:ALL>)と書いた場合、左側がユーザ、右側がグループを表す。 ファイルを保存し、設定したユーザでsudoコマンドが実行できれば設定は完了です。 【参考】 【Debian 8 Jessie】sudoコマンドをインストールする #Linux - Qiita sudoers覚え書き #sudo - Qiita sudoersを変更する、よく使う設定例 - それマグで! 新しいLinuxの教科書 9章 03 スーパーユーザ

6月 1, 2022

さくらのVPSにDebian11 (bullseye)をインストールする方法

さくらのVPSにDebian11をインストールする手順を解説します。 サーバーを契約し、OSをインストールして、ユーザーを作成してログインします。 1. 手順 以下の手順で進めていきます。 さくらのVPSでサーバーを契約 Debian11のインストール Debian11の設定 Debian11にログイン 1-1. さくらのVPSでサーバーを契約 以下にアクセスし、「お申し込み」を選択 VPS(仮想専用サーバー)|さくらインターネット サーバー作成 サーバー選択 ゾーン:石狩第一 プラン:512MB(学習には最小プランで十分) ストレージ変更オプション:SSD25GB 購入台数:1台 支払いパターン:毎月払い サーバー設定 サーバー名:任意 サーバー説明:任意 OS設定 インストールするOS:どれでも(後で入れ直すため) OSバージョン:どれでも(後で入れ直すため) スタートアップスクリプト:利用しない サーバーへのSSHキー登録:登録しない(後で入れ直すため) 支払い方法 初回は2ヶ月分の支払い 支払い完了後に以下の画面が表示され、数分後にサーバーが作成されます。 1-2. Debian11のインストール さくらのVPSにログインして、コントロールパネルのサーバー一覧から作成したサーバーを選択 「OS再インストール」を選択し、OSインストール形式は「カスタムOS」、インストールOSは「Debian 11 amd64」を選択して「内容確認」をクリック インストールOSが「Debian 11 amd64」になっていることを確認して、「OS再インストール」をクリック 1-3. Debian11の設定 作成したサーバーを選択し、「コンソール」>「VNCコンソール」を選択してVNCコンソールを起動 1-3-1. rootユーザーの設定 rootユーザーのパスワードを設定して、「Continue」を選択 設定したパスワードを再度入力して、「Continue」を選択 1-3-2. 一般ユーザーの設定 ユーザーのフルネームの設定は特に必要ないので何も入力せず、「Continue」を選択 一般ユーザーのユーザー名を設定して、「Continue」を選択 一般ユーザーのパスワードを設定して、「Continue」を選択 設定したパスワードを再度入力して、「Continue」を選択 1-3-3. パーティションの設定 「Guided – use entire disk」を選択 「Virtual disk 1 (vda)」を選択 ...

6月 1, 2022

【Git】リモート追跡ブランチと上流ブランチを理解する【fetch・merge】

1. リモート追跡ブランチ、上流ブランチ リモート追跡ブランチ(remote-tracking branch) リモートブランチの状態を追跡するブランチ ローカルリポジトリに存在する(実体は.git/refs/remotes/) 上流ブランチ(upstream branch) デフォルトでマージの対象となるブランチ(引数なしでgit mergeした時にマージされるブランチ) mainブランチの上流ブランチがorigin/mainブランチである場合、「mainブランチはorigin/mainブランチを追跡している」と言う 2. fetch、merge、(pull) fetch:リモートリポジトリのmainブランチをローカルリポジトリのorigin/mainブランチに反映 merge:ローカルリポジトリのorigin/mainブランチをローカルリポジトリのmainブランチにマージ pull = fetch + merge git pull origin main = git fetch origin + git merge origin/main 3. 関連コマンド 3-1. 上流ブランチの設定 上流ブランチの設定(git-branch -u) # git branch -u <リモート追跡ブランチ> <ローカルブランチ> git branch -u origin/main main push時に上流ブランチを設定(git-push -u) # mainブランチの上流ブランチにorigin/mainブランチが設定される git push -u origin main 上流ブランチの設定を解除(git-branch –unset-upstream) # git branch --unset-upstream <ローカルブランチ> git branch --unset-upstream main 3-2. ブランチの確認 ローカルブランチとリモート追跡ブランチの表示(git-branch -a) ...

5月 30, 2022

【apt install】Debian公式リポジトリに登録されていないパッケージをインストールする方法

本稿では、aptコマンドを使ってDebianの標準以外のパッケージをインストールする方法を紹介します。 1. はじめに Debianにパッケージをインストールする時には、aptコマンドを使うことが多いと思います。 デフォルトの状態ではDebianの公式リポジトリのみが/etc/apt/sources.listに設定されています。 そのため、サードパーティ製のパッケージ(Debianの公式リポジトリに登録されていないパッケージ)をインストールするためには、そのパッケージが格納されてるリポジトリを/etc/apt/sources.listに追加する必要があります。 今回は、以下の記事を参考にiozone3のインストールを例に手順を解説します。 apt-getで見つからないパッケージを追加する方法(debian, ubuntu両方対応) 2. 実行環境 Debian GNU/Linux 11 (bullseye) 3. 手順 3-1.パッケージディレクトリを検索 以下のサイトから、インストールしたいパッケージが存在するリポジトリを検索します。 Debian – パッケージ 「キーワード」にiozone3と入力して「検索」。 iozone3はnon-freeリポジトリにあることがわかる。 3-2.リポジトリを追加 /etc/apt/sources.listにnon-freeリポジトリを追加します。 今回はリポジトリの追加にapt-add-repositoryコマンドを使用します(sources.listを自分で直接編集する方法もある)。 apt-add-repositoryコマンドを使用するにはsoftware-properties-commonパッケージが必要です。 以下のコマンドを実行して、software-properties-commonパッケージをインストールします。 $ apt install -y software-properties-common ※上記コマンドの-yオプションについて、以下apt-getのmanpageより抜粋 -y, –yes, –assume-yes Automatic yes to prompts; assume “yes” as answer to all prompts and run non-interactively. If an undesirable situation, such as changing a held package, trying to install an unauthenticated package or removing an essential package occurs then apt-get will abort. ...

5月 19, 2022