Настройка временного каталога

Недавно я переместил сайт с локального хоста на VPS. Мне удалось сделать общедоступные и приватные файлы доступными для записи; однако я не уверен, где найти временную папку и как изменить разрешения. Я продолжаю получать это сообщение:

  

Указанный файл временный: //file3Hl91E не может быть скопирован, поскольку целевой каталог настроен неправильно. Это может быть вызвано проблемой с разрешениями файлов или каталогов. Дополнительная информация доступна в системном журнале.

Я использую Virtualmin, Drupal 7 и сервер Debian. Мой текущий временный каталог - /tmp.

47 голосов | спросил Jasmine Ahmed 4 Mayam12 2012, 02:24:21

17 ответов


42

Проверить администратора -> Конфигурация -> Медиа -> Файловая система для персонализации вашего tmp-пути. Не забудьте использовать относительные пути и иметь правильные привилегии для пользователя Apache.

Мне лично нравится эта статья исправлять загрузку файлов . У него хорошие наблюдения. Это сработало для меня.

Недавно я загрузил свой сайт на компьютер Mac. Бывает, что в моем Mac я использовал mod_userdir для Apache, и я забыл, что в /etc/apache2/users/nameofuser.conf мне нужно установить AllowOverride All, в противном случае у меня появится следующее сообщение:

  

Указанный файл временный не может быть скопирован, потому что целевой каталог не настроен должным образом.

ответил cayerdis 4 Mayam12 2012, 03:19:11
16

Важно понимать, что проблема разрешений может существовать в BOTH указанном вами временном каталоге (который определен в admin /config /media /file-system) И в папке, где будет скопирован этот временный файл. Я видел эту ошибку несколько раз, и обычно это не проблема с временной папкой, а конечная папка, в которой этот файл копируется после , живущий во временной папке.

Также убедитесь, что путь к публичной файловой системе установлен правильно.

ответил sheldonkreger 5 PMpFri, 05 Apr 2013 23:39:25 +040039Friday 2013, 23:39:25
15

В ваших settings.php

$conf['file_temporary_path'] = '/tmp';

Это будет работать в Unix-системах в 99% случаев.

Обычно каталог /tmp существует в системах UNIX с открытыми правами и существует специально для временных файлов и часто настраивается для повышения производительности.

Вы можете проверить разрешения, запустив ls -al /tmp в командной строке.

Если вы заинтересованы в дальнейшем ознакомлении с этим, см. https://en.wikipedia.org /вики /Temporary_folder

ответил chim 13 PM00000050000002231 2013, 17:20:22
8

У меня была эта точная проблема и я старался использовать относительный путь (sites /default /files /tmp) для моего местоположения папки tmp, как было предложено, и я также изменил разрешения в папке tmp, чтобы убедиться, что он был доступен для записи apache, но мой проблема все еще существовала. поэтому я решил проверить сообщения журнала (Reports>> Последние сообщения журнала), чтобы узнать, могу ли я лучше понять, в чем проблема. Сделав это, я получил более конкретное сообщение:

  

Разрешения на доступ к файлам нельзя было публиковать: //js.

Это побудило меня проверить разрешения на папку js на сайтах /по умолчанию /файлах, и, как оказалось, apache не смог ее записать, поэтому, изменив разрешения на 775 в этой папке, я избавился от своего сообщения об ошибке. Поэтому я бы предположил, что вы проверяете разрешения для всех подпапок на сайтах /по умолчанию /файлах, а не только на папку tmp, если вы еще не решили свою проблему. Просто подумал, что буду делиться этой информацией.

ответил Andew 9 Jpm1000000pmThu, 09 Jan 2014 19:49:33 +040014 2014, 19:49:33
5

вы можете найти настройки файловой системы в admin/config/media/file-system измените его на /tmp

также вы можете проверить admin /reports /status для любой проблемы с настройками

о разрешении /tmp вы можете дать ему 755, и вы найдете его в /public_html

ответил Ahmed 4 Mayam12 2012, 02:35:06
2

Сообщение об ошибке может быть в заблуждение

