2014-01-14 4 views
0

Я пытаюсь использовать cURL для получения ответа с другого сервера после выполнения команды SSH. При этом я думал, что это ошибка соединения, потому что я не получал никакого ответа от сервера. Поэтому я сделал тестовый файл, и он выводит «Works!», Но cURL не поднимает с него ничего. Он помещает мою страницу в цикл ожидания, а затем просто завершает работу и не имеет ответа.cURL не получает ответа от сервера?

test.php Код: "Работы"

<?php echo "works!"; ?> 

Теперь код, который пытается получить ответ.

<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://SERVERIP/test/test.php"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$output = curl_exec($ch); 
curl_close($ch); 
echo $output; 
?> 

Кроме того, если это поможет, я недавно просто обновился до сервера CDN. Обратились к ним, и они сказали, что это скорее проблема программного обеспечения. Поэтому я решил, что спрошу всех вас!

Любой ответ на помощь будет оценен!

+0

Вы пытались вызвать 'curl_error()' и/или 'curl_getinfo()' для оценки того, что происходит с ответом? –

+0

Что вы видите при выпуске 'wget http: // SERVERIP/test/test.php' с того же сервера, на котором есть ваш скрученный скрипт? есть ли у вас какие-либо правила .htaccess? –

+0

- это тестовый файл под названием 'Test.php' или' test.php'? –

ответ

2

Попробуйте использовать CURLOPT_FOLLOWLOCATION

Ex:

<?php 
//I've added this two lines for debug, run the script and check for errors, when done, comment the lines. 
error_reporting(E_ALL); 
ini_set('display_errors', 1) 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://SERVERIP/test/test.php"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
$output = curl_exec($ch); 
curl_close($ch); 
echo $output; 
?> 

на основе ваших комментариев, я обновил ответ:

Чтобы отключить PHP в безопасном режиме на вашем Linux Server

Using SSH, connect to your server. 
Once you are logged in, type su - root. 
For your password, type the same password you used to connect to your server. 
At the command prompt type: 
vi /etc/php.ini 
Go to the line safe_mode = on and press the "i" key. 
Change the line to safe_mode = off and press the "Esc" key. 
Type :wq! to save your file. 

Выключение PHP в безопасном режиме на вашем Windows Server

Using Remote Desktop Connection, log in to your server as an administrator. 
Open c:\windowsphp.ini in Notepad. 
Change the line safe_mode = on to safe_mode = off. 
Save and close php.ini. 

Включение завиток на php.ini:

Windows:

Расположить php.ini и расторжение:

extension=php_curl.dll 

Linux:
В Debian с apache2:

apt-get install php5-curl 
/etc/init.d/apache2 restart 

(php4-завиток, если это php4)

Убедитесь, что PHP был скомпилирован с завитка поддержки, сделать скрипт с следующий код:

<?php 
echo phpinfo(); 
?> 

поиск CURL есть.

+0

Нет. Он все еще находится в цикле загрузки. И это дает мне это «Предупреждение: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION не может быть активировано, если safe_mode включен или установлен open_basedir {URL}" – Hawk27

+0

Если бы у меня был веб-сервер, на котором я размещаю свой веб-сервер на. На днях они должны были отключить его. В любом случае, спасибо за помощь! – Hawk27

Смежные вопросы