用户访问wp-login.php时,验证通过后并没有显示登录界面,而是下载了wp-login.php页面。这通常是由于Nginx的配置问题导致的。nginx配置中,缺少了正确处理PHP文件的部分。在Nginx中,需要确保PHP文件由PHP解释器处理,而不是作为静态文件下载。
为了确保wp-login.php文件能够正确地被PHP解释器处理,除了进行访问控制,还需要配置Nginx将PHP请求正确地传递给PHP-FPM或其他PHP解释器。
这里是一个完整的Nginx配置示例,包括访问控制和PHP处理:
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location = /wp-login.php {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd; # 指定 .htpasswd 文件路径
# PHP 处理部分
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $document_root/wp-login.php;# 这句和下面那句代码必须的
fastcgi_param SCRIPT_NAME /wp-login.php;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 这里的路径请根据你的PHP-FPM socket路径进行调整
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 这里的路径请根据你的PHP-FPM socket路径进行调整
}
location ~ /\.ht {
deny all;
}
}
在上述配置中:
auth_basic和auth_basic_user_file指令用于设置访问控制,确保用户需要进行基本身份验证才能访问wp-login.php。include snippets/fastcgi-php.conf和fastcgi_pass指令确保wp-login.php由PHP-FPM处理,而不是作为静态文件下载。
确保你的Nginx和PHP-FPM配置正确且匹配。如果使用的是不同的PHP-FPM版本或套接字路径,请相应地调整fastcgi_pass指令。
注意:Nginx配置文件修改后需要重启Nginx服务或重新加载配置以使其生效:
sudo systemctl reload nginx
或
sudo nginx -s reload
这样,当用户访问wp-login.php时,Nginx会先进行基本身份验证,验证通过后正确地将请求传递给PHP-FPM进行处理,从而显示登录界面,而不是下载页面。
当前文章价值4.1元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章
分类:ubuntu
标签:fastcgi, php fpm, wp-login.php密码验证, 访问校验
评论已关闭!