如何在 AWS linux AMI 上使用 Nginx 设置 Laravel

How to setup up Laravel with Nginx on AWS linux AMI

我正在尝试使用 laravel 在 AWS linux ami 上使用 nginx,但是当我尝试访问我的实例 public ip 时,我找不到文件。这就是我所做的

sudo amazon-linux-extras install nginx1
sudo service nginx start

完成此步骤后,我确定 nginx 正在运行,因为我可以看到 nginx 网页。现在我正在尝试安装 laravel

sudo amazon-linux-extras install php7.3
sudo yum install php-xml php-mbstring
sudo service php-fpm start
sudo service nginx restart
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
composer global require laravel/installer
export PATH=$PATH:/home/ec2-user/.config/composer/vendor/bin/
laravel new test
sudo vi /etc/nginx/nginx.conf





server {
    listen 80;
    server_name _;
    root /home/ec2-user/test/public;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    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-fpm/www.sock;
      fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
      include fastcgi_params;
    }
    location ~ /\.(?!well-known).* {
       deny all;
    }
}
sudo chown -R apache:apache storage/
sudo chown -R apache:apache bootstrap/cache

当我尝试加载我的页面时,我收到找不到文件。

您可以通过两种方式解决此问题:

  1. 提供有效的服务器名称/域
  2. 修复 Nginx 默认 IP 地址

提供有效的服务器名称

您需要在 Nginx 配置中修复服务器名称,您已将服务器名称输入为 _。您需要在那里输入一个有效的域名。例如:

server_name example.com;

然后创建指向该IP地址的域的A记录。例如:

example.com    A    123.123.123.123

修复 Nginx 默认配置

默认情况下,如果您安装 Nginx,服务器 IP 会从 /var/www/html 获取文件,因此您可以通过两种方式找到此问题:

  1. 上传默认路径下的文件
  2. 更改 Nginx 默认路径

上传默认路径下的文件:

  • 1st 删除 /var/www/
  • 下的 html 文件夹
  • 第二次上传 laravel 文件到 /var/www/
  • 第 3 次将您的 laravel 项目 public 文件夹重命名为 html
  • 现在重启nginx,访问你的ip

更改 Nginx 默认路径

  • 打开默认文件
sudo nano /etc/nginx/sites-enabled/default
  • 找到 root /var/www/html 并将 /var/www/html 替换为您的路径
  • 重启nginx,然后访问你的IP