#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».
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.