自己学習のメモとして。
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環境を作る方法を書けるようになれればと思っています!
ありがとうございました。