LoginSignup
1
4

More than 3 years have passed since last update.

EC2 Webサーバー構築

Last updated at Posted at 2020-10-05

EC2サーバー構築共通

概要

AWSのEC2を利用して、Webサーバーを構築したときの手順をご紹介します。

環境

  • nginx 1.16.1
  • PHP 7.4.3
  • git 2.23.1

手順

1. システム

# yumのパッケージ更新
$ sudo yum update

# タイムゾーン確認
$ timedatectl status

# タイムゾーンを日本時間に設定
$ sudo timedatectl set-timezone Asia/Tokyo

# ロケール確認
$ localectl status

# ロケール変更
$ sudo localectl set-locale LANG=ja_JP.UTF-8

2. ニックネーム設定

ホスト名に影響を与えずにシェルプロンプトを変更する
参考

  1. 環境変数定義
$ sudo sh -c 'echo "export NICKNAME={ニックネーム}" > /etc/profile.d/prompt.sh'
$ sudo sh -c 'echo "export NICKNAME=staging" > /etc/profile.d/prompt.sh'
  1. シェルプロンプトの設定編集
  2. $ sudo vi /etc/bashrc
    

    \h (hostname を表す記号) を NICKNAME 変数の値に変更
    bash:/etc/bashrc
    [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "

    [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\$NICKNAME \W]\\$ "

  3. シェルウィンドウのタイトルを新しいニックネームに設定

# ファイル作成
sudo touch /etc/sysconfig/bash-prompt-xterm

#  実行権限付与
$ sudo chmod +x /etc/sysconfig/bash-prompt-xterm

# ファイル編集
$ sudo vi /etc/sysconfig/bash-prompt-xterm
/etc/sysconfig/bash-prompt-xterm
echo -ne "\033]0;${USER}@${NICKNAME}:${PWD/#$HOME/~}\007"

3. Nginx

インストール

# nginxのトピックを確認
$ amazon-linux-extras list | grep nginx
38  nginx1                   available    [ =stable ]

$ amazon-linux-extras info nginx1
nginx1 recommends nginx                      # yum install nginx

$ sudo amazon-linux-extras install nginx1.12

$ nginx -v
nginx version: nginx/1.16.1

起動設定

#起動
$ sudo systemctl start nginx.service

#自動起動
$ sudo systemctl enable nginx.service

#自動起動確認
$ sudo systemctl is-enabled nginx.service
enabled

#状態確認
$ sudo systemctl status nginx.service
Active: active (running)

権限付与

$ sudo chmod 777 -R /var/log/nginx

nginx.conf

sudo vi /etc/nginx/nginx.conf

以下を追加

サーバー名の長さ調整

server_names_hash_bucket_size 128;

タイムアウト設定

keepalive_timeout   300;

独自の設定ファイル作成

sudo vi /etc/nginx/conf.d/web.conf
server {
    listen       80;
    server_name  {サーバー名};
    index        index.php;
    root         {ドキュメントルート};
    charset      utf-8;
    etag         off;
    add_header   X-Content-Type-Options nosniff;
    add_header   X-XSS-Protection "1; mode=block";

    location / {
        try_files $uri $uri/ /index.php?$query_string;
        index  index.html index.php;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass  unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include       fastcgi_params;
    }
}

サーバー名の例:
- test.com
- 123.11.111.11

ドキュメントルートの例:
/srv/public

チェックと再起動

$ sudo nginx -t
$ sudo systemctl restart nginx.service

4. PHP

インストール

# nginxのトピックを確認
$ amazon-linux-extras list | grep php
 15  php7.2                   available    \
 17  lamp-mariadb10.2-php7.2  available    \
 31  php7.3                   available    \
 42  php7.4                   available    [ =stable ]

$ amazon-linux-extras info php7.4

$ sudo amazon-linux-extras install php7.4

$ php -v
PHP 7.4.3 (cli) (built: Mar  2 2020 21:05:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

$ php-fpm -v
PHP 7.4.3 (fpm-fcgi) (built: Mar  2 2020 21:06:23)
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

php設定

php.ini
$ sudo vi /etc/php.ini
/etc/php.ini
expose_php = Off
memory_limit = 256M
date.timezone = Asia/Tokyo
mbstring.language = Japanese
userとgroupの値をnginxに変更
sudo vi /etc/php-fpm.d/www.conf
/etc/php-fpm.d/www.conf
user = apache
group = apache
↓
user = nginx
group = nginx
PHP拡張
$ sudo yum install php-mbstring php-pecl-memcached php-gd php-apcu php-xml php-cli php-json php-process php-common php-fpm php-zip php-mysqlnd
php-fpmとnginxを再起動
$ sudo systemctl restart php-fpm.service
$ sudo systemctl restart nginx.service
composer インストール
$ cd /home/ec2-user
$ sudo curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
$ composer -v
Composer version 1.10.5 2020-04-10 11:44:22

5. git

インストール

$ sudo yum install git

$ git version
git version 2.23.1

秘密鍵の登録

$ cd ~/.ssh
$ ssh-keygen -t rsa -b 4096
$ cat ~/.ssh/id_rsa.pub
コピーしてgithubに公開鍵を登録する
$ ssh -T git@github.com
$ cd ~/.ssh
$ vi id_rsa
$ chmod 600 id_rsa

clone

$ cd /home/ec2-user
$ git init
$ git clone git@github.com:{リポジトリ名}
1
4
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
4