12
13

More than 5 years have passed since last update.

AWSを使ってLAMP環境を構築する手順

Last updated at Posted at 2019-04-15

自己学習のメモとして。
AWS上にLAMP環境を作成する手順を書いておきます。

Linux仮想マシン(EC2)を起動

1、AWSのマネジメントコンソールからEC2を選択。
※この段階でリージョンを日本にしておく

2、インスタンスの作成を選択
・AMAZON Lunux AMIを選択
・無料利用枠のt2.microを選択
→インスタンスを作成

キーペアが生成できるのでダウンロードしておく。

パブリックIPアドレスを設定

パブリックIPアドレスが毎回変化してしまうので固定する。

・左のメニューからElastic IPを選択
・新しいアドレスの割り当てをクリック
・出来上がったアドレスを選択し、アクション→アドレスの関連付け
・インスタンスをクリックし、先ほど設定したLinuxのIDが出るので選択して紐づけ
・インスタンスからセキュリティグループをクリッ
アクション→インバウンドルールの編集を選択
・ルールの追加→http→保存

リモートアクセス

・ターミナル(コマンドプロンプト)を起動
・.sshフォルダがあるか確認する。(無ければmkdirでユーザーディレクトリの中に作っておく)
・.sshの中に先ほどのKey.pemファイルを移動しておく
・以下のsshコマンドでAWSにアクセス

ssh -i ~/.ssh/xxx.pem ec2-user@xx.xxx.xxx.xxx

※デフォルトで名前はec2-userになっている
初回はyesを選択して接続

今後接続するときは毎回このコマンドを打つので覚えておきたい

exitで接続を終了できる

Apacheを導入

・Linuxをアプデしておく

sudo yum -y update

※-yをつけると確認画面なしにできる

・Apacheをインストールする

sudo yum -y install httpd

・Apacheを起動する

sudo service httpd start

・今後自動で立ち上がるように設定する

sudo chkconfig httpd on

※ブラウザに切り替えてIPアドレスからapacheが見られるか確認するとよい

おまけ1

htmlファイルを作って試しに見てみる方法

htmlを作成

sudo vi /var/www/html/index.html

1、編集画面になったら「i」を打って適当にhtmlファイルを作成する
2、「esc」を押してから「:wq」で上書き保存しenter

※:q!で保存せず終了できる

ファイルの確認方法

ls /var/www/html

ブラウザにIPアドレスを打ち込んで確認できる

おまけ2

scpコマンドで、ローカルで作成したhtmlファイルを転送する
※scpはPC間で安全に転送するコマンド

おまけ1でAWSに作ったhtmlファイルをローカルにダウンロードする(デスクトップの場合)

scp -i ~/.ssh/xxx.pem ec2-user@xx.xxx.xxx.xxx:/var/www/html/index.html ~/Desktop

適当にhtmlファイルを編集し、AWSに転送する

scp -i ~/.ssh/xxx.pem ~/Desktop/index.html ec2-user@xx.xxx.xxx.xxx:

成功したかどうかsshコマンドで接続して確認
(pwd、lsで見られる。)

現状htmlファイルはec2-userの中にあるので正しい保存先に移動させる

sudo mv ~/index.html /var/www/html

これでブラウザで見ることができるようになる

この流れは面倒なのでもう少し簡略化できるよう設定する

EC2にリモートアクセスしている状態でwwwというグループを作成する

sudo groupadd www

このグループに自分のユーザー名を追加する

sudo usermod -a -G www ec2-user

いったんexitでログアウトし、もう一度ログイン→グループの権限が有効になっているはず

groups

で確認すると

ec2-user wheel www

となっているはず

htmlを保存するディレクトリのグループ所有権を変更する

sudo chown -R root:www /var/www

/var/www以下のディレクトリに書き込み許可を設定する

sudo chmod 2775 /var/www

将来のサブディレクトリにグループIDを設定

