2015-07-09 4 views
2

Я начинаю изучать php, я хочу создать и написать простой текстовый файл. Мой код выглядит следующим образом:Невозможно создать новый файл (newfile.txt) с помощью php

<?php 
//Name 
$filename = "newfile.txt"; 
//Pointer 
$file = fopen($filename, "w"); 
if($file == false) 
{ 
    echo ("Error in opening new file"); 
    exit(); 
} 
//Write the data 
fwrite($file, "This is a simple test\n"); 
fclose($file); 
?> 

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

EDIT:

Кажется, мои разрешения неправильно установлены на моем сервере APACHE. Я просто пробовал:

chown -R www-data:www-data /var/www/mysite 
chmod -R og-r /var/www/mysite 

Теперь я не могу даже получить доступ к каталогу и проверить содержимое! В терминале я просто получаю «Разрешение отказано»

+0

попробовать сделать имя файла директории с помощью '/newfile.txt» –

+0

Просто пробовал, все еще показывает ошибку – KexAri

+1

если он не работает, значит, у php нет доступа к файлам для записи в вашей системе. –

ответ

2
chown -R www-data:www-data /var/www/mysite 
chmod -R 755 /var/www/mysite 

даст вам доступ и позволяют писать (и читать)

+1

Удивительный! Работает сейчас! Спасибо – KexAri

1

Измените разрешение файла, прежде чем открывать его для чтения или записи.

<?php 
//Name 
$filename = "newfile.txt"; 
//change permission of file 
chmod($filename,0777); 
//Pointer 
$file = fopen($filename, "w"); 
if($file == false) 
{ 
    echo ("Error in opening new file"); 
    exit(); 
} 
//Write the data 
fwrite($file, "This is a simple test\n"); 
fclose($file); 
?> 
+0

Это хорошая идея, но объяснение немного короче: в основном ваш сервер настроен таким образом, что php не разрешается создавать новые файлы. в зависимости от используемого вами сервера вы можете изменить это самостоятельно (с тем, что содержит ответ), или вам нужно задать администратору сервера, если он сможет изменить настройки для вас. – DocRattie

+0

Я не создаю новый файл с этим кодом (с тем, что говорит ваш комментарий). Это изменение разрешения. – varunsinghal

+0

У меня есть доступ к серверу, это настройка LAMP I – KexAri

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