Если он говорит, что проблема связана с целевым каталогом, apache, вероятно, не имеет прав на запись в подпапку sites /default /files, которую Drupal хочет, чтобы вставить файл.

Хорошим решением является сделать apache-пользователя владельцем всех файлов и каталогов под сайтами /по умолчанию /файлами

cd /path/to/sites/default
sudo chown -R _www:_www files

Или что-то подобное должно распространять проблемы каталога. Дважды проверьте, что владелец имеет права на запись и выполнение для всех подкаталогов.

ответил chim 6 MarpmThu, 06 Mar 2014 16:39:21 +04002014-03-06T16:39:21+04:0004 2014, 16:39:21
2

Каталог файлов: Устранение неполадок веб-серверов на базе Apache

Если файлы каталога не «принадлежат» веб-серверу, есть два способа их продолжения. Эти инструкции предполагают, что у вас есть доступ к оболочке на веб-сервере. Если у вас нет доступа к оболочке, обратитесь за дополнительной поддержкой к своему провайдеру хостинга.

В идеале вы сможете изменить «владельца» файлов каталога в соответствии с именем веб-сервера. На сервере Unix или Linux вы можете проверить «кто» работает веб-сервер, выполнив следующие команды:

$ ps aux  |grep apache # for Apache 2.x
$ ps aux  |grep httpd # for Apache 1.x

В зависимости от вашего веб-сервера одна из этих команд вернет серию таких строк:

www-data 13612  0.1  0.9  50640 20340 ? S 12:29   0:08 /usr/sbin/apache2 -k start

Первый столбец в возвращаемом тексте - это «пользователь», которым работает ваш веб-сервер. В этом случае пользователь является www-данными. Чтобы сделать каталог файлов доступным для записи на веб-сервере, вам необходимо переназначить его право собственности, используя следующую команду:

$ chown -R www-data sites/default/files
$ chmod -R 0700 sites/default/files

Если у вас нет достаточных разрешений на вашем сервере для изменения права собственности на папку, следующий лучший вариант - предоставить доступ к группе для записи в папку со следующей командой:

$ chmod -R 0770 sites/default/files

Вы также можете настроить разрешения каталога с помощью программы FTP, как описано выше.

После того, как вы выполнили эти шаги, подтвердите, что соответствующие разрешения были назначены при навигации по Administer -> Отчеты -> Отчет. Прокрутите до раздела с надписью «Файловая система» и подтвердите правильность настроек.

Источник: Каталог файлов

ответил Sukhjinder Singh 30 +03002014-10-30T10:20:32+03:00312014bEurope/MoscowThu, 30 Oct 2014 10:20:32 +0300 2014, 10:20:32
1

В некоторых ситуациях это можно легко устранить, удалив папки 'ctools' и 'js' в папке default /files. Эти папки при необходимости воссоздаются системой. Иногда при создании новой установки существующего сайта эти существующие папки уже вызывают проблемы. Также, если ваш CSS не работает после создания новой установки существующего сайта, это также можно устранить, удалив эти файлы и позволяя drupal воссоздавать их.

ответил Paul Trotter 2 J000000Thursday15 2015, 14:35:09
0

Другим источником ошибок является невозможность записи в папку с файлами. В моем случае я решил это, используя:

$chmod 777 sites/default/files/pictures/
ответил freeman 29 +04002012-10-29T14:58:30+04:00312012bEurope/MoscowMon, 29 Oct 2012 14:58:30 +0400 2012, 14:58:30
0

Моя старая и проблемная конфигурация

chmod 664 -R /var/drupal-bc/sites/default/files
chmod 664 -R /var/drupal-bc/sites/default/private

drw-rw-r-- 2 www-data www-data  4096 Jul 31 12:35 files
drw-rw-r-- 3 www-data www-data  4096 Jul  5 15:08 private

Моя новая и работающая конфигурация

chmod 774 -R /var/drupal-bc/sites/default/files
chmod 774 -R /var/drupal-bc/sites/default/private

drwxrwxr-- 2 www-data www-data  4096 Jul 31 12:35 files
drwxrwxr-- 3 www-data www-data  4096 Jul  5 15:08 private
ответил Claudio Lente 31 J000000Wednesday13 2013, 19:57:06
0

