Ответ 1
использовать разрешения * unix, получить root acces, например, набрав
sudo su
[then type your password]
и попытайтесь сделать то, что вам нужно сделать
Я новичок в php, mysql. Я написал hello.php script, который я пытаюсь скопировать в каталог /var/www (и позже захочет открыть его через веб-браузер). Проблема с тем же заключается в том, что мне не разрешено сохранять/записывать любые файлы в /var/www, несмотря на то, что я являюсь корнем. Я попытался выполнить шаги в этом вопросе, но я получаю следующую ошибку при обработке третьей строки
find /var/www/ -type f -exec chmod g+w '{}' ';'
chmod: changing permissions of `/var/www/index.html': Operation not permitted
Я знаю, что symlink также является опцией. Я хотел бы иметь возможность писать/копировать файлы непосредственно в каталог /var/www/.
Любые предложения о том, что происходит не так?
использовать разрешения * unix, получить root acces, например, набрав
sudo su
[then type your password]
и попытайтесь сделать то, что вам нужно сделать
Вы находитесь в развитой среде? почему просто не делать
chown -R user.group /var/www
чтобы вы могли писать со своим пользователем.
Выполните следующую команду
sudo setfacl -R -m u:<user_name>:rwx /var/www
Он изменит права доступа к каталогу html, чтобы вы могли загружать, загружать и удалять файлы или каталоги
У вас есть файл в /var/www
с именем hello.php, у которого есть разрешения на него? Может быть, система не может заменить файл?
Хотя, root-доступ должен заменять любого пользователя в системе.
Вы пытались применить разрешения к папке www
?
Если вы можете это сделать, попробуйте следующее:
sudo chmod -R 777 /var/www
то do:
sudo cp hello.php /var/www
Я рекомендую это делать, если вы знаете 100%, что нормально устанавливать разрешения для всей папки www
. По его словам, вы работаете на своем собственном производственном сервере, так как большинство серверов live/shared hosting настроены так, что папка www
не находится в папке /var (вместо этого она находится в домашней папке пользователя).
Будьте ОЧЕНЬ осторожны, когда что-либо делаете с префиксом sudo, вы можете серьезно повредить свою систему, если вы сделаете это неправильно.
Сегодня столкнулась с аналогичной проблемой. Не видел, чтобы мое исправление было перечислено здесь, поэтому я думал, что поделюсь.
Корень не смог стереть файл.
Я сделал свое исследование. Оказывается там что-то, называемое неизменяемым.
# lsattr /path/file
----i-------- /path/file
#
Этот сконфигурированный бит предотвращает изменение/удаление его даже root.
Чтобы удалить это, я сделал:
# chattr -i /path/file
После этого я мог бы создать файл.
В обратном случае, это аккуратный трюк, чтобы узнать, есть ли у вас что-то, чего вы хотите избежать.
:)
Во-первых, это не имеет никакого отношения к php. Это проблема разрешения unix. Вам необходимо войти в систему как суперпользователь (sudo/su) и ввести пароль, а затем попробовать эту команду.
$ su
(type password )
\# your command
$ sudo command
$ (type password)
Это может также помочь, если вы действительно указали используемую вами операционную систему.
sudo cp hello.php /var/www/
Какой результат вы получаете?
Если ни одно из вышеперечисленных действий не работает, вы можете иметь дело с файловой системой vfat. Используйте "df" для проверки.
Подробнее см. http://www.charlesmerriam.com/blog/2009/12/operation-not-permitted-and-the-fat-32-system/.
Прежде всего, вам нужно войти в систему как root, а затем перейти в каталог /etc и выполнить некоторые команды, которые приведены ниже.
[[email protected]~]# cd /etc
[[email protected] /etc]# vi sudoers
и введите эту строку в конце
kundan ALL=NOPASSWD: ALL
где kundan является именем пользователя, а затем сохраняет его. а затем попробуйте передать файл и добавьте sudo
в качестве префикса для команды, которую вы хотите выполнить:
sudo cp hello.txt /home/rahul/program/
где rahul является вторым пользователем на одном сервере.
Вам просто нужно написать sudo
вместо su
.
Затем просто скопируйте файл PHP в var/www/ directory
.
Затем перейдите в браузер и напишите локальный host/test.php
или что-то вроде имени файла .php
.