Powered by NotePM

成果物作成の環境構築

Published on 12/05/2023 15:26
  • 3972

成果物作成の環境構築

初めに

今回は、成果物用の環境を構築していきます。
基本的にはカリキュラムの内容と同一なので、不安な方はぜひカリキュラムをみながら復習しましょう!

Cloud9の新規インスタンスを作成

※注意
cloud9は起動中のEC2インスタンスが月750時間(基準例:24時間×1インスタンス×31日(1ヵ月) = 744時間)を超えると料金が発生します。30分作業をしていなければ自動で稼働が止まりますが、開発をしていないときは、タブを閉じるなど、いくつもインスタンスが起動したままの状態ということは避けるようにしましょう。

1.AWSのコンソールにサインインし、[メニュー] → [Cloud9]を開く。
2.Create environmentをクリックする。
3.Name・Descriptionを入力し、次へ進む。
4.以下が指定されていることを確認し、次へ進む。
5.Environment type:Create a new EC2 instance for environment (direct access)
6.Instance type:t2.micro(※無料枠対象のインスタンスタイプ)
7.Platform:Amazon Linux 2023
8.Cost-saving setting:After 30 minutes
(※無操作時の自動休止設定のため、短い時間にすることを推奨します。
9. Connection:AWS Systems Manager(SSM)
10. Createを押しインスタンスを生成

インスタンスを作成したら、Cloud9 IDEをOpenして次に進みましょう。

パッケージの最新化

ここからはターミナルでの作業になります。
まずは初期インストールされているパッケージの最新化を行いましょう。

実行コマンド
$ sudo yum update -y
→問題なく実行できること

タイムゾーンの変更

実行コマンド
$ sudo timedatectl set-timezone Asia/Tokyo
→問題なく実行できること

$ timedatectl
→実行後に時刻関連情報が表示され、その中に「Time zone: Asia/Tokyo (JST, +0900)」が表示されていること。

サーバーのハードディスク空き容量増加

dockerを削除してハードディスクの空き容量を増加していきます。

実行コマンド
# dockerのアンインストール実行
$ sudo yum remove docker

# 不要になったdocker用ディレクトリの削除
$ sudo rm -fr /var/lib/docker

MariaDBのインストール

実行コマンド
# MariaDBのステータス確認
$ systemctl status mariadb

上記を実行し、1行目に
mariadb.service - MariaDB [バージョンの数字] database server
と出力された場合は、以下の2つのコマンドは飛ばしてしまって大丈夫です。

Unit mariadb.service could not be found.
と出力された場合は、以下の2つのコマンドを実行してください。

実行コマンド
# MariaDBのインストール実行
$ sudo yum -y install mariadb mariadb-server
→エラーなくインストールが完了する。(最後に「Complete!」と出力されること。)

# MariaDBのステータス再確認
$ systemctl status mariadb
→インストールされたMariaDBの情報が出力される。(状態は「inactive」となっている。)

ここからは全員実行しましょう。

実行コマンド
# MariaDBの起動
$ sudo systemctl start mariadb
$ systemctl status mariadb
→MariaDBの状態が「active」となっている。

文字コード設定

実行コマンド
# 現在の文字コード設定を確認
# DBクライアント側の文字コード変更
$ sudo vim /etc/my.cnf.d/mysql-clients.cnf
→「[mysql]」ブロックに「default-character-set=utf8mb4」を追記する。

# DBクライアント側の文字コードの設定反映確認
$ sudo mysql -u root -e "show variables like 'char%';"
→表示される結果の「character_set_client」「character_set_connection」「character_set_results」が「utf8mb4」となっている。

# DBサーバー側の文字コード変更
$ sudo vim /etc/my.cnf.d/mariadb-server.cnf
→「[mysqld]」ブロックの最後に「character-set-server=utf8mb4」を追記する。

# DBサーバーの再起動
$ sudo systemctl restart mariadb
$ systemctl status mariadb
→MariaDBの状態が「active」となっている。

# DBクライアント側の文字コードの設定反映確認
$ sudo mysql -u root -e "show variables like 'char%';"
→表示される結果の「character_set_server」が「utf8mb4」となっている。

自動起動設定

実行コマンド
# 自動起動設定
$ sudo systemctl enable mariadb
→「Created symlink from 〜」というメッセージが出力される。

# 起動時にMariaDBが自動起動することの確認
$ sudo reboot
→再起動が実行される。
$ systemctl status mariadb
→MariaDBの状態が「active」となっている。

Rootユーザーのパスワード変更

今回は成果物用に新しく環境を作っているので、パスワードなども再設定しましょう!
ここから先は自分で考える項目が増えてくるので、安易にコピペをしないように!

※※※ 重要 ※※※
パスワードを忘れてしまうとrootユーザーが使えなくなりますので、必ず忘れないように各自で管理を行いましょう!

実行コマンド
# MariaDB接続&Database切り替え
$ sudo mysql -u root mysql
→mysqlにrootユーザでログイン

# userテーブルのrootユーザーに対するパスワード値を更新
MariaDB [mysql]> ALTER USER 'root'@'localhost' IDENTIFIED BY '自分で考えたパスワードを入力';

# 設定したパスワードの確認
MariaDB [mysql]> exit
$ mysql -u root -p
→passwordを聞かれるので自分で考えたパスワードを入力。接続できればOK!

新規ユーザー作成

カリキュラムと同様にDB操作を行う際に使用するDBユーザーを新たに作成しましょう。
新ユーザーのパスワードもまた、自分で考えてください。

※※※ 重要 ※※※
rootユーザー同様、パスワードを忘れてしまうと作成するユーザーが使えなくなりますので、必ず忘れないように各自で管理を行いましょう!

実行コマンド
# MariaDB接続&Database切り替え
$ mysql -u root -p mysql
→mysqlにrootユーザでログイン
→passwordを聞かれるので先ほど入力したパスワードを入力。

# ユーザーの新規作成
MariaDB [mysql]> create user 'dbuser'@'localhost' identified by '自分で考えたパスワード';
→「Query OK, 0 rows affected (0.00 sec)」と出力されれば成功

# 作成ユーザーへのCreate権限付与
MariaDB [mysql]> grant create on *.* to 'dbuser'@'localhost';
→「Query OK, 0 rows affected (0.00 sec)」と出力されれば成功

# 作成ユーザーの確認
MariaDB [mysql]> exit
$ mysql -u dbuser -p
→passwordを聞かれるので登録したパスワードを入力。接続できればOK!

解説補足動画

新規データベース作成

ここまでの流れでMariaDBに関する必要な設定や準備は完了しました。
次は、実際に成果物で使用するデータベースを作成しましょう。
こちらも、先ほどと同様に自分でデータベース名を考えてください。
また、これ以降のコードでデータベース名と出てきた場合は自分で考えたデータベース名を入力しましょう。

実行コマンド
# MariaDB接続&Database切り替え
$ mysql -u root -p mysql
→mysqlにrootユーザでログイン

# 新規データベース作成
MariaDB [mysql]> create database データベース名;
→「Query OK, 1 row affected (0.00 sec)」が出力されればOK

# ユーザーへの新規データベース権限付与
MariaDB [mysql]> GRANT ALL PRIVILEGES ON データベース名.* to 'dbuser'@'localhost';
→「Query OK, 0 rows affected (0.00 sec)」と出力されれば成功

# 新規データベース接続確認
MariaDB [mysql]> exit
$ mysql -u dbuser -p データベース名
→パスワードを入力後、正常に接続され「MariaDB [データベース名]>」と出力されればOK
MariaDB [データベース名]> 

Gitパッケージのバージョン確認&最新化

実行コマンド
# Gitパッケージの更新実行
$ sudo yum update git
→今インストールされているパッケージよりも新しいパッケージが存在すれば更新、存在しなければ何も実行されず終了。

サーバー - GitHub間の疎通設定

サーバー - GitHub間の通信はSSHで行いますので、そのための対応を行います。

Step1:サーバー側のSSH公開鍵・秘密鍵作成

Gitコマンドを実行するサーバー側で、SSH用の公開鍵・秘密鍵を作成しましょう。

実行コマンド
# 公開鍵・秘密鍵のキーペア作成
$ ssh-keygen -t rsa
→Enter file in which to save the key: と聞かれるので何も入力せずにEnterを押す。
→Enter passphrase:と2回聞かれるので何も入力せずにEnterを押す。

# 作成後のSSH関連ディレクトリ配下確認
$ ls -l ~/.ssh/
→「id_rsa.pub」が公開鍵、「id_rsa」が秘密鍵のファイルになります。

Step2:作成したサーバー側SSH公開鍵をGitHubに設定

作成したSSH公開鍵をGitHubに設定しましょう。
GitHubにて右上のアイコンをクリックし、Settingsをクリック。
その後、左のメニューからSSH and GPG keysをクリックして設定画面を表示させる。

7e25ab72-ebe0-11ed-81d8-06720a606bea.png?ref=thumb
表示後、必要な項目の入力を行い、登録を行いましょう。

Title項目
これから登録する公開鍵を識別するための文字列を入力します。
今回は「成果物」のようにすると分かりやすいと思います。
Key項目
「id_rsa.pub」ファイルの内容をコピーし貼り付けましょう。

実行コマンド
# id_rsa.pubを開く
$ vim ~/.ssh/id_rsa.pub
→ファイルを開いたら、全文をコピーし、gihhubへ貼り付けましょう。
→コピーが終わったら「Esc」キーを押した後、「:q」と入力してvimを閉じましょう。

Step3:サーバー側SSH設定&疎通確認

GitHubへのSSH公開鍵登録が完了したら、サーバー側SSH設定と疎通確認を行いましょう。

「~/.ssh/config」ファイル追記内容
Host github
    HostName github.com
    IdentityFile ~/.ssh/id_rsa
    User git
実行コマンド
# SSH設定ファイルの作成 or 変更
$ vi ~/.ssh/config
→上述しているファイル追記内容を追記
→入力し終えたら「Esc」キーを押し、「:wq」と入力をして保存する。

# SSH設定ファイルの権限設定
$ chmod 600 ~/.ssh/config

# GitHub接続確認
$ ssh -T github
→Are you sure you want to continue connectingと聞かれるのでyesを入力。
→「Hi 自分のGitHubユーザー名! You've successfully authenticated, but GitHub does not provide shell access.」とメッセージが出力されれば疎通成功

Gitコマンドの初期設定

最後にGitコマンドの初期設定を行いましょう。
ここまで終われば環境の準備は完了です。

実行コマンド
$ git config --global user.name "GitHubのユーザ名"
$ git config --global user.email "GitHubの登録アドレス"
$ git config --global core.editor 'vim -c "set fenc=utf-8"'
$ git config --global color.diff auto
$ git config --global color.status auto
$ git config --global color.branch auto

解説補足動画

使用するPHPバージョンの確認

通常web開発を始める際には、アプリケーションを動かすために必要となる実行環境を使用言語とそのバージョンに合わせてセットアップする必要があります。今回はPHP8.2にてアプリケーション開発を行いますが、幸いなことに使用するCloud9ではPHP8.2の実行環境がデフォルトで用意されています。
実際にPHP8.2がインストールされていることを確認するために、以下のコマンドを実行してみましょう。

実行コマンド
# インストールされているPHPのバージョンを確認
$ php --version
→出力の1行目に「PHP 8.2.*」と表示されればOKです(*の部分には数字が入ります)

解説補足動画

Laravelプロジェクトの作成

環境の準備が完了したら、今度はLaravelのプロジェクトを作成していきましょう。
以下にコマンドでlaravelのプロジェクトを作成していきます。
なお、下のコマンドでアプリケーション名となっている部分は、作る成果物に合わせて自分でオリジナルの名前を考えて入力してください。

実行コマンド
# Composerのインストーラーをインターネットから取得&インストーラー実行
$ curl -sS https://getcomposer.org/installer | php

# インストーラー実行により作成されたComposer本体をコマンドとして認識されるように特定ディレクトリに移動
$ sudo mv composer.phar /usr/local/bin/composer

# composerコマンドとして認識されているかの確認
$ composer

# 実行結果
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/

(省略)

# Composerコマンドにてblogディレクトリ内にLaravelプロジェクト作成
$ composer create-project laravel/laravel --prefer-dist アプリケーション名 "10.*"

# 作成されたLaravelプロジェクト作成のバージョン確認
$ cd アプリケーション名/
$ php artisan --version
 →Laravel Framework 10.0以上になっていればOK

環境設定ファイル準備

Laravelアプリケーションでは、.envという環境情報を定義した隠しファイルをアプリケーション起動時に読み込み,
その環境情報を元に、DBへの接続などを行います。

まずはこの.envファイルへDBの情報を書き込みましょう。
データベース名、ユーザー名、パスワードをそれぞれ変更していきます。

.env
#以下の部分を埋めていきましょう。
DB_DATABASE=データベース名
DB_USERNAME=dbuser
DB_PASSWORD=データベースのパスワード

もしも.envファイルがファイル一覧から見つからない場合は隠しファイルを表示するようにcloud9の設定を変更しましょう。
ファイルツリー上部の歯車マークをクリックし、設定を開きます。

dc61c82c-ebf1-11ed-8175-064017533d40.png?ref=thumb

次に、Show Hidden Filesにチェックマークを入れます。

e343901c-ebf1-11ed-8d83-06720a606bea.png?ref=thumb

Gitリポジトリ初期設定

GitHubリポジトリ作成

まずはGitHubにてリポジトリを作成しましょう。
今回はGitHubのサイトにて作成を行います。
サイトトップの左上にリポジトリの作成ボタンがありますので、そちらから必要な情報を入力し作成しましょう。
0ac6be7a-ebf2-11ed-a253-06720a606bea.png?ref=thumb

リポジトリ作成に必要な項目

Repository Name (リポジトリ名): 自由に決めてかまいません。
Description (リポジトリの説明):記入してもしなくてもどちらでもかまいません。
PublicまたはPrivate(公開するか非公開にするか):基本的にはPublic
※成果物に学内の情報など外部の人に見られたくない情報が含まれる場合は、就活中はPublic、終了後はPrivateに変更するなどの対応をしてください。
それ以降の項目はそのままで大丈夫です。

サーバー側設定

リポジトリ作成が完了したら、以下の流れでリポジトリ設定と動作確認を行いましょう。
(※「cd アプリ名」で成果物プロジェクトのディレクトリに移動してから行いましょう。)

実行コマンド
# カレントディレクトリに対するGit初期設定
$ git init

# バージョン管理状態を確認
# (※パスワードなどの不要ファイルが含まれていないか確認すること!)
$ git status

# ソース管理されていない全ファイルをステージングに追加
$ git add .

# バージョン管理状態を再確認
$ git status // もう一度確認

# コミットを実行
# (※コミットコメントはどのような変更かを理解するのに重要なコメントなので、適切なコメントを書きましょう。)
$ git commit -m "first commit"

# リモートリポジトリの設定
$ git remote add origin git@github.com:ユーザ名/リポジトリ名.git

# リモートリポジトリへの反映
$ git push origin master

上記で変更がGitHubのリポジトリに正常に反映されているか、GitHubのサイトで確認をしましょう。

ここまで完了したら、成果物用のlaravelプロジェクト環境は完成です。
これ以降は作成したER図をもとにマイグレーションファイルの作成、model, view, controllerの作成などを行い、成果物の開発に取り組みましょう!