在EC2上搭建Laravel 9(PHP8 + Nginx1.2 + RDS MySQL)的环境
首先
由于有机会在EC2上构建Laravel9,我将其总结如下。
预先建立
-
- vpc subnetなどのネットワーク
-
- RDS
- EC2 (Amazon linux 2)
EC2的初期配置
EC2启动后,需要进行初始设置。
如果不需要的话,可以跳过。
将时区更改为日本
$ date
2022年 8月 23日 火曜日 09:56:37 UTC
$ sudo vim /etc/sysconfig/clock
- ZONE="UTC"
- UTC=true
+ ZONE="Asia/Tokyo"
+ UTC=False
$ sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime
$ date
2022年 8月 23日 火曜日 18:56:32 JST
SSH端口更改
将SSH的默认端口从22改为49120。
$ sudo vim /etc/ssh/sshd_config
+ Port 49120
重新加载sshd后,下一次ssh端口将更改为49120。
$ sudo service sshd reload
不要忘记更改安全组的ssh入站规则。

安装PHP
安装PHP。
$ cd
$ sudo yum update -y
// amazon-linux-extras パッケージがあるか確認
$ amazon-linux-extras
// php8.0を有効化
$ sudo amazon-linux-extras enable php8.0
// php8.0をインストール
$ sudo amazon-linux-extras install -y php8.0
// laravelで必要なモジュールをインストール
$ sudo yum install -y php-mbstring php-xml php-bcmath
// metadataを削除
$ yum clean metadata
安装Nginx
$ cd
// nginx1.2を有効化
$ sudo amazon-linux-extras enable nginx1
// nginx1.2をインストール
$ sudo amazon-linux-extras install nginx1
// metadataを削除
$ yum clean metadata
// nginxのmod類をインストール
$ sudo yum -y install nginx-mod*
// インストールされたか確認
$ rpm -qa|grep nginx
更改php-fpm的配置文件
$ sudo vim /etc/php-fpm.d/www.conf
- user = apache
- group = apache
- ;listen.owner = nobody
- ;listen.group = nobody
- ;listen.mode = 0660
+ user = nginx
+ group = nginx
+ listen.owner = nginx
+ listen.group = nginx
+ listen.mode = 0660
重新启动
$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm
nginx和php-fpm的自动启动设置
sudo systemctl enable nginx
sudo systemctl enable php-fpm
重启后,您可以在EC2的公共IP上打开浏览器,查看nginx的默认页面。请打开安全组的端口号为80的http端口。
$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm

安装Composer
由于以下网站是最新的,我们可以参考它。
$ cd
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/local/bin/composer
// composerのバージョンを確認しましょう。
$ composer -V
安装Laravel。
Laravel 将创建一个项目,并将其路径设置为 /var/www/html。
$ cd /var
$ sudo mkdir /var/www
$ sudo chown ec2-user:nginx /var/www
$ composer create-project --prefer-dist laravel/laravel html
$ cd html
// ディレクトリは、所有権限775にします
$ sudo find ./ -type d -exec chmod 775 {} +
// ファイルは、所有権限664にします
$ sudo find ./ -type f -exec chmod 664 {} +
$ sudo chown -R nginx:ec2-user ./
// storage bootstrap/cacheは、所有権限777にします
$ sudo chmod -R 777 storage bootstrap/cache
根据创建的RDS进行修改的是env文件。
$ sudo vim .env
DB_CONNECTION=mysql
DB_HOST=RDSのライターエンドポイント
DB_PORT=3306
DB_DATABASE=データベース名
DB_USERNAME=ユーザー名
DB_PASSWORD=パスワード
如果 APP_KEY 为空的话,可以通过 php artisan key:generate 来生成一个key,并将其添加到 .env 文件中的密钥信息中。
修改nginx.conf
我将修改部分/etc/nginx/nginx.conf文件。
(Wǒ /etc/nginx/nginx.conf .)
$ sudo vim /etc/nginx/nginx.conf
# 〜〜省略
server {
listen 80;
listen [::]:80;
- server_name _;
+ server_name test.com;
- root /usr/share/nginx/html;
+ root /var/www/html/public;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
+ location / {
+ try_files $uri $uri/ /index.php?$query_string;
+ }
- error_page 404 /404.html;
- location = /404.html {
- }
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- }
}
# 〜〜省略
如果服务器的域名已经确定,请进行更改。
如果通过EC2的公共IP进行访问,不需要更改。
在对nginx进行修正后重新启动(重新加载),将会显示laravel的首页页面。
$ sudo nginx -s reload

请参阅上述文章。