如何在 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
当我尝试加载我的页面时,我收到找不到文件。
您可以通过两种方式解决此问题:
- 提供有效的服务器名称/域
- 修复 Nginx 默认 IP 地址
提供有效的服务器名称
您需要在 Nginx 配置中修复服务器名称,您已将服务器名称输入为 _
。您需要在那里输入一个有效的域名。例如:
server_name example.com;
然后创建指向该IP地址的域的A记录。例如:
example.com A 123.123.123.123
修复 Nginx 默认配置
默认情况下,如果您安装 Nginx,服务器 IP 会从 /var/www/html
获取文件,因此您可以通过两种方式找到此问题:
- 上传默认路径下的文件
- 更改 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
我正在尝试使用 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
当我尝试加载我的页面时,我收到找不到文件。
您可以通过两种方式解决此问题:
- 提供有效的服务器名称/域
- 修复 Nginx 默认 IP 地址
提供有效的服务器名称
您需要在 Nginx 配置中修复服务器名称,您已将服务器名称输入为 _
。您需要在那里输入一个有效的域名。例如:
server_name example.com;
然后创建指向该IP地址的域的A记录。例如:
example.com A 123.123.123.123
修复 Nginx 默认配置
默认情况下,如果您安装 Nginx,服务器 IP 会从 /var/www/html
获取文件,因此您可以通过两种方式找到此问题:
- 上传默认路径下的文件
- 更改 Nginx 默认路径
上传默认路径下的文件:
- 1st 删除
/var/www/
下的 - 第二次上传 laravel 文件到
/var/www/
- 第 3 次将您的 laravel 项目
public
文件夹重命名为html
- 现在重启nginx,访问你的ip
html
文件夹
更改 Nginx 默认路径
- 打开默认文件
sudo nano /etc/nginx/sites-enabled/default
- 找到
root /var/www/html
并将/var/www/html
替换为您的路径 - 重启nginx,然后访问你的IP