Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can’;t密码保护wp-login.php,未发生任何事情_Php_Wordpress_Nginx - Fatal编程技术网

Can’;t密码保护wp-login.php,未发生任何事情

Can’;t密码保护wp-login.php,未发生任何事情,php,wordpress,nginx,Php,Wordpress,Nginx,我有Ubuntu 14.04、Nginx 1.6.2、PHP5.5.23-1+deb.sury.org~trusty+2和fastcgi VPS。我用Easy Engine设置我的WordPress站点。我想启用密码保护我的所有WordPress网站“wp login.php”以及“wp admin”区域。为了测试这个过程,我在站点启用目录(/etc/nginx/sites enabled)站点文件(mysite.com)中添加了以下代码 我的VPS php FPM使用fastcgi_pass

我有Ubuntu 14.04、Nginx 1.6.2、PHP5.5.23-1+deb.sury.org~trusty+2和fastcgi VPS。我用Easy Engine设置我的WordPress站点。我想启用密码保护我的所有WordPress网站“wp login.php”以及“wp admin”区域。为了测试这个过程,我在站点启用目录(
/etc/nginx/sites enabled
)站点文件(mysite.com)中添加了以下代码

我的VPS php FPM使用
fastcgi_pass 127.0.0.1:9000所以我在上面的代码中使用了它

然后我创建了
.htpasswd
文件并上传到
/var/www
目录,并将权限设置为
rw-r-----

然后,我使用服务php5 fpm reload和服务nginx reload命令重新启动了php和nginx。现在,当我尝试访问/wp-login.php时,没有任何变化。它就像常规登录页面一样,不升级任何密码弹出窗口。我看不到任何错误或警告

由于上面的/wp-login.php文件密码保护不起作用,我在/wp admin/文件夹中添加了密码保护,然后它就起作用了。这是我新的nginx站点启用配置文件

server {


    server_name mysite.com   www.mysite.com;


    access_log /var/log/nginx/mysite.com.access.log rt_cache;
    error_log /var/log/nginx/mysite.com.error.log;
    root /var/www/mysite.com/htdocs;



    index index.php index.html index.htm;


    include common/w3tc.conf; 

    include common/wpcommon.conf;
    include common/locations.conf;
    include common/pagespeed.conf;

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                #fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
                 }


location /wp-admin/admin-ajax.php {
    allow all;
}


location /wp-admin {
    location ~ /wp-admin/admin-ajax.php$ {
        # Php handler
    try_files $uri =404;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_read_timeout 300;
    include fastcgi_params;   
    }

    location ~* /wp-admin/.*\.php$ {
            auth_basic "Restricted Area:WordPress";
            auth_basic_user_file /var/www/.htpasswd; 

        # Php handler
    try_files $uri =404;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_read_timeout 300;
    include fastcgi_params;   
    }
}

    }

有人能告诉我如何解决这个问题吗?

由于您使用的是fastcgi,您需要在PHP文件的位置块中包含您的fastcgi处理

location ^~ /wp-login\.php$ {
    auth_basic "Restricted Area:WordPress";
    auth_basic_user_file /var/www/.htpasswd; 
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index  index.php;
    fastcgi_read_timeout 300;
    include fastcgi_params;   
}

问题是/wp-login.php已经在wpcomon.conf中声明

因此,将/etc/nginx/common/wpcomon.conf复制到/var/www/example.com/my-wpcomon.conf

编辑此块

location = /wp-login.php {
  limit_req zone=one burst=1 nodelay;
  include fastcgi_params;
  fastcgi_pass php;
}
进入

然后在/etc/nginx/sites available/example.com编辑您的站点nginx配置,替换

include common/wpcommon.conf;
进入

重新启动nginx


但是,请在每次更新EasyEngine时检查/etc/nginx/common/wpcomon.conf,以防出现新的配置,这样您的my-wpcomon.conf仍会更新。

现在它会告诉我此错误<代码>/$nginx-t&&service nginx restart nginx:[warn]在/etc/nginx/conf.d/ee nginx.conf:35 nginx:[emerg]“fastcgi\u pass”中重复值“any”指令在/etc/nginx/sites enabled/sitename.com:34 nginx:configuration file/etc/nginx/nginx.conf测试失败
My
/etc/php5/fpm/pool.d/www.conf
has
listen=127.0.0.1:9000
。所以我可以使用
fastcgi\u pass unix:/var/run/php5-fpm.sock?如果我使用您的代码并重新启动VPS,则不会发生任何事情。有没有办法查看日志?您可以在nginx配置文件中指定的文件下查看日志。默认情况下,它位于/var/log/nginx/error.log下。不幸的是,当我访问login.php页面时,什么都没有发生。Als在日志文件中看不到任何错误。@AlexeyTen我刚刚添加了配置文件和一些附加信息。将wp admin移到默认PHP之前location@AlexeyTen如果我移动
location~*/wp admin/*\.php${
wp admin
上方,什么也没发生。尽管如此,我还是无法对php文件进行密码保护。但它是密码保护
wp admin/
目录。是另一个包丢失的问题还是其他问题?
location = /wp-login.php {
  limit_req zone=one burst=1 nodelay;
  include fastcgi_params;
  fastcgi_pass php;

  satisfy any;
  allow 127.0.0.1;
  deny all;
  auth_basic "Authorization Required";
  auth_basic_user_file /var/www/.htpasswd;
}
include common/wpcommon.conf;
include /var/www/example.com/my-wpcommon.conf;