fopen () не создает файл на linux

Я пытаюсь создать файл через fopen() как fopen() ниже:

 <?php $handle = fopen('name.txt', 'w') or die('Can\'t create file'); fwrite($handle, 'Hamed'."\n"); fwrite($handle, 'Kamrava'."\n"); echo 'File was created successfully'; ?> 

Но не создайте этот файл и не получите меня:

Can't create file

PS:

Я использую LAMP-сервер в Linux / Ubuntu.

Перед созданием этого файла я попытался выполнить команду ниже:

 sudo chmod -R 755 ~/public_html/ 

Любые идеи были бы хорошы.

Solutions Collecting From Web of "fopen () не создает файл на linux"

Сценарий PHP выполняется как пользователь, настроенный для веб-сервера Apache. Для создания файлов этот пользователь должен иметь разрешение на запись в каталог, в котором вы хотите создать файл. Есть два способа сделать это:

Вы можете предоставить разрешение на запись в каталог для всех пользователей, в которое будут включены все, что настроено для Apache (достаточно для машины разработки):

 chmod o+w ~/public_html/directory_where_you_want_to_write 

Или вы можете передать права собственности на каталог пользователю Apache. Это будет означать, что вы с обычной учетной записью пользователя не сможете создавать или удалять файлы в этом каталоге, хотя вы также не должны делать это. Предполагая, что Apache работает с учетной записью пользователя www-data , как это делается по умолчанию на Ubuntu, вы бы сделали:

 sudo chown www-data ~/public_html/directory_where_you_want_to_write 

(И каталог не должен находиться под public_html , я просто использую его в качестве примера, поскольку, похоже, это где ваши файлы.)

папка должна принадлежать пользователю apache, поэтому:

 sudo chown -R www-data:www-data ~/public_html/ 

Измените разрешение папки (в которой вы пытаетесь создать) на все разрешения

 sudo chmod 777