在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入站规则。

スクリーンショット 2022-08-23 18.47.57.png

安装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
スクリーンショット 2022-08-22 18.54.34.png

安装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
スクリーンショット 2022-08-22 19.10.47.png

请参阅上述文章。

 

bannerAds