Edited at

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

自己学習のメモとして。

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環境を作る方法を書けるようになれればと思っています!

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