首页 > 解决方案 > 如何在 AWS linux AMI 上使用 Nginx 设置 Laravel

问题描述

我正在尝试在 AWS linux ami 上使用 nginx 使用 laravel,但是当我尝试访问我的实例公共 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

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

标签: phplinuxlaravelnginxamazon-ami

解决方案


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

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

提供有效的服务器名称

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

server_name example.com;

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

example.com    A    123.123.123.123

修复 Nginx 默认配置

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

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

上传默认路径下的文件:

  • 1、删除html下的文件夹/var/www/
  • 2nd uload你的laravel文件里面/var/www/
  • 第三次将您的 laravel 项目public文件夹重命名为html
  • 现在重启nginx并访问你的ip

更改 Nginx 默认路径

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

推荐阅读