web-dev-qa-db-ja.com

Wordpress、nginx、php-fpm:XML-RPCが機能しない

Wordpress NginxとPHP-FPMを使用して https://saskia.photo にある自分のサーバーにインストールしました

インストールは正常に機能しますが、XML-RPC(Jetpackおよび電話アプリで使用)は次のエラーをスローします。

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
  <fault>
    <value>
      <struct>
        <member>
          <name>faultCode</name>
          <value><int>-32700</int></value>
        </member>
        <member>
          <name>faultString</name>
          <value><string>parse error. not well formed</string></value>
        </member>
      </struct>
    </value>
  </fault>
</methodResponse>

あなたは実行することで自分でエラーを見ることができます

curl -A "Jetpack by WordPress.com" -is -H 'Content-Type: text/xml' --data '<?xml version="1.0"?><methodCall><methodName>demo.sayHello</methodName><params></params></methodCall>' 'https://saskia.photo/xmlrpc.php' && echo

私は Jetpackのトラブルシューティングページ を試してみましたが、うまくいきませんでした。

返されたXMLエラーは、クライアント要求XMLがnginxとPHPの間のどこかで破損しているため、解析できないようになっていると推測しています。

これが私のnginx設定ファイルです

server {
  listen      80;
  listen      [::]:80;
  server_name saskia.photo;
  rewrite     ^   https://$server_name$request_uri? permanent;
}

server {
  listen                443 ssl http2;
  listen                [::]:443 ssl http2;
  server_name           saskia.photo;
  ssl_certificate       /etc/letsencrypt/live/saskia.photo/fullchain.pem;
  ssl_certificate_key   /etc/letsencrypt/live/saskia.photo/privkey.pem;

  root                  /srv/wordpress/;
  charset               utf-8;

  client_max_body_size 64M;

  # Deny access to any files with a .php extension in the uploads directory
  location ~* /(?:uploads|files)/.*\.php$ {
    deny all;
  }

  location / {
    index index.php index.html index.htm;
    try_files $uri $uri/ /index.php?$args;
  }

  location ~* \.(gif|jpg|jpeg|png|css|js)$ {
    expires max;
  }

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_index index.php;
    fastcgi_pass  unix:/var/run/php/wordpress.sock;
    fastcgi_param   SCRIPT_FILENAME
      $document_root$fastcgi_script_name;
    include       fastcgi_params;
  }
}

誰かがこのような問題を見たことがありますか、または私の構成ファイルで問題を見つけることができますか?

5

拡張機能のようですphp-xmlおよびphp-xmlrpcがインストールされていません。

それらをインストールします:

apt-get install php-xml php-xmlrpc

または(CentOS、RHELなど)

yum install php-xml php-xmlrpc

SuSE

zypper install php-xml php-xmlrpc
8
Orphans