Проблема с WordPress XMLRPC

#php #wordpress #macos #xampp #xml-rpc

#php #wordpress #macos #xampp #xml-rpc

Вопрос:

Я пытаюсь использовать WordPress XML-RPC. Я обнаружил, что по умолчанию XMLRPC будет включен в моей версии WordPress (3.9.1). Но когда я пытаюсь запустить приведенный ниже PHP-код, отображается следующая ошибка:

Fatal error: Call to undefined function xmlrpc_encode_request() in /Applications/XAMPP/xamppfiles/htdocs/easyblog/test/hellotest.php on line 6

Вот мой PHP-код.

 <?PHP
//XML RPC Test
define('RPC_URL', 'http://localhost/wordpress/xmlrpc.php');
function sendRequest($methodName, $parameters)
{
    $request = xmlrpc_encode_request($methodName, $parameters);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
    curl_setopt($ch, CURLOPT_URL, RPC_URL);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    $results = curl_exec($ch);
    $results = xml_decode($results);
    curl_close($ch);
    return $results;
}

$parameters = array();
$response = sendRequest('demo.sayHello', $parameters);?>
  

Сведения о сервере:

Я использую сервер XAMPP с PHP 5.5.11 в Mac OS X.

Когда я погуглил эту ошибку, я обнаружил, что нам нужно включить XML-RPC в файле конфигурации XAMPP php. Итак, в файле XAMPP php.ini я раскомментировал extension=php_xmlrpc.dll , перезапустил сервер и проверил. Но снова я получаю ту же ошибку.

Комментарии:

1. Можете ли вы подтвердить php_xmlrpc.dll не включается при просмотре phpinfo()?

2. как я могу проверить, включен он или нет? Когда я запускаю phpinfo() для двух значений, относящихся к xmlrpc, отображаются xmlrpc_error_number и xmlrpc_errors.

3. Я думаю, что он не был включен. Я использовал var_dump(get_loaded_extensions()), я не нашел xmlrpc.

4. Можете ли вы подтвердить с помощью phpinfo (), что вы редактируете правильный файл php.ini? Он будет наверху.

5. Вы не используете сервер Windows, поэтому загружаете . dll не принесет вам никакой пользы. Возможно, вам повезет, и он начнет работать. dll в .so и перезапуск Apache. В противном случае я не использую XAMPP, поэтому я не могу комментировать включение помимо этого.

Ответ №1:

Вероятно, это связано с тем, что вы не установили xmlrpc на свой сервер. Вы можете проверить библиотеку, выполнив следующие действия:

1) Создайте новый php-документ с этим содержимым. Например, info.php .

 <?php
phpinfo();
?>
  

2) Откройте браузер и загрузите предыдущую созданную страницу: http://YOUR-DOMAIN/info.php

3) Найдите раздел «xmlrpc».

скриншот info.php

4) На этом этапе может произойти 2 вещи:

4.1) Если вы установили библиотеку xmlrpc, возможно, у вас ошибка при установке WordPress или контрольная точка 5

4.2) Если вы НЕ установили библиотеку xmlrpc на свой сервер, вам необходимо установить. В Ubuntu вы можете установить запись библиотеки xmlrpc sudo apt-get install curl libcurl3 libcurl3-dev php5-xmlrpc php5-curl на свой терминал

5) Наконец, проверьте, включено ли расширение вашего файла php.ini. Найдите следующую строку ;extension=php_xmlrpc.so и удалите de «;». Будьте осторожны на этом этапе: сервер Windows имеет расширения .dll, серверы UNIX (Mac OS X или Linux) имеют расширения .so.