Разрешения PHP-сервера для файлов и каталогов предоставлены, но все еще не разрешены

Разрешения PHP-сервера для файлов и каталогов предоставлены, но все еще не разрешены

У меня есть PHP-код на Codeanywhere, где я просто пытаюсь создать файл на сервере, но получаю следующую ошибку:

«Предупреждение: fopen(file.txt): не удалось открыть поток: Отказано в доступе в /home/cabox/workspace/index.php в строке 312»

Я использую fopen ($file, 'w'). С 'r' в качестве параметра, это работает.

Я спросил CodeAnywhere, существуют ли какие-либо ограничения, которые не позволяют пользователям создавать файлы с помощью кода непосредственно на сервере, но мне ответили, что никаких ограничений нет, и нужно только узнать, как предоставить разрешения.

Впервые использован chmod для файлов и каталогов

chmod 755 index.php (впоследствии 777 для экспериментальных целей)

Но я все еще сталкиваюсь с сообщением об ошибке, показанным выше. Поэтому я покопался в разрешениях на каждом уровне сервера и отобразил их ниже, но я не вижу ничего странного (согласно моим скудным знаниям)

/

[cabox@box-codeanywhere /]$ ls -ld
drwxr-xr-x 21 root root 4096 19 апр. 03:09

/дом/

[cabox@box-codeanywhere home]$ ls -ld
drwxr-xr-x 3 root root 4096 16 июня 2014 г.

/домой/кабокс/

[cabox@box-codeanywhere ~]$ ls -ld
drwxrwxrwx 7 cabox cabox 4096 14 апр 11:48

/home/cabox/workspace/

[cabox@box-codeanywhere рабочее пространство]$ ls -ld
drwxrwxrwx 4 cabox cabox 4096 19 апр. 04:27

Я не могу изменить разрешения для/как имя пользователякорень Я полагаю, это потому, что мое имя пользователякабокс

[рабочее пространство cabox@box-codeanywhere]$ id
uid=500(cabox) gid=500(cabox) groups=500(cabox)

index.php пытается создать file.txt находится в/home/cabox/workspace/

-rwxrwxrwx 1 cabox cabox 18608 19 апр. 05:12 index.php

Что я делаю не так?

Заранее спасибо!

решение1

После долгих экспериментов я обнаружил, что настроил среду разработки виртуальной машины как Html5, а не php. Файлы PHP работали правильно, так как сервером был Apache, но по какой-то причине, которая до сих пор ускользает от меня, управление разрешениями отличается.

После переключения среды на PHP команды, которые раньше не работали, заработали, и мне наконец удалось выяснить, в чем проблема.

Вот «решение», к которому следует отнестись с долей скепсиса, поскольку мои познания в этом вопросе весьма ограничены.

Предоставление собственному пользователю (cabox) права 775 ничего не дает, поскольку только пользователь «www-data» имеет право создавать, изменять и удалять файлы на сервере во время работы веб-сайта.

sudo chown -R www-data:www-data /home/cabox/workspace chmod 775 /home/cabox/workspace

это сработало.

Теперь, на codeanywhere, если я изменю имя пользователя на 'www-data', я потеряю возможность работать на сервере, создавать, изменять, удалять файлы. Я думал, что решение в том, чтобы установить права как пользователь (cabox) и группа (www-data) и дать им те же права, но пока это не сработало, так что все еще нужно разобраться с этим

Надеюсь, это поможет людям, которые столкнутся с той же проблемой в будущем. Мне потребовалась неделя, довольно утомительная :)

решение2

Возможно, вам захочется изменить владельца файла или каталога.

chown имя_пользователя -R ваша_папка

У меня была та же проблема, и это решило ее.

решение3

Возможно, это сработает. У меня была та же проблема, и после 3 часов гугления я попробовал это:

Разрешение на папку

Последнее и последнее, что вам нужно сделать для завершения установки, это установить разрешения для папки. Для этого откройте командную строку и введите:

sudo find . -type f -exec chmod 664 {} + 
sudo find . -type d -exec chmod 775 {} + 
sudo chown -R vm_username:www-data ~/workspace

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

Связанный контент