Я недавно переместил сайт с локального хоста на VPS. Мне удалось сделать общедоступные и личные файлы доступными для записи; Однако я не уверен, где найти временную папку и как изменить разрешения. Я продолжаю получать это сообщение:
Указанный файл временный: // file3Hl91E не может быть скопирован, поскольку целевой каталог неправильно настроен. Это может быть вызвано проблемой с правами доступа к файлам или каталогам. Более подробная информация доступна в системном журнале.
Я использую VirtualMin, Drupal 7 и сервер Debian. Мой текущий временный каталог /tmp
.
В твоих settings.php
Это будет работать на Unix-системах в 99% случаев.
Обычно каталог / tmp существует в системах UNIX с открытыми разрешениями, он существует специально для временных файлов и часто настраивается для повышения производительности.
Вы можете проверить разрешения, запустив
ls -al /tmp
в командной строке.Если вы заинтересованы в дальнейшем чтении по этому вопросу, см. Https://en.wikipedia.org/wiki/Teilitary_folder
источник
/tmp
не имеет необходимых разрешений. Это даже противоречит принятому ответу (который сам по себе тоже не велик).Важно понимать, что проблема с разрешениями может существовать в ОБА указанном вами временном каталоге (который определен в admin / config / media / file-system) И в папке, куда будет скопирован этот временный файл. Я видел эту ошибку несколько раз, и обычно она связана не с временной папкой, а с последней папкой, куда копируется этот файл после того, как он находится во временной папке.
Также убедитесь, что путь к публичной файловой системе задан правильно.
источник
У меня возникла именно эта проблема, и я использовал относительный путь (sites / default / files / tmp) для расположения моей папки tmp, как было предложено, и я также изменил разрешения для папки tmp, чтобы обеспечить возможность записи с помощью apache, но моя проблема все еще существует , поэтому я решил проверить сообщения журнала (Отчеты >> Последние сообщения журнала), чтобы увидеть, смогу ли я лучше понять, в чем проблема. Делая это, я получил более конкретное сообщение:
Это побудило меня проверить разрешения для папки js в sites / default / files, и, как оказалось, apache не мог писать в нее, поэтому, изменив разрешения на 775 для этой папки, я избавился от своего сообщения об ошибке. Поэтому я бы посоветовал вам проверить разрешения для всех подпапок в sites / default / files, а не только для папки tmp, если вы еще не решили свою проблему. Просто подумал, что поделюсь этой информацией.
источник
sudo chgrp -R www-data /var/www/mysite
с «изменением разрешений на 775» . Это НЕ нужно. Drupal не нужно писать в каждую папку. Только ваши публичные, приватные и tmp файлы.вы можете найти настройки файловой системы,
admin/config/media/file-system
изменив его на / tmpтакже вы можете проверить администратор / отчеты / статус для любой проблемы настроек
о разрешении / tmp вы можете дать ему 755 и вы найдете его в / public_html
источник
Сообщение об ошибке может вводить в заблуждение
Если говорится, что проблема связана с целевым каталогом, то у apache, вероятно, нет прав на запись в подпапку sites / default / files, в которую Drupal хочет поместить файл.
Хорошее решение - сделать пользователя apache владельцем всех файлов и каталогов в sites / default / files
Или что-то подобное должно разрешить проблемы каталога назначения. Дважды проверьте, что владелец имеет права на запись и выполнение для всех подкаталогов.
источник
chown -R www-data:www-data /var/www/html/sites/default/files/
Каталог файлов: Устранение неполадок веб-серверов на основе Apache
Если файлы каталога не «принадлежат» веб-серверу, есть два способа продолжить. Эти инструкции предполагают, что у вас есть доступ оболочки к веб-серверу. Если у вас нет доступа к оболочке, обратитесь к вашему хостинг-провайдеру за дополнительной поддержкой.
В идеале вы сможете изменить «владельца» файлов каталога в соответствии с именем веб-сервера. На сервере под управлением Unix или Linux вы можете проверить, «как» работает веб-сервер, выполнив следующие команды:
В зависимости от вашего веб-сервера одна из этих команд вернет последовательность строк, например:
Первый столбец в возвращаемом тексте - это «пользователь», под которым работает ваш веб-сервер. В этом случае пользователь www-data. Чтобы сделать каталог файлов доступным для записи веб-сервером, вам необходимо переназначить его владельца с помощью следующей команды:
Если на вашем сервере недостаточно прав для изменения владельца папки, следующий лучший вариант - предоставить группе доступ для записи в эту папку с помощью следующей команды:
Вы также должны иметь возможность настроить разрешения каталога с помощью программы FTP, как описано выше.
После того как вы выполните эти шаги, подтвердите, что соответствующие разрешения были назначены, перейдя в Администрирование -> Отчеты -> Отчет о состоянии. Прокрутите до раздела «Файловая система» и подтвердите правильность настроек.
Источник: каталог файлов
источник
Другим источником ошибки является то, что он не может записать в папку файлов. В моем случае я решил это с помощью:
источник
В некоторых ситуациях это можно легко исправить, удалив папки 'ctools' и 'js' внутри default / files. Эти папки воссоздаются системой при необходимости. Иногда при новой установке существующего сайта существующие папки уже вызывают проблемы. Кроме того, если ваш CSS не работает после новой установки существующего сайта, это также можно исправить, удалив эти файлы и позволив drupal воссоздать их.
источник
Моя старая и проблемная конфигурация
Моя новая и отлично работающая конфигурация
источник
Правильные разрешения для временной папки зависят от конфигурации вашего веб-сервера.
При запуске Drupal с PHP в качестве модуля веб-сервера, например Apache, когда пользователь, который определен в основном файле конфигурации веб-сервера с помощью директивы User, должен иметь доступ к записи.
% grep -i "пользователь" /etc/httpd/conf/httpd.conf
Пользователь apache
источник
У меня была такая же проблема после перехода с одного сервера на другой.
Я попробовал все предложенное здесь, установив папки на 755 и так далее.
Моя временная папка была установлена на "" tmp7zXhVVCO ", и она на самом деле хорошо копировала установочные файлы, после каждой попытки я видел, что временный файл копировался туда, но установка продолжала давать сбой.
Проблема, однако, заключается в том, что владелец не обладает правами, поэтому 777 устраняет эту ошибку, но мы все знаем, что на производственных площадках это не способ.
источник
The directory ../temp2 does not exist and could not be created.
Мне не очень нравятся какие-либо из существующих ответов, поэтому я просто собираюсь начать один, который, вероятно, со временем обновлю. Главным образом с командами оболочки.
А пока запустите это из
sites/example.com
:источник
Из Конфигурации -> Медиа -> Файловая система я удалил / temp-каталог. После этого у меня не было никаких проблем.
источник
У меня была такая же проблема с миграцией. У меня chmod 777 все сайты / default / files но ошибка все равно случается. Я меняю разрешение 775 на сайтах / default / files и сообщение пропало. У меня не было проблемы с личным путем, у меня есть / var / tmp, но разрешение 775.
источник
Если вы столкнулись с этой проблемой с помощью Pantheon и продолжаете получать сообщение об ошибке после установки пути (каталогов) файлов (temp), вам также может потребоваться переключить режим подключения на панели мониторинга экземпляра dev с Git на SFTP.
Ваш сайт Drupal может пытаться сохранить файлы в каталоге, управляемом Git (например, если вы меняете настройки макета и т. П. В теме Adaptive Themes). Для этого переключитесь на SFTP. После того, как файлы были сохранены, вы можете переключиться обратно на Git, и приборная панель предложит вам зафиксировать изменения, сделанные на сервере.
источник
У меня такая же проблема.
Я использовал IIS в Windows. Наконец, проблема была с разрешениями в папке sites / default / files и, очевидно, в sites / default / files / tmp.
Наконец я снова дал «Полные права» на папки, и это сработало.
С уважением
источник