Я хочу загрузить файл с моего телефона Android на сервер на малине Pi, работающий на apache2. Я хочу сделать это через php, который не работает, поэтому я уменьшил проблему до минимального примера, который также терпит неудачу. Я думаю, проблема связана с разрешениями.разрешено запретить запись файла на сервер
имеют следующий wtest.php файл на сервере:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/s$
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<?php
echo 'Current script owner: ' . get_current_user();
echo "\n";
$file2 = fopen('testfile2', 'w');
if ($file2 === false)
{
print_r(error_get_last());
}
$fwrite2 = fwrite($file2, 'hello');
if ($fwrite2 === false){
echo "\n";
echo "write 2 error\n";
}
else{
echo "write2 OK\n";
}
fclose($file2);
?>
</html>
Если я этот файл из браузера на моем компьютере, я получаю
Current script owner: pi Array ([type] => 2 [message] => fopen(testfile2): failed to open stream: Permission denied [file] => /var/www/gcm/wtest.php [line] => 8) write 2 error
Если я бегу, что находится внутри php в качестве скрипта на сервере Raspberry Pi, он работает нормально. Временно Я изменил разрешения на 777 в папке wtest.php и gcm. Я знаю, что это плохая идея для решения на постоянной основе, но я попытался кратко попытаться сузить проблему.
До сих пор ничего не сработало. Любая помощь будет оценена
Вы уверены, что пользователь веб-сервера и владелец файла совпадают? Вы хотите сделать 'chmod 777' в файле, который должен быть написан? –
@PraveenKumar Файл, который должен быть записан, фактически не существует до тех пор, пока код не будет выполнен. Php создает его. Он работает нормально в сценарии, запущенном на сервере, но не через браузер. – NickT
Проверьте, что владелец/группа php работает под [get_current_user()] (http://php.net/manual/en/function.get-current-user.php), затем установите владельца/группу веб-папки на одна и та же. – Novocaine