【AWS】使用EC2搭建Laravel环境,包括Nginx、PHP、Composer和PHP-FPM

首先

重疊不斷的第一次使用AWS和Laravel,我在導入過程中遇到了一些困難。
起初我打算使用Apache作為Web服務器軟件,但不知為何,即使安裝了Laravel,也無法通過路徑,進展非常緩慢…(也許現在我能解決這個問題了…)
總之,經過一番努力,我找到了使用Nginx進行導入的方法,並成功進行了導入。

在之前的文章中,我們啟動了 EC2 的實例並描述了 SSH 連接。這次,我們將通過 SSH 連接到 EC2,並使用 PHP、Nginx、Composer、PHP-FPM 等工具進行環境配置。

操作步骤

 

1. SSH连接

image.png
image.png

2. PHP的安装

执行以下命令,安装EPEL仓库(EPEL仓库中包含了PHP软件包)。

sudo yum install epel-release

运行以下命令安装PHP

sudo yum install php

完成安装后,PHP将成功安装。要检查版本,请执行以下命令:

php -v
image.png

3. 安装 Nginx。

sudo yum install -y nginx

请确认Nginx是否正确安装。

sudo systemctl status nginx
image.png

4. 安装Composer

Composer是一个PHP的依赖关系管理工具和包管理工具。在PHP项目中使用外部包或库时,它被用于方便地安装、更新和解决依赖关系。

请按以下顺序执行命令来安装实例所需的软件包。

sudo yum update -y
sudo yum install php-cli php-zip wget unzip -y

请下载Composer的官方安装脚本,并执行以下命令。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

请验证Composer安装脚本的完整性。请执行以下命令。

php -r "if (hash_file('sha384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

执行Composer的安装脚本,安装Composer。

php composer-setup.php
php -r "unlink('composer-setup.php');"

使用以下命令将Composer的路径添加到/usr/local/bin中。

這樣一來,Composer將被配置在/usr/local/bin目錄下並加入全域路徑中。從此之後,您可以使用composer命令來執行Composer。
sudo mv composer.phar /usr/local/bin/composer

为了确认安装是否成功,请执行以下命令来显示Composer的版本。

composer --version
image.png

8. 在安装时发生错误,导致缺少了以下的组件。先快速安装它们来解决问题!

sudo yum install php-mbstring
sudo yum install php-dom
composer install

5. PHP-FPM的配置

sudo vim /etc/php-fpm.d/www.conf
image.png

当编辑工作完成后,按下Esc键,然后使用:wq命令退出vim编辑器。

6. Nginx的配置

在conf.d/目录下创建一个名为laravel.conf的新文件。

sudo vim /etc/nginx/conf.d/laravel.conf

在Laravel官方网站上,有一个关于Nginx配置的示例,可以参考。请访问链接:https://laravel.com/docs/8.x/deployment#nginx。将Nginx配置示例复制并粘贴到laravel.conf文件中。

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    root /srv/example.com/public;
 
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
 
    index index.php;
 
    charset utf-8;
 
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
 
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
 
    error_page 404 /index.php;
 
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }
 
    location ~ /\.(?!well-known).* {
        deny all;
    }
}

3. 稍微修改内容

image.png
image.png

7. Laravel 的安装/项目创建

请自己决定项目名称,例如(asojobhive)。

运行以下命令,在www目录下创建一个Laravel项目。

cd /var/www/
composer create-project --prefer-dist laravel/laravel 【プロジェクト名】

2. 确认Laravel项目是否已生成。

ls -a
image.png

修改项目名称/storage的权限

cd /var/www/【プロジェクト名】/
sudo chmod -R 777 storage/

5. 创建加密密钥 yuè de

cp .env.example .env
php artisan key

好的,我们继续往下进行。

8. 启动Nginx和PHP-FPM。

sudo yum systemctl start nginx
sudo yum systemctl start php-fpm

9. Laravel确认/环境已设置完成

回到AWS EC2控制台,通过【公共IP地址】或【公共IPv4 DNS】进行URL搜索,如果显示Laravel的默认页面,则表示Laravel环境已成功设置完成。

10.总结

 

广告
将在 10 秒后关闭
bannerAds