搭建AWS EC2服务器(nginx, PHP, Composer编)

EC2服务器建立(nginx、PHP、Composer编)

简要概述

我将介绍在EC2上构建常用应用服务器的步骤。(为了未来的我哈哈)
各种设置是使用AWS的负载均衡器和EC2来运行Laravel的图像。
我认为该图像几乎可以直接使用。

环境

    • Amazon Linux2

 

    • nginx 1.12.1

 

    • PHP 8.0.6

 

    Composer 2.1.3

步驟

1. 系统设置 (Xì shè zhì)

本文詳細記載了EC2服务器构建(基本设置)的操作步骤。

2. 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.12.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

调整服务器名称的长度(例如,在DNS过长的情况下)。

sudo vi /etc/nginx/nginx.conf

我們將在http塊的“keealive_timeout“和“types_hash_max_size“之間加入“server_names_hash_bucket_size“的設置。

keepalive_timeout   65;
server_names_hash_bucket_size 128;
types_hash_max_size 2048;

设置超时时间

sudo vi /etc/nginx/nginx.conf
keepalive_timeout   65;

keepalive_timeout   300;

獨立編製設定檔案

sudo vi /etc/nginx/conf.d/app.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;
    }
}

服务器名称示例:

    • ドメインを設定する場合: develop.test.com

ロードバランサーを設定する場合: test-internal-1111111111.ap-northeast-1.elb.amazonaws.com

检查并重新启动

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

3. PHP

3. 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 ]
 51  php8.0                   available    [ =stable ]

$ amazon-linux-extras info php8.0
php8.0 recommends php-cli                    # yum install php-cli
php8.0 recommends php-pdo                    # yum install php-pdo
php8.0 recommends php-fpm                    # yum install php-fpm
php8.0 recommends php-mysqlnd                # yum install php-mysqlnd

$ sudo amazon-linux-extras install php8.0

$ php -v
PHP 8.0.6 (cli) (built: May 13 2021 22:35:54) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.6, Copyright (c) Zend Technologies

$ php-fpm -v
PHP 8.0.6 (fpm-fcgi) (built: May 13 2021 22:37:48)
Copyright (c) The PHP Group
Zend Engine v4.0.6, Copyright (c) Zend Technologies

PHP的设定

php.ini 选项

这附近随您喜欢随意选择吧(笑)

$ sudo vi /etc/php.ini
expose_php = Off
memory_limit = 256M
date.timezone = Asia/Tokyo
mbstring.language = Japanese
将用户和组的值更改为nginx
sudo vi /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-process php-fpm php-zip
如果要安装PHP Intl

需要先插入ICU。

$ sudo yum -y install icu
$ sudo yum -y install php-intl
重新启动php-fpm和nginx。
$ sudo systemctl restart php-fpm.service
$ sudo systemctl restart nginx.service

4. 安装 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 2.1.3 2021-06-09 16:31:20

bannerAds