Intereting Posts
Преобразование url в нижний регистр с использованием htaccess, кроме строки запроса Загруженные файлы docx, превращающиеся в zip-файлы json date object to php date Предупреждение: mysql_fetch_array (): предоставленный аргумент не является допустимым результатом MySQL в строке 40 parse csv file php На любых языках Могу ли я захватить веб-страницу и сохранить ее файл изображения? (нет установки, нет activeX) Как получить последний идентификатор вставки в Eloquent ORM laravel Почему функция override_function возвращается как неопределенная функция Как вы отлаживаете PHP-скрипт LONG RUNNING? Поиск ссылок, соответствующих заданной строке в запросе xpath / domdocument PHP Неустранимая ошибка: не удается наследовать абстрактную функцию Интервью Вопрос: Может ли быть эхо перед заголовком? Можно ли одновременно использовать $ _POST & $ _GET? создание простого браузера каталога с помощью php RecursiveDirectoryIterator Как отформатировать миллисекунды в минутах: секунды: миллисекунды в PHP?

доступ запрещен – PHP move_uploaded_file – Ubuntu LAMP / var / www

Я понимаю, что есть какая-то проблема с разрешениями для моей папки tmp или папки изображений, которую я создал в папке / var / www. Я знаю, что / var / www изначально имеет корневой доступ. Я слежу за некоторыми онлайн-учебниками, чтобы попытаться исправить эту проблему и изменил свои права на то, кто знает, что за последний час или около того.

Я получаю эту ошибку при попытке загрузить файл из HTML-формы с помощью PHP / MySQL:

Warning: move_uploaded_file(images/verified-gw.gif): failed to open stream: Permission denied in /var/www/addscore.php on line 40 Warning: move_uploaded_file(): Unable to move '/tmp/phpla4QCP' to 'images/verified-gw.gif' in /var/www/addscore.php on line 40 cannot move uploaded file or something beavis 

Поэтому я думаю, что права на папку / var / www / images неверны или права на папку tmp являются root, а ядро ​​ubuntu не позволяет сценарию php перемещаться из этого файла, находящегося в корне, в папку с изображениями, у которой есть разрешения моей учетной записи пользователя, насколько мне известно, и в группе никто.

Я довольно потерян, любая помощь определенно оценена.

Ubuntu Linux gnome скриншот прав доступа к папке

Выше вы можете увидеть изображение разрешений в папке с изображениями. Я пытаюсь переместить файл из каталога tmp в.

О, и вот сценарий PHP, который терпит неудачу:

 if (!empty($screenshot)) { move_uploaded_file($_FILES['screenshot']['tmp_name'], $target) or die (' cannot move uploaded file or something beavis'); 

С уважением,

пользователь

Solutions Collecting From Web of "доступ запрещен – PHP move_uploaded_file – Ubuntu LAMP / var / www"

работа с модулем USER DIR

Если это машина для разработчиков, и я думаю, что это так, не пытайтесь использовать / var / www (всегда будет проблема с разрешением). Попробуйте использовать пользовательский каталог

вы будете хранить все свои файлы и проекты в своем доме и не будет проблем с разрешением.

работа с корневым каталогом Apache

Итак, если вы не можете работать с пользовательским dir, вам нужно настроить файловую систему следующим образом:

1. Узнайте имя пользователя владельца Apache. Если вы используете Ubuntu, это должны быть www-данные. Перейдите к терминалу и введите:

$ ps aux | grep apache

Вы должны получить что-то вроде этого ниже. Первый столбец – имя пользователя.

www-data 2070 0.0 0.0 463244 7788 ? S sty25 0:00 /usr/sbin/apache2 -k start

2. Найдите группу пользователей Apache. Снова терминал, тип:

$ sudo groups www-data

Вы должны получить что-то вроде этого ниже. Второй столбец – это имя группы.

www-data : www-data

3. Установите пользователя и группу владельцев RIGHT для корневого каталога apache:

$ sudo chown -R www-data:www-data /var/www/

4. Установите права RIGHT для корневого каталога apache:

$ sudo chmod -R 775 /var/www/

Теперь вы очистили систему, и мы пытаемся исправить вашего пользователя, чтобы иметь доступ к директории / var / www.

5. Добавьте группу apache к своему пользователю:

$ sudo usermod -a -G www-data {YOUR_USER_NAME}

ПРЕДУПРЕЖДЕНИЕ! не забудьте – переключатель! таким образом вы добавляете новую группу в существующий список и не заменяете старый список групп новым.

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

6. Добавьте команду umask в конфигурацию apache enviroment:

$ sudo echo umask 002 >> /etc/apache2/envvars

или с графическим редактором:

$ gksudo gedit /etc/apache2/envvars

и поместите umask 002 качестве последней строки в этом файле

7. Вуаля

$ sudo apache2ctl restart

Удачи!

Это решило мою проблему: http://ubuntuforums.org/showthread.php?t=1842090&s=8b97ec72fe7cd753910f488329a90f0f&p=11239688#post11239688

tl: dr – я набрал это: sudo chown -R www-data:www-data /var/www

Я не думаю, что это была комбинация попыток chmod chown tmp directory и этого. Я думаю, что это просто изменение разрешений в папке / var / www, где хранятся все файлы LAMP.

Теперь скрипт PHP работает и бросает файл изображения в созданную мной директорию. Было бы проще, если бы Ubuntu установил тестовые серверы, подобные этому стеку LAMP, в каталог пользователя, не изучая права на файлы, как я защищаю свои файлы от подводных лодок нацистов.

попробуйте это: sudo chown -R 777 /var/www/images

вам необходимо предоставить файлу общедоступное разрешение 777 ИЛИ 755, чтобы файл мог быть загружен в указанный каталог только для его разрешения