2014-09-08 6 views
0

Я новичок во всей PHP-версии, и мне нужно написать файл на сервере (мой собственный компьютер, на котором я разрабатываю веб-приложение), с некоторой информацией о конфигурации. Вот код, который я использую:Невозможно создать файл создания с помощью PHP file_put_contents

$filename = "config.conf"; 
    $db_info = $db_user . "<-*->" . $db_passwd . "<-*->" . $db_name; 
    if (file_put_contents($filename,$db_info) === false){ 
     $ret["error"] = "Can't create/write: $filename."; 
     mysqli_close($con); 
     echo json_encode($ret); 
     return; 
    } 

Когда я тестирую свое веб-приложение, я получаю ошибку create/write, которую я написал. Я проверил и файл не создан. Мой рабочий каталог находится в/var/www/tests, но я проверил тесты, и мой пользователь имеет права на чтение и запись и является владельцем этой папки. Если я создам файл с обычным файловым проводником, у меня проблем нет. Так как функция настолько проста, я в недоумении. Пожалуйста помоги!

+1

У вашего пользователя есть соответствующие разрешения, но ваш пользователь также запускает PHP? Во многих настройках веб-сервера это не так. –

+1

Процесс PHP, вероятно, не работает как ваш пользователь. Вероятно, он работает в процессе Apache и поэтому наследует права пользователя, который запускает демон Apache (httpd). (Если вы используете Apache, то есть). – GolezTrol

+0

Пользователь, которому работает php, нуждается в разрешениях на чтение/запись. Поэтому, если он работает как apache или apache2 или httpd или что-то еще, это пользователь, которому нужен доступ на запись. – Anthony

ответ

0

У веб-сервера есть права на чтение/запись (например, nginx использует пользователя www-data)? попробуйте установить разрешения для 777 для папки, в которой вы хотите создать этот файл.

+0

Итак, я создал новую группу и добавил себя и пользователя www-data. Ошибка не была, но теперь я не знаю, где был создан файл. Я думал, что он будет создан в текущей папке, но это было не так. Однако на вопрос ответили – aarelovich

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