7月26日 -3度の失敗を経てAWS上にLAMP環境を生成した。その失敗から成功までの流れを記す-
大きな失敗①
まず1つ目の失敗は、大事な秘密鍵を削除してしまったこと。
Linuxコマンドのmvで存在しないディレクトリにpem(秘密鍵の拡張子)ファイルを移動したところ、pemファイルが削除されてしまった様子。rmではなくmvを入力して操作していることは何度も確認したので、もしかしたらどこかにあるのかもしれないが今回は探さずに新しいインスタンスとその秘密鍵を作成することにした。
大きな失敗②
作業の概要
AWSのEC2を利用してインスタンスを作成することでLinuxの仮想マシンを作成。
Linux仮想マシンにOSSのApacheをインストールして起動し、仮想マシンが起動する度にApacheが起動するように設定。
Windows環境のためGitBashをインストールし、Linuxコマンドが使えるようにした。
難しかった所とその解決策、そして流れの詳細
GitBashでexitコマンドを入力した後も設定したパブリックIPアドレスに接続すると同様のHTMLが表示される。これはexitコマンドを入力してもapacheは継続して稼働しているということだろうか。それともPCのキャッシュに情報があるから表示されるのか。インターネットに関してはサーバーがOFFになると404か500番台のエラーが出ると思うからそれはないかな。とにかくまだまだ勉強が必要。
AWSの学習が一通り終わったらLinuxをWindows上にインストールしてLinuxについて学んでいきたい。Linuxを学ぶとサーバーサイドの理解が深まるらしい。
ちなみにLinuxコマンド関連の話しで、pwd,lsなどを今までWindowsのコマンドフロンプトで何度もやってみて出来なかったのはLinuxコマンドだったから対応していなかった様子。実際、コマンドフロンプトでhelpと入力すると別のコマンドが出てきていた。Windowsのコマンドフロンプトにはそれ独自のコマンドが用意されているようだ。
AWSについてはpaizaラーニングをメインの教材にして学習中。
前回GraspyにてAWSのインスタンスを1つ作成しているので、今回はリージョン(サーバーの拠点?)を変更してそちらでインスタンスを新規作成している。
GitBashでexitコマンドを入力してもapacheは継続して稼働しているの?
→exitコマンドはあくまでもGitBash上にてSSHでのサーバー接続を切断しているだけで、Linux仮想マシン自体を停止させる操作ではないのでページには引き続き接続できている。
sudo dateでUTCになっている場合、ロンドン時間になっているので、日本時間のJSTに変更するコマンドを入力しておく。
sudoコマンドで毎回権限付与するのも良いが、面倒であればそれを省略するコマンドを入力する。$マークが#マークに変わっていれば常時権限が付いている状態。
viはターミナル上で動作するテキストエディタ。
PHPをインストール後、PHPのiniファイルの設定をいじる。その際にpaizaでは520行目をあるが、461行目で発見したので一応記録しておく。
「error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE」の件
そのあとは537行目ではなく478行目で発見。あれ、もしかして私のインストールしたPHPのversionが古いのかな?
あとindex.phpファイルを作成した後にパブリックIPアドレスに直接接続してもindex.phpに接続されるとあったが、私のPCではindex.htmlに接続された。
所々変更点(?)もあるようなのであとでしっかり戻ってきて復習したい。
MySQLが上手くインストールできなかった。
【AWS】Amazon Linux2環境にMySQLをインストールしようとしてはまった - Qiita
こちらを参考にしてmariadbをアンインストールしてmysqlをダウンロードしてみた。
その後のpaizaでの設定でmysqld_safeの前に設定を追加とあるがmysqld_safeが見つからない。正規の流れからずれている気がする。
→mysql_safeと書かれていないだけだった。mysql_safeの中身の記述自体はちゃんとあったのでその上にutf8の文字コード設定を記述した。
→lsコマンドで /etc/httpd/conf.dと入力してそのディレクトリ内を見てみたが、phpMyAdmin.confが見当たらない。一度寝て仕切り直そう。
こちらを参考にphpMyAdminをインストールしてみた。
EC2にphpMyAdminをインストールする手順 - 今やるログ
3度目の正直
なんでmysqlやらphpadminやらがすんなり進まないんだろうとggりながら試行錯誤してきた。どうやら最初の段階でAmazon Linux 2 AMIを選択したことが原因らしい。よくみるとこちらにはMySQLやらが記載されていない。選ぶべきはAmazon Linux AMIだったようだ。paizaの講座を見返して見ていたらしっかり書いてあった。今回はpaizaの講座に沿って進めていきたいので3度目の正直、ということで再度インスタンスを作成することにした。
3度目にしてようやくAWS上にLAMP(Linux+Apache+MySQL+PHP)環境を整えることができた。嬉しい。明日からこの環境に掲示板を作成していく次のステップに進む。がんばるぞ。
その他
不明な単語の意味の確認
EPEL、Fedora、ディストリビューションについて
EPELとはFedoraのパッケージを他の環境で使えるようにするための拡張パッケージ。
FedoraとはRedHatが支援している、安定よりも最新の技術を積極的に取り込むディストリビューション。
ディストリビューションとはLinuxの配布形態のこと。Linuxはカーネルのみを指すためそのままでは動作しない。OSの動作に必要なライブラリやソフトウェアなどをまとめたパッケージとして配布されている。
文中に記述できなかった参考URL等
更新情報
7月25日 学び+書き始め
7月26日 学び+更新
7月27日 学び+更新+修正
7月28日 ひとまず完成とする
8月7日 復習+更新
所感
1.作業の概要
2.作業の流れ
3.作業の詳細
4.難しかった所と改善策
5.新しく知った単語
6.文中に記述できなかった参考記事
7.更新情報
という風に項目別に記述できたら見やすいように感じた。
あと、メリット・デメリットを書いてもいいかもしれない。
paizaの動画内でdateコマンドを入力した際に2016年という情報がでていた。今はそれから3年が経過してAmazon Linux 2が出ている。そちらも必要に応じて覚えていくことになるかもしれない。でもまずは基礎を抑える意味で講座のあるAmazon Linuxの使い方をしっかりマスターしておきたいと思う。
上記の流れでまとめようかと一度考えたが、大きな2つの失敗とそれを乗り越えて成功を1つ経験したので失敗①→失敗②→成功という流れで書き直してみた。失敗②の大項目の中身が少し見づらいような気がしないでもない。borderで囲って、これは全て失敗談の一部だよーってまとめるのもいいのかも。(気が向いたら)
2章のLAMP環境の構築が終わり、最後の3章は主にデータベース(SQL文)の扱いについて学んだ。SQL文の入れ子とかには触れず、さらっと基礎を学んだ感じだったので、DB/SQLの講座でしっかり復習する予定。1週間ほど体調不良で寝込んでいたので体調管理にも気を付けつつ学習を進めていきたい。
今回はAWSでのPHPやphpmyadminのインストール方法を学んだ。AWSだと元々PHPやadminがインストールしやすい状態になっていた。おそらく通常であればWeb上からPHPやadminなどをインストールする必要があるんだろう。それも今度学んで使えるようになりたい。
今後のIT分野での成長のために
学習するごとにIT分野は新しい知識を学んで知識の幅が横に広がっていく。ひとつひとつしっかり把握して使えるようにしていきたい。焦らず。一歩ずつ。浅く広くではなく、深い所を学びながら、余裕や必要に応じて横にも広げていく。時には浅く広く学んで必要な知識に出会ったら深くする場面もあるかもしれない。
学びたいと思った事を、思うだけに留めない。
学んだことを学んで終わりにしない。
それを活かして自分で何かを創り出すクセをつける。(必ずしも目新しい必要はない)
定期的に自分を客観的に評価して成長を見える化する。