Я понимаю, что есть какая-то проблема с разрешениями для моей папки 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 перемещаться из этого файла, находящегося в корне, в папку с изображениями, у которой есть разрешения моей учетной записи пользователя, насколько мне известно, и в группе никто.
Я довольно потерян, любая помощь определенно оценена.
Выше вы можете увидеть изображение разрешений в папке с изображениями. Я пытаюсь переместить файл из каталога tmp в.
О, и вот сценарий PHP, который терпит неудачу:
if (!empty($screenshot)) { move_uploaded_file($_FILES['screenshot']['tmp_name'], $target) or die (' cannot move uploaded file or something beavis');
С уважением,
пользователь
Если это машина для разработчиков, и я думаю, что это так, не пытайтесь использовать / var / www (всегда будет проблема с разрешением). Попробуйте использовать пользовательский каталог
вы будете хранить все свои файлы и проекты в своем доме и не будет проблем с разрешением.
Итак, если вы не можете работать с пользовательским 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, чтобы файл мог быть загружен в указанный каталог только для его разрешения