在配置Nginx以运行Laravel应用时,你需要确保网站的配置文件正确处理PHP文件,并且保护敏感文件的安全。以下是一个基本的Nginx配置示例,用于Laravel项目:
server {
listen 80;
server_name your-domain.com;
root /path/to/your/laravel/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据PHP版本和配置修改
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
确保将your-domain.com
替换为你的域名,将/path/to/your/laravel/public
替换为你的Laravel项目的public目录的路径。
此配置文件执行以下操作:
- 设置Nginx监听80端口。
- 定义服务器名称。
- 设置网站根目录为Laravel的public目录。
- 添加必要的HTTP安全头。
- 将默认索引文件设置为index.php。
- 设置字符编码为UTF-8。
- 为所有请求处理尝试提供静态文件,如果找不到文件则将请求转发到index.php。
- 为PHP文件设置location块,使用PHP-FPM处理请求。
- 隐藏
.git
,.svn
,.htaccess
等文件和目录。
确保在修改配置文件后,重启Nginx以使更改生效:
sudo systemctl restart nginx
如果你使用的是其他版本的PHP或者不同的Unix套接字路径,请相应地修改配置文件中的fastcgi_pass
指令。