不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

paizaラーニング『AWS入門編2:LAMP環境を構築しよう (全10回) 』を受講してみた

2021-02-14 23:10:25 | paiza

『AWS入門編2:LAMP環境を構築しよう (全10回)』


メモ

#01:LAMP環境を理解しよう

  • LAMPとは
    LAMP(ランプ)とは、Webアプリケーションの実行環境の組み合わせ。
    • Webアプリケーションの実行環境では、ふつう、OSとWebサーバー、データベース、スクリプト言語を組み合わせて利用する。
      • OSにLinux(リナックス)
      • WebサーバにApache(アパッチ)
      • データベースにMySQL(マイエスキューエル)
      • スクリプト言語にPHP(ピーエイチピー)
    • という組み合わせを、その頭文字をとって、LAMP(ランプ)と呼ぶ。
  • LAMP環境の構築手順
    1. PHPをインストールする
    2. MySQLをインストールする
    3. サンプル掲示板を設置する
    4. HTMLベースで改良する
    5. PHPベースで改良する
    6. PHPベースで改良する

#02:PHPをインストールしよう

  • PHPインストールの作業手順
    1. Webサーバーの動作確認
    2. SSHでログインする
    3. 管理者権限に切り替える
    4. サーバの時間設定(UTCからJST)
    5. PHPのインストール
    6. PHPの設定
    7. Apacheの再起動
    8. PHPの動作確認
  1. Webサーバーの動作確認
  2. SSHでログインする
    $ ssh -i ~/.ssh/FirstKey.pem ec2-user@(パブリックIP)
  3. 管理者権限に切り替える
    $ sudo su
  4. サーバの時間設定(UTCからJST)
    # date
    # ln -sf /usr/share/zoneinfo/Japan /etc/localtime
  5. PHPのインストール
    # yum install -y php
  6. PHPの設定
    # cp /etc/php.ini /etc/php.bak
    # vi /etc/php.ini
    (↑詳細はチャプター3へ)
    (UbuntuなどのDebian系は、/etc/php/7.x/apache2/php.ini?)
  7. Apacheの再起動
    # service httpd restart
  8. PHPの動作確認

#03:PHPの動作確認をしよう

  • viの基本コマンド
    vi (ファイル名)     指定ファイルを読み込み、viを起動する
    • i テキストを編集できる状態にする
    • escキー コマンドを入力できる状態にする
    • :wq ファイルを保存して終了するコマンド
    • :q! ファイルを保存しないで終了するコマンド
    • :set number 行番号の表示
    • :行番号        行番号の行へ移動
    • :s/(old)/(new)/g    テキスト置換。%sとするとファイル全体。
  • PHPの設定変更
    • 「& ~E_NOTICE」を追加
      error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE
    • OffからOnへ
      display_errors = On

#04:MySQLのインストール

  • MySQLインストールの作業手順
    1. MySQLのインストール
    2. MySQLの起動
    3. MySQLの設定
    4. 文字コードの設定
    5. phpMyAdminのインストール
    6. phpMyadminの設定
    7. phpMyadminの動作確認
  1. MySQLのインストール
    # yum install -y mysql-server
    # yum install -y php-mysqlnd
    (↑追加プログラム(PHPのMySQLネイティブドライバ)のインストール)
  2. MySQLの起動
    # service mysqld start
  3. MySQLの設定
    # mysql_secure_installation
  4. 文字コードの設定
    # vi /etc/my.cnf
    # service mysqld restart
  5. phpMyAdminのインストール
  6. phpMyadminの設定
  7. phpMyadminの動作確認
    → 手順5,6,7は次のチャプター
  • MySQLの文字コード設定
    character-set-server = utf8
    (↑[mysqld_safe]の上の行に追加)

#05:phpMyAdminのインストール 

  • phpMyAdminのインストール(手順5)と設定(手順6)
    • phpMyAdminのダウンロード先を追加
      # yum-config-manager --enable epel
    • phpMyAdminのインストール
      # yum install -y phpmyadmin
    • phpMyAdminの設定(アクセス制限) のために、設定ファイルを開く
      # vi /etc/httpd/conf.d/phpMyAdmin.conf
    • Apacheの再起動
      # service httpd restart
  • phpMyAdminの利用(手順7)
    http://(WebサーバーのグローバルIPアドレス)/phpmyadmin
  • グローバルIPアドレスの確認
  • phpMyAdminの設定(アクセス制限)
    • 127.0.0.1を自分のグローバルIPに置き換える(全4箇所)。
      viで「:%s/127.0.0.1/グローバルIP」を実行する。

#06:掲示板を設置しよう

  • Web掲示板を設置手順
    1. MySQL上にデータベースを作成
    2. テーブルを作成する
    3. カラムを作成する
    4. bbs.phpをダウンロードする
    5. bbs.phpをアップロードする
    6. 動作確認

#07:HTMLを改良しよう 

  • HTML部分の変更内容
    1. 見出し1のテキストを変更
    2. 見出し2のテキストを変更
    3. 背景色を変更
    4.    Bootstrap CDNを適用

#08:PHPを改良しよう

  • PHP部分の変更内容
    1. 行番号を追加
    2. 交互に色を変える

#09:DBを改良しよう - 投稿の削除

  • データベース操作の修正手順
    1. デバッグ用にidを表示
    2. 削除ボタンを追加
    3. 削除ボタンで送信されたidを表示
    4. 受信したidのデータを削除
    5. デバッグ用コードをコメントアウト
