1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS Linux仮想マシンにLAMP環境構築 (初学者が教材と現実の狭間で奮闘した結果)

Posted at

はじめに

AWS SAAの取得を目指して会社からの課題で、AWS上にLAMP環境の構築をすることになりました。早速paizaラーニングでAWSの操作を学習しましたが、現在とのバージョンの違いに苦戦しました。

私自身の備忘録でもありますが、同じようにeラーニングと現実との狭間で苦戦してる初学者に届けとの思いで書きます。
(なるべく動画教材の流れに合わせて書いたつもりです。)

Linux仮想サーバ EC2を作成

  • リージョンを選択
    Linux 2 AMIを選択
    (Linux AMIは既にサポート終了)
    キーペアを作成してからインスタンス起動

  • パブリックIPアドレスを設定
    Elastic ipを関連付ける
    ※割り当て → インスタンスへの関連付け を確実に
    (私はいつのまにか複数割り当ててしまって関連付けていないEIPのせいで課金されてしまいました:sob:
    セキュリティグループのインバウンドルールの編集→HTTPを追加
    (ソースは0.0.0.0/0にしたのですが…あってる??💦)

  • ターミナルでLinux仮想マシンにリモートで接続
    WindowsなのでGit Bash使用
    ※PoweShellやcmdで試みたがシェルコマンドが違うため、途中で断念
    .sshフォルダがあるかls -alで確認。(なければmkdirで作成)
    キーペアファイルを.sshに移動
    mv ~/キーペアのpath/キーペア名 ~/.ssh
    キーペアが他の人に使われないように設定
    chmod 400 ~/.ssh/キーペア名

Apache、MariaDB、PHPをインストール

この辺りからは流れはeラーニングですが、操作はAMSのチュートリアルに沿って進めました。
(私はPHPのverが古かったり、MySQLだったりして後々やり直す羽目に…)

  • 時間の確認
    date
    Wed Jan 11 13:10:04 UTC 2023と表示されたので(UTCはロンドン)
    時間を日本時間に設定
    sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime

  • Amazon Linux Extras リポジトリをインストール
    (LAMP MariaDB と Amazon Linux 2 PHP パッケージの最新バージョンを取得)
    sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2

  • ApacheとMariaDBをインストール
    sudo yum install -y httpd mariadb-server
    Apacheを起動
    sudo systemctl start httpd
    自動で起動するように設定
    sudo systemctl enable httpd
    起動しているか確認 → enabledならok
    sudo systemctl is-enabled httpd

各種設定

  • ファイルの許可を設定
    ec2-userをapacheグループに追加
    sudo usermod -a -G apache ec2-user
    一旦ログアウトして再度ログイン
    apacheグループのメンバーシップを検証 → ec2-user adm wheel apache systemd-journalならok
    groups
    /var/www とそのコンテンツのグループ所有権を apache グループに変更
    sudo chown -R ec2-user:apache /var/www
    グループの書き込み許可を追加して、これからのサブディレクトにグループ ID を設定するには、/var/www とサブディレクトのディレクトリ許可を変更
    sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;
    グループ書き込み許可を追加するには、/var/www とサブディレクトリのファイル許可を再帰的に変更
    find /var/www -type f -exec sudo chmod 0664 {} \;

  • サーバのテスト
    Apache ドキュメントルートで PHP ファイルを作成
    echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
    ブラウザでphpinfo.phpが表示されればok
    phpinfo.phpを削除
    rm /var/www/html/phpinfo.php

  • DBの設定
    起動
    sudo systemctl start mariadb
    パスワード設定と不要な機能の削除
    sudo mysql_secure_installation
    パスワードを求められるが初期設定はないのでそのままEnter
    Yで新しいパスワードの設定 → 2回入力(入力しても画面に表示されない)
    あとは全部Y
    (匿名ユーザーアカウントを削除、リモートルートログインを無効、テストデータベースを削除、権限テーブルを再ロードし、変更を保存)
    自動で起動するように設定
    sudo systemctl enable mariadb
    文字コードを設定
    sudo vi /etc/my.cnf
    [mysqld]の最後の行に
    character-set-server=utf8mb4

phpMyAdminをインストール

必要な依存ファイルをインストール
sudo yum install php-mbstring php-xml -y
Apache を再起動
sudo systemctl restart httpd
php-fpm を再起動
sudo systemctl restart php-fpm
Apache ドキュメントルートに移動してphpMyAdmin リリース用のソースパッケージをダウンロード
cd /var/www/html
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
phpMyAdmin フォルダを作成し、パッケージを展開
mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1
phpMyAdmin-latest-all-languages.tar.gz Tarball を削除
rm phpMyAdmin-latest-all-languages.tar.gz
ブラウザでIPアドレスの後に/phpMyAdminをつけて移動 → ログイン("root" "設定したPW")

おわりに

このあとはeラーニングにそってDBのテーブルを作ったりなんだりで、掲示板アプリを作成しました。
これを書き上げるまでに恐ろしく色んなサイトを見ました。個人的には検索力も身に付いてような…。
ただ巡り巡ってAWSのチュートリアルが一番まとまっていたように感じました。
最後に、もしこの記事を諸先輩方が読んでくださっていて何か間違いに気づきましたらコメントいただけたら幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?