Ubuntu环境下Nginx部署Magento2出现404 Not Found问题求助
检查Nginx站点配置核心规则
Magento2要求Nginx根目录必须指向Magento安装目录下的pub文件夹,同时需要正确的重写规则处理路由。确保你的配置文件包含以下关键部分:server { listen 80; server_name your-domain.com; # 必须指向pub目录 root /path/to/your/magento/pub; index index.php; charset UTF-8; error_page 404 403 /errors/404.php; # 处理静态资源和路由重写 location / { try_files $uri $uri/ /index.php?$args; } # pub目录权限控制 location ~ ^/pub/ { allow all; } # PHP-FPM配置,确保socket或端口正确 location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/www.sock; # 根据你的PHP版本调整路径 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }修改后重启Nginx:
systemctl restart nginx验证文件权限与归属
Web服务器用户(通常是nginx或www-data)需要对Magento关键目录有读写权限,执行以下命令修复:# 设置目录归属为web服务器用户 chown -R nginx:nginx /path/to/your/magento # 设置文件和目录权限 find var generated pub/static pub/media app/etc -type f -exec chmod g+w {} + find var generated pub/static pub/media app/etc -type d -exec chmod g+ws {} + chmod u+x bin/magento检查SELinux状态(即使跳过配置)
执行sestatus确认当前状态:若显示Disabled则无问题;若为Permissive,查看审计日志/var/log/audit/audit.log,搜索denied关键词,确认是否有Nginx访问文件被阻止的记录,若有可执行restorecon -Rv /path/to/your/magento修复文件上下文。查看Nginx错误日志定位具体问题
打开Nginx错误日志(通常在/var/log/nginx/error.log或/var/log/nginx/your-domain.error.log),查找404相关错误条目,比如是否显示“file not found”对应的路径错误,直接定位根目录配置错误或文件缺失问题。确认Magento安装状态
检查Magento根目录下是否存在app/etc/env.php文件:若不存在说明安装未完成,确保Nginx配置指向pub后访问域名进入安装向导;若已安装,执行bin/magento setup:static-content:deploy -f重新生成静态资源,再清理缓存:bin/magento cache:clean
内容的提问来源于stack exchange,提问作者Gia Khánh