※ ダウンロードしたphpファイルを元にしたけど、削除がちゃんと動作しないな。なぜだろう?😟 
→ コードを見てみると、ダウンロードしたphpファイルの92行目辺り「<form action="bbs.php"〜」が「<form action="bbs_34.php"〜」って存在しないファイル名になっちゃってるな😤 

#10:DBを改良しよう - 投稿者名の追加

  • 掲示板の機能追加の手順
    1. 投稿フォームに、名前欄を追加
    2. 発言リストに、名前欄を追加
    3. データベースにuser_nameカラムを追加
    4. 名前情報を挿入するコードを追加
※ ここでもダウンロードしたphpファイルに前チャプターと同じような間違いがあるな!😠 

認定証

このレッスンも演習課題がないので、特になし

学習ステータス

同上

paizaラーニング『AWS入門編1:Webサーバーを構築しよう (全7回)』を受講してみた

2021-02-14 14:58:29 | paiza

『AWS入門編1:Webサーバーを構築しよう (全7回)』


よし、『AWS入門編 (全3レッスン) 』をやっていくぞ。

AWSか〜😑 
1年間の無料枠があるみたいだけど、
下手に手を出して料金が発生するのも嫌だから、
今回はサインアップはしないでおこう😓 

メモ

#01:Webサーバーを構築しよう

  • Webサーバーの基本的な役割と構成要素
    • リクエストに応じて、HTMLファイルや画像ファイルを送信する
    • アクセス制御:許可されたユーザーにだけ送信する
    • CGI:プログラムを起動する
  • AWS(Amazon Web Services)とは
    • 仮想的なコンピュータ資源を提供
      - HTTPサーバー:Apache
      - IPアドレス
      - OS:Linux
      - H/W:仮想マシン
  • AWSの特徴
    • すぐに使える
      使いたいときに必要な分だけ数分で準備できる
    • サービス・性能を選べる
      シンプルなWebサーバーから、ビッグデータ・機械学習まで
    • 従量課金
      使った分だけ支払い。
      720時間/月・12ヶ月まで無償利用
  • AWSを構築する手順
    • 1. AWSのアカウントを作成する
    • 2. Linux仮想マシンを起動する
    • 3. パブリックIPアドレスを設定する
    • 4. SSHによるリモートアクセス
    • 5. Apacheを起動する
    • 6. SCPによるファイル転送
  • 参考

#02:AWSアカウントを作ろう

#03:Linux仮想マシンを起動しよう

#04:パブリックIPアドレスを設定しよう

  • パブリックIPアドレスを固定する方法
    1. EC2ダッシュボードの左側のメニューで「ネットワーク&セキュリティ」から「Elastic IP」を選択
    2. 「新しいアドレスの割り当て」ボタンをクリック
    3. ポップアップ「関連付ける」ボタンをクリック
    4. 「アクション」→「アドレスの関連付け」
    5. アドレスの関連付けポップアップで「インスタンス」を選択して、「関連付ける」ボタンをクリック
  • HTTPを利用できるようにする
    1. インスタンスのリストから、セキュリティグループにアクセス
    2. セキュリティグループのページから、「アクション」→「インバウンドルールの編集」をクリック
    3. インバウンドルールの編集ポップアップで「ルールの追加」ボタンをクリック
    4. 追加された行で「HTTP」を選択し、「保存」ボタンをクリック
  • 参考

#05:リモートアクセスしよう

#06:Webサイトを公開しよう

  • Apache起動の作業手順
    1. ターミナルからSSHで接続
    2. Linuxをアップデート
    3. Apacheをインストール
    4. Httpdの起動
    5. 動作確認
  1. ターミナルからSSHで接続
    ssh -i ~/.ssh/FirstKey.pem ec2-user@(パブリックIP)
  2. Linuxをアップデート
    $ sudo yum -y update
  3. Apacheをインストール
    $ sudo yum -y install httpd
  4. Httpdの起動
    $ sudo service httpd start
  5. Linux仮想マシン起動の度に自動的にApacheを起動する設定
    $ sudo chkconfig httpd on
  6. 動作確認
    ブラウザでパブリックIPを入力する
※ AWS(のAmazon Linux AMI)って、RHEL/CentOS系のLinuxなんだな。
UbuntuなどのDebian系では、aptコマンドを使ってapache2をインストールしたしな。

#07:ファイルを転送しよう

  • ローカル環境で作成したhtmlファイルをWebサーバーに転送する。
  • 実行するコマンド
    • 仮想マシンからファイルをローカルマシンに転送
      $ scp -i ~/.ssh/FirstKey.pem ec2-user@(パブリックIP):/var/www/html/index.html ~/Desktop
    • ローカルマシンから仮想マシンに転送
      $ scp -i ~/.ssh/FirstKey.pem ~/Desktop/index.html ec2-user@(パブリックIP):~
      $ sudo mv ~/index.html /var/www/html
  • 直接仮想マシンの/var/www/htmlに転送したい場合はフォルダの所有権を変更する。
    • 仮想マシン側
      $ sudo groupadd www
      $ sudo usermod -a -G www ec2-user
      $ exit
      (一旦ログアウトしてもう一度接続)
      $ groups
      (↑wwwグループが登録されているか確認)
      $ sudo chown -R root:www /var/www
      $ sudo chmod 2775 /var/www
      $ find /var/www -type d -exec sudo chmod 2775 {} \;
      $ find /var/www -type f -exec sudo chmod 0664 {} \;
      $ exit
    • ローカルマシン側
      $ scp -i ~/.ssh/FirstKey.pem ~/Desktop/index.html ec2-user@(パブリックIP):/var/www/html

認定証

演習課題がないので、特になし

学習ステータス

こちらも同様