У меня есть два простых сценария для загрузки файла с определенного пути на локальном компьютере и размещения его на сервере Apache. Это работает отлично на Apache построен в OSX 10.8, но не на CentOS 6. Вот код:Загрузка файла PHP не работает на CentOS6, но работает на Apache2 на OSX 10.8
http://mysite.mydomain.com/logsend.php?logfilename=logfile.log
Который затем переходит в "logsend.php":
<?php
$logfilename = $_GET['logfilename'];
$target_url = 'http://mysite.mydomain.com/logaccept.php';
$localdir = '/usr/local/mysoftware/logs/';
$logurl = $localdir . $logfilename;
$post = array('extra_info' => '123456','file_contents'=>'@'.$logurl);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result=curl_exec ($ch);
curl_close ($ch);
?>
Это то идет в logaccept .php:
<?php
$uploaddir = realpath('uploads/') . '/';
$uploadfile = $uploaddir . basename($_FILES['file_contents']['name']);
if (move_uploaded_file($_FILES['file_contents']['tmp_name'], $uploadfile)) {
echo "Log file successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}
?>
Маке возвращает «Log файл успешно загружен» в окне браузера, как и ожидалось, но на поле CentOS я просто получить белый экран PHP небытия. Ничего не отображается как ошибка в Apache error_log, и я застрял в том, как продолжить устранение этого.
Любые идеи? Я попытался загрузить некоторые отладки кода в файлы PHP, но я до сих пор получить только пробельные назад:
ini_set('display_errors', 'On');
error_reporting(E_ALL);
По всей вероятности, это проблема окр. Проверьте разрешения и пути. И если они выглядят нормально, проверьте их снова, и все еще, если проблем нет ... ну еще раз проверьте – raidenace
Спасибо. Странно, так как я могу добавить строки, которые полностью отражают все среды в первом скрипте, но это как бы не делает его logaccept.php каким-то образом .. Даже если я поставлю эхо «мир привет»; в верхней части logaccept.php он не появляется. Если я перейду непосредственно к log accept.php, тогда это произойдет. – BSUK
Я думаю, что это бит свертки, который терпит неудачу, хотя это выходит за рамки моих знаний PHP. Я замечаю, что PHP был скомпилирован с -without-curl, но, несмотря на то, что в файле .ini есть файл, он говорит, что завиток включен. Этот -without-curl не существует в команде компиляции OSX. – BSUK