以前書いてあったメモが役に立ったので、加筆したりしつつ公開してみる。
あくまで確認用のWebサーバーが立てられるぐらいまでの手順です。
主目的は自分用覚え書きですが、気になる点があればご指摘ください。
あまり環境関係ないかもですが、ローカルマシンはMac OS Xです。
キーペアの作成と設定
SSHのログインに必要な秘密鍵の作成。
既存のものを流用するならこの手順は不要。
EC2 Management Consoleの左カラムから[キーペア]を選択
右側画面上部[キーペアの作成]ボタンをクリック。
任意の名前を入力して作成ボタン。
.pemファイルが落ちてくるので、これをローカルの~/.sshへコピー。
忘れずにパーミッションを変更しておこう。
$ chmod 600 (filename).pem
キーペアなくすと後から設定できないので気を付けよう
インスタンス作成
好みの設定で作成。最後に先程作成したキーを指定することを忘れずに。
必要に応じてElastic IP設定するとか諸々やっておく。
ローカルの~/.ssh/configにサーバ名を追加
やっておくとssh接続が楽になるので。
こんな感じで入力しておく。
この時点ではユーザー名はデフォルトの「ec2-user」にしておく!
$ vi config
host ec2
HostName xxx.xxx.xxx.xxx
User ec2-user
IdentityFile ~/.ssh/(filename).pem
SSHで接続+初期設定
$ ssh ec2
でサクッと繋がるはず。
ひとまずパッケージ諸々のアップデートを。
$ sudo yum update
ec2-userはデフォルト名なので、
存在自体セキュリティ的によろしくない。新しいユーザを追加する。
$ sudo useradd -m (hoge) -G wheel
#パスワードを設定
$ sudo passwd (hoge)
#sudoの設定
$ sudo visudo
#*%wheel ALL=(ALL) NOPASSWD: ALL* のコメントを外す。
秘密鍵ログインのためにサーバ側の公開鍵をコピーしておく
#いま作ったユーザーへ変更
$ su (hoge)
$ cd
$mkdir .ssh
#.sshディレクトリのパーミッションを変更しておかないとログインできないので
$ chmod 700 .ssh
$ cd .ssh
#ec2-userの秘密鍵を持ってくる
$ sudo cp /home/ec2-user/.ssh/authorized_keys ./
#パーミッション、所有者を変更しておかないとログインできないので変更
$ chown (hoge) authorized_keys
$ chgrp wheel authorized_keys
$ chmod 600 authorized_keys
ここまでやったらsshでログインできることを確認。
先ほどのconfigのユーザ名を変更しておく。
正常にログインできることを確認したら$ sudo userdel ec2-user`しておく。
もろもろの環境を整えよう
swap領域の作成
$ sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=1280
$ sudo chmod 600 /mnt/swapfile
$ sudo mkswap /mnt/swapfile
$ sudo swapon /mnt/swapfile
$ free
#下記のような表示がでればOK
total used free shared buffers cached
Mem: 1019280 945880 73400 60 20512 839364
-/+ buffers/cache: 86004 933276
Swap: 0 0 0
#fstabに追記
$ sudo vi /etc/fstab
/mnt/swapfile none swap sw 0 0
i18nあたり
$ sudo vi /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"
timezone
$ sudo cp /usr/share/zoneinfo/Japan /etc/localtime
$ sudo vi /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC=false
#問題ないか確認
$ date
2017年 2月 22日 水曜日 23:11:01 JST
パッケージいれる
まずアップデート
$ sudo yum update
gitあたりは必要かな?
$ sudo yum -y install git
思い出し次第追記。
Webサーバ動かしたいよね。
nginx + PHPをインストール。
$ sudo yum install php70
$ sudo yum install php70-mysqlnd php70-mbstring php70-mcrypt php70-pdo php70-xml php70-fpm
$ sudo yum install nginx
各種コンフィグの設定
$ sudo vi /etc/nginx/nginx.conf
index ndex.php index.html index.htm;
root /var/www/html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
$ sudo vi /etc/php-fpm.d/www.conf
user = nginx
group = nginx
#nginx,php起動
$ sudo service nginx start
$ sudo service php-fpm start
#インスタンス起動時、自動で起動するようにする
$ sudo chkconfig nginx on
$ sudo chkconfig php-fpm on
ドキュメントルートのパーミッション変えておこう
bash
$ sudo chmod 777 /var/www/html/
動作確認
$ vi /var/www/html/index.php
<?php phpinfo();
ずらっと出てくればOK!
いろいろまる見えなので確認したら消しておこう。
ひとまずこんなところまで。
必要に応じてnpm入れたりする編に続く、かもしれない。