Nginx
Wordpress、nginx、php-fpm:XML-RPC 不工作
我已經在我自己的伺服器上安裝了帶有 Nginx 和 PHP-FPM 的 Wordpress,地址為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; } }
有沒有人看到過這樣的問題,或者可以在我的配置文件中發現問題?
看起來像擴展
php-xml
並且php-xmlrpc
沒有安裝。安裝它們:
apt-get install php-xml php-xmlrpc
或(CentOS、RHEL 等)
yum install php-xml php-xmlrpc
蘇塞
zypper install php-xml php-xmlrpc