find /var/www -type d -exec sudo chmod 2775 {} \;

/var/www及びサブディレクトリのファイル許可を繰り返し、グループの書き込み許可を与える

find /var/www -type f -exec sudo chmod 0664 {} \;

今後は転送先に直接/var/www/htmlを指定できる

scp -i ~/.ssh/xxx.pem ~/Desktop/index.html ec2-user@xx.xxx.xxx.xxx:/var/www/html

PHPをインストール

※お決まりのコマンドでリモートログインしておく

管理者権限に切り替えておく

sudo su

ユーザー名の部分に#がつけばOK。
切り替えておけばsudoコマンドを打つ必要が無くなる。

時間の設定

date

ロンドンの時間になっていたりすると、掲示板などのサービスを作った際におかしくなるので日本時間に修正

ln -sf /usr/share/zoneinfo/Japan /etc/localtime

dateコマンドで確認して問題なければOK

・PHPをインストールする

yum install -y php

動作確認

・PHPの設定をしておく
※バックアップを取っておくと良い

cp /etc/php.ini /etc/php.bak

もしバックアップの必要が出た場合は

cp /etc/php.bak /etc/php.ini

viでphp.iniの設定をいじる

vi /etc/php.ini

行番号を表示させると見やすくなるのでescキーを押して

:set number

520行目あたりを編集したいので

:520

iモードにして

error_reporting = E_ALL &E_DEPRECATED 

に追記をすれば、phpの余分なエラーメッセージを表示させずに済む

error_reporting = E_ALL &E_DEPRECATED & ~E_NOTICE

次に537行目を編集。
ディスプレイエラーをOnにしておく
これでphpのエラーがブラウザに表示されるようになる

display_errors = On

ターミナルに戻り、apacheを再起動

service httpd restart

viでindex.phpを作って動作確認をすると良い
ブラウザでxx.xxx.xxx.xxx/index.php、(または番号のみで閲覧できる?)で確認できる。

MySQLのインストール

※sshでリモートアクセスし、sudo suで管理者にしておく。

yumでmysqlをインストールする

yum install -y mysql-server

phpからmysqlをコントロールするため追加プログラムを入れる

yum install -y php-mysqlnd

mysqlを起動してみる

service mysqld start

・mysqlの設定

mysql_secure_installation

パスワードを聞かれるが無いのでそのままenter
すると新しくパスワードを設定するかを聞かれるのでyを押し、パスワードを設定する
※パスワードは忘れないように
確認のためにもう一度打ち込む
そしてRemove anonyemous users?(ゲストユーザーを消しますか?)と尋ねられるのでyを押す。
そのあとはすべてyでOK。

・mysqlの文字コードをviで設定

vi /etc/my.cnf

11行目あたりにある[mysqld_safe]の前に

character-set-server = utf8

を追加。:wqで保存
再起動して確認

service mysqld restart

OKと表示されているればOK。

phpMyAdminを導入

phpMyAdminをインストールするためにyumコマンドの設定を変更する

yum-config-manager --enable epel

これで準備ができたので、phpmyadminをインストールする

yum install -y phpmyadmin

・自分のローカルPCのみでphpmyadminにログインできるよう設定する
自分のPCのグローバルIPアドレスを確認する
確認くん

確認できたらviで設定をいじる

vi /etc/httpd/conf.d/phpMyAdmin.conf

※大文字に注意

127.0.0.1の部分をグローバルIPアドレスに書き換えればOK

せっかくなので置換機能を使ってみる

:%s/127.0.0.1/xxx.xx.xx.xx/g

全4か所が修正されていればOK
設定を反映させるために再起動する

service httpd restart

確認のためxx.xx.xx.xx/phpmyadminをブラウザで確認する
ユーザー名はroot、パスワードはmysqlで設定したものを入力。

これにてLAMP環境が完成!

今後はLaravel環境を作る方法を書けるようになれればと思っています!

ありがとうございました。

12
13
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
12
13