Правильные разрешения для временной папки зависят от конфигурации вашего веб-сервера.

Если вы используете Drupal с PHP как модуль веб-сервера, например Apache, когда пользователь, определенный в файле конфигурации основного веб-сервера с использованием User-директивы, должен иметь доступ к записи.

% grep -i "user" /etc/httpd/conf/httpd.conf

Пользователь apache

ответил Taras 19 22013vEurope/Moscow11bEurope/MoscowTue, 19 Nov 2013 19:00:12 +0400 2013, 19:00:12
0

У меня возникла такая же проблема после перехода с одного сервера на другой.

Я попробовал все предлагаемое здесь, установив папки на 755 и т. д.

Моя временная папка была установлена ​​на «tmp7zXhVVCO», и она действительно хорошо копировала файлы установки, после каждой попытки повторного просмотра я видел, что файл temp был скопирован там, но установка продолжала сбой.

Однако проблема заключается в том, что владельцем не являются права, поэтому 777 удаляет эту ошибку, но мы все знаем, что это не способ перейти на производственные сайты.

  

Что вы должны сделать, это изменить временную папку на что-нибудь еще,   например «temp» или что вам подходит, если он еще не существует , drupal создаст этот новый   папку с правами apache , не пользователь , и ваша проблема будет решена.

ответил Kevin G 1 PMpTue, 01 Apr 2014 20:18:51 +040018Tuesday 2014, 20:18:51
0

Мне не нравится какой-либо из существующих ответов, поэтому я просто собираюсь начать сам, что, вероятно, со временем буду обновляться. В основном с командами оболочки.

Теперь запустите это из sites/example.com:

MYSITE=example.com
FILES=sites/$MYSITE/files  
# CSS and JS might also cause trouble and advagg has its own dirs
TMPDIRS=$FILES/tmp $FILES/js $FILES/css $FILES/advagg_*
drush vset file_temporary_path $FILES/tmp # seems better than using /tmp
drush vset file_directory_temp $FILES/tmp
cd $(drush drupal-directory)   
chown www-data -R $TMPDIRS
chmod 755 -R $TMPDIRS
ответил guaka 14 +04002014-10-14T01:05:12+04:00312014bEurope/MoscowTue, 14 Oct 2014 01:05:12 +0400 2014, 01:05:12
0

От конфигурации -> Медиа -> Файловая система Я удалил каталог /temp. После этого у меня не было никаких проблем.

ответил Filip 7 MarpmSat, 07 Mar 2015 16:17:53 +03002015-03-07T16:17:53+03:0004 2015, 16:17:53
0

У меня была такая же проблема при переносе. У меня есть chmod 777 все сайты /default /files, но ошибка все еще происходит. Я изменяю разрешение 775 на сайтах /default /files и сообщение исчезло. Я не был проблемой частного пути, мой /var /tmp, но разрешение 775.

ответил Wood 27 J000000Monday15 2015, 23:37:47
0

Если вы столкнетесь с этой проблемой с помощью Pantheon и продолжаете получать сообщение об ошибке после установки путей (файлов) файлов файлов temp, вам также может потребоваться переключить режим подключения на панели инструментов экземпляра dev из Git в SFTP.

Ваш сайт Drupal может пытаться сохранить файлы в каталоге, управляемом Git (например, если вы изменяете настройки макета и тому подобное в теме Adaptive Themes). Для этого перейдите на SFTP. Как только файлы будут сохранены, вы можете вернуться к Git, и на панели инструментов появится запрос на внесение изменений, которые были сделаны на сервере.

ответил Kay V 17 AMpMon, 17 Apr 2017 07:53:07 +030053Monday 2017, 07:53:07
0

У меня была та же проблема.

Я использовал IIS в Windows. Наконец, проблема заключалась в разрешениях в папках /default /files и, очевидно, на сайтах /default /files /tmp.

Наконец, я снова добавил «Полные разрешения» к папкам, и он сработал.

Привет

ответил jorge_vicente 3 J000000Monday17 2017, 19:26:23

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132