Описание проблемы
Файлы в каталоге, похоже, каким-то образом защищены от записи на компьютере с Ubuntu, на котором запущен Apache2 в качестве веб-сервера.
Когда я пытаюсь редактировать файлы в SSH, я должен сделать это как root sudo vi
.
Иногда, когда PHP пытается выполнить запись в файл на сервере с file_put_contents()
, я получаю сообщение об ошибке отказа в доступе к файлу в журнале PHP.
Устранение неполадок на данный момент
Сначала я проверил разрешения для файлов и каталогов в соответствующем каталоге /var/www/foo
(где foo
- корневой веб-каталог _ одного из сайтов на сервере) stat -c "%a %n" *
Практически все сейчас установлено на 755, рекурсивно
775 cgi-bin
775 core.24135
775 gulpfile.js
775 index.php
775 material
775 media
775 node_modules
775 package-lock.json
775 package.json
775 readme.html
775 readme.md
664 sitemap.xml
755 views
775 wp-activate.php
775 wp-admin
775 wp-blog-header.php
775 wp-comments-post.php
775 wp-config-sample.php
775 wp-config.php
775 wp-cron.php
775 wp-includes
775 wp-links-opml.php
775 wp-load.php
775 wp-login.php
775 wp-mail.php
775 wp-settings.php
775 wp-signup.php
775 wp-trackback.php
775 xmlrpc.php
Когда я использую PHP для исполнения whoami
, я получаю пользователя по умолчанию Apache, www-data
. Поскольку я хочу, чтобы этот пользователь и я сам записывали в каталог, я создал новую группу и передал ей право собственности на данный каталог рекурсивно:
sudo groupadd wwwusers
sudo gpasswd -a apache wwwusers
sudo gpasswd -a fooweb wwwusers
sudo gpasswd -a www-data wwwusers
sudo chown -R www-data:wwwusers /var/www/foo
sudo chmod -R g+w /var/www/foo
Тем не менее, в PHP есть проблема , в которой разрешено разрешение на файл, в который я пишу, и мне нужно sudo, чтобы просто отредактировать в SSH.
Есть идеи, что еще может быть не так?