我刚刚使用 nginx、php8.1-fpm、mysql 将我的多站点 WordPress 从旧服务器(centos)迁移到新服务器(ubuntu22)。 我确信我的所有配置都是正确的,但浏览器总是显示 404 not found
server {
listen 80 default_server;
listen 443 ssl default_server;
ssl_certificate /home/bagwi2024/ssl/example.com.ssl;
ssl_certificate_key /home/bagwi2024/ssl/example.com.key;
#ssl_prefer_server_ciphers on;
server_name example.com;
access_log /var/www/html/access.log;
error_log /var/www/html/error.log;
root /var/www/html/dev-kbd;
index index.php index.html index.htm index.nginx-debian.html;
location / {
#try_files $uri $uri/ =404;
#try_files $uri /index.html index.php;
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
没有足够的信息来解决这个问题,但在看到你的配置后,这里有几个可能的问题......
当然,本地文件上的目录结构可能有很多...但请记住,404 可能是由于文件系统结构造成的:
root /var/www/html/dev-kbd; #given this
期望可以在这里访问 WordPress 软件:
/var/www/html/dev-kbd/wp-admin/*
/var/www/html/dev-kbd/wp-content/*
*etc*
你可以拥有任何你想要的,但配置必须对齐。
还要注意 WordPress 管理员与站点主页设置的一致性...
如果您的 WordPress 使用域根作为站点主页,应该没问题,否则调整 Nginx + WP 但我假设它之前可以工作并且您确定复制了精确的文件结构,那么就可以了。
Debian/Ubuntu 也使用默认的 ssl 位置(不是文件名,目录):
/etc/ssl/certs/com_domain_www.crt; #chown root:root #chmod 644
/etc/ssl/private/com_domain_www.key; #chown root:ssl-cert #chmod 640
这是我对配置问题的第一猜测,因为你是从 CentOS 移植的,它或多或少类似于 RHEL。
如果您已经自定义了您的用户主页,并具有 root/ssl-cert 的访问权限(权限)来访问您的证书和私钥,那就太好了;但您提出的结构有几个原因令人担忧......