搭建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