Загруженный файл не удалось переместить в загрузку контента wp

Обновлено: 21.11.2024

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

Не удалось загрузить «image.jpg».
Загруженный файл не удалось переместить в wp-content/uploads/2017/06.

Вы также можете увидеть подобные ошибки при попытке добавить файл:

Кроме того, у вас также могут возникнуть проблемы с автоматическим обновлением плагинов или обновлением темы. Он скажет что-то вроде:

Для выполнения запрошенного действия WordPress требуется доступ к вашему веб-серверу. Пожалуйста, введите свои учетные данные FTP, чтобы продолжить. Если вы не помните свои учетные данные, обратитесь к своему веб-хостингу.

Почему это происходит?

В основном это безопасность WordPress в действии. Ваш веб-сервер применяет разрешения, которые ему известны, так что, как правило, это хорошо. Это не поможет вам загрузить эти изображения или обновить плагины.

Как НЕЛЬЗЯ решить эту проблему

В Интернете много дискуссий по этой проблеме. Я видел довольно много сообщений, просто предлагающих вам изменить права доступа к вашей папке /wp-content/uploads на 777. Это действительно плохая идея, и, скорее всего, ваш сайт WordPress будет взломан. НЕ меняйте права доступа к папке /wp-content/uploads на 777.

Как решить проблему

Если вы используете свой веб-сайт WordPress на сервере общего хостинга, вам может потребоваться отправить запрос в службу поддержки или отправить электронное письмо в службу поддержки, чтобы устранить эту ошибку. Некоторые общие серверы имеют доступ к SSH в той или иной форме, поэтому для начала откройте или загрузите, а затем откройте программу Putty на своем компьютере и войдите в систему.

После входа в систему как пользователь root выполните следующую команду:

Это покажет, под каким пользователем работает apache. Обычно никто.

Затем вы можете просто предоставить пользователю права "никто" на загрузку изображений в каталог.

Это можно сделать с помощью следующей команды:

chown -R никто /home/_serverusername_/public_html

Обязательно замените serverusername на фактическое имя пользователя сервера. Это то, что вы используете для входа в cPanel, а также его можно увидеть в пути к вашему серверу.

В какой-то момент вашей карьеры администратора WordPress и ОСОБЕННО, если вы занимаетесь переносом веб-сайтов с одного сервера на другой, вы В КОНЕЧНОМ ОБРАЗЕ столкнетесь с этим сообщением об ошибке при попытке добавить изображения в свою медиатеку:

» не удалось загрузить из-за ошибки. Загруженный файл не удалось переместить в wp-content/rest-of-path-here»

Дополнительным побочным эффектом этой же ошибки является тот факт, что вы НЕ можете автоматически обновлять существующие плагины ИЛИ добавлять новые. Когда вы пытаетесь добавить новый плагин (например), WordPress изящно представит вам экран учетных данных FTP, чтобы вы могли вручную загрузить новый плагин. Итак…..

ПОЧЕМУ ЭТО ПРОИСХОДИТ?

В БОЛЬШИНСТВЕ случаев (особенно в случае МИГРИРОВАННОГО веб-сайта, который уже без проблем работал на другом веб-сервере) происходит следующее: WordPress пропускает ВЫБОР (или загрузку) запрошенного изображения на процесс веб-сервера на на котором находится ваш веб-сайт, и он с радостью извлекает файл image.jpg с вашего жесткого диска и загружает его во временную память сервера, ЗАТЕМ пытается зафиксировать файл в хранилище медиатеки WordPress (чаще всего это /wp-content/uploads/ / ) . Это, конечно, где ошибка происходит. Учетная запись, которая фактически ПОЛУЧАЕТ файл с вашего компьютера, является учетной записью службы Apache и часто НИКАКОЙ учетной записью (да, это настоящее имя учетной записи) на самом сервере. Поскольку у этой конкретной учетной записи НЕТ ВЛАДЕНИЯ или прав на папку /wp-content/uploads/ / … вы получаете приятное сообщение об ошибке, указывающее на то, что возникла проблема с размещением изображения в этой конкретной папке. ЭТО СДЕЛАНО РАЗРАБОТЧИКАМИ… и это означает, что ваш веб-сервер просто применяет параметры безопасности, о которых он знает…. Что хорошо!

ДЕЙСТВИТЕЛЬНО ПЛОХИЕ СОВЕТЫ

Поэтому, как и любой другой хороший администратор WordPress, чтобы попытаться решить эту проблему, вы копируете, вставляете и Google. Однако то, что вы обнаружите, должно не только ШОКИРОВАТЬ вас, но и заставить волосы на вашей совести встать дыбом!9 из 10 «рекомендаций» по решению этой проблемы включают в себя установку разрешений для вашей папки /wp-content/uploads на 777. … на что я говорю НЕТ-НЕТ-НЕТ! Если вы собираетесь это сделать, вы также можете изменить пароль своей учетной записи «admin» на 12345!

ВМЕСТО ДАВАЙТЕ ДЕЙСТВИТЕЛЬНО РЕШИМ ПРОБЛЕМУ… ПРАВИЛЬНЫМ СПОСОБОМ

ШАГ 1. Узнайте, какая учетная запись на вашем сервере является служебной учетной записью Apache. К сожалению, эта часть не всегда проста для тех, у кого есть общая учетная запись хостинга и НЕТ доступа к своему сайту через оболочку (иногда называемую SSH). ОБНОВЛЕНИЕ: см. ссылку, предоставленную jervisbay ниже, в разделе комментариев о том, как решить эту проблему в среде общего хостинга. Спасибо, Джервисбей! Фактор запугивания заключается в том, что доступ к оболочке — это базовый интерфейс командной строки… вы знаете, старый черный экран с белым текстом и командной строкой… ТАКОЕ! Однако, если у вас НЕТ такого доступа… просто отправьте электронное письмо в службу поддержки хостинга с этим простым вопросом… Как называется учетная запись службы Apache на моем веб-сайте? Вы также можете указать в своем электронном письме, что пытаетесь установить правильные разрешения для установки WordPress, и это должно помочь дать им некоторый контекст относительно вашего запроса.

Теперь… если у вас ДЕЙСТВИТЕЛЬНО есть доступ к вашему веб-сайту из оболочки, войдите в систему с помощью программы-оболочки, такой как Putty (наша любимая). Если вы находитесь на сервере VPS или реселлера, у вас, вероятно, будет доступ с использованием пользователя, который является предпочтительным. Для общих серверов у вас, скорее всего, НЕ будет доступа к оболочке, и вместо этого вам придется отправить электронное письмо в службу поддержки.

ПРИМЕЧАНИЕ. Приведенные ниже инструкции относятся только к средам торговых посредников, VPS и выделенных серверов. Причина в том, что мы предоставляем доступ к СЛУЖБЕ, работающей глобально на этих типах машин. Это НЕ то, что вы хотели бы делать в среде ОБЩЕГО хостинга, потому что, очевидно, это откроет перед вами совершенно новый набор проблем безопасности.

Однако, чтобы обойти это, в средах общего хостинга реализован метод под названием «suexec», который абстрагирует доступ к учетной записи, но дает надлежащие права, позволяющие функциям работать должным образом. SUEXEC — это тема для другого обсуждения в блоге, но вы можете упомянуть об этом в своем электронном письме поддержки (если вы пойдете по этому пути). На самом деле, вот довольно душевная дискуссия на эту тему, которая может вам понравиться.

После входа в систему как пользователь root выполните следующую команду:

Это должно возвращать выходные данные (и список), как показано ниже:

Имя учетной записи none (выделено черным цветом выше) указывает на то, что ЭТО моя учетная запись службы apache, которой я должен предоставить доступ ко всем своим файлам WordPress, чтобы жизнь снова стала хорошей.

ШАГ 2: Предоставьте этому пользователю права на установку WordPress. Этот процесс довольно прост… просто выполните следующую команду в окнах оболочки:

chown -R none /home/ /public_html

Это, конечно, предполагает, что корень вашей установки WordPress находится в папке public_html (довольно стандартно для большинства всех установок CPanel/Linux). Что делает эта команда, так это то, что она начинается с корневого пути WordPress и предоставляет пользователю с именем none права собственности на ВСЕ файлы и папки РЕКУРСИВНО (это означает, что она включает в себя подпапки и файлы в подпапках) на всем сайте.

ПРОБЛЕМА РЕШЕНА!

Так и должно быть! Теперь вернитесь в панель управления администратора WordPress и еще раз попробуйте загрузить изображение в медиатеку. Вы должны обнаружить, что все работает без проблем (как на изображении ниже). Кроме того, теперь вы сможете автоматически обновлять плагины на сайте.

Загруженный файл не удалось переместить в WP-Content/Uploads: Итак, похоже, вы пытались загрузить медиафайл на свой веб-сайт WordPress. Возможно, вы добавляли его в свой пост, изменяли или что-то в этом роде, но дело в том, что ваш веб-сайт WordPress больше не позволяет загружать медиафайлы. Потому что, как только вы попробуете это, вас встретит ошибка.

Ошибка с сообщением «Загруженный файл не может быть перемещен в WP-Content/Uploads», что довольно раздражает, но вы не можете винить WordPress. Поскольку у этой ошибки есть веская причина, и в этом посте мы расскажем, как именно исправить ошибку «Загруженный файл не может быть перемещен в WP-Content/Uploads» на вашем веб-сайте WordPress. Теперь, если это звучит интересно, давайте прыгнем прямо в руководство. Должны ли мы?

Загруженный файл не удалось переместить в WP-Content/Ошибка загрузки

Прежде чем мы перейдем непосредственно к тому, как исправить или устранить ошибку «Загруженный файл не может быть перемещен в WP-Content/Uploads» на вашем веб-сайте WordPress, давайте сначала кратко рассмотрим, что на самом деле вызывает эту ошибку. вы знаете, почему WordPress приветствовал вас таким красивым, но раздражающим сообщением об ошибке.

Что вызывает эту ошибку?

Ошибка загрузки изображения на веб-сайтах WordPress обычно возникает из-за неправильных прав доступа к файлам и папкам. Для тех из вас, кто еще не знает, ваши медиафайлы хранятся в каталоге WP-Content/Uploads, и если права доступа к этой папке установлены неправильно, это, скорее всего, вызовет ошибку типа «Загруженный файл может не перемещаться в WP-Content/Uploads.

Если у папки неправильные разрешения, это иногда не позволяет определенным группам пользователей получить доступ или изменить ее содержимое. Это, в свою очередь, может вызвать ошибку, которая говорит что-то вроде «Невозможно создать каталог wp-content/uploads/2021/10. Доступен ли сервер для записи в его родительский каталог?».

После сказанного давайте теперь посмотрим, как исправить загруженный файл, который не может быть перемещен в WP-Content/Uploads Error на вашем веб-сайте WordPress. Должны ли мы?

Как решить Загруженный файл не может быть перемещен в WP-Content/Ошибка загрузки на вашем веб-сайте WordPress?

Существует 2 различных метода, которые вы можете использовать, чтобы исправить загруженный файл, который не может быть перемещен в WP-Content/Uploads Error на вашем веб-сайте WordPress. Вы должны попробовать первый метод, который состоит в том, чтобы сначала исправить права доступа к файлам, а затем, если это не сработает, попробуйте второй метод. С учетом сказанного давайте теперь взглянем на наш первый метод. Должны ли мы?

Способ 1. Использование файлового менеджера

Давайте сначала рассмотрим наш первый метод, который использует файловый менеджер или любой FTP-клиент, такой как Filezilla, или любое другое программное обеспечение для FTP. С учетом сказанного, давайте теперь рассмотрим шаги по исправлению загруженного файла, который не может быть перемещен в WP-Content/Uploads Error. Должны ли мы?

Вот шаги, которые необходимо выполнить, чтобы исправить Загруженный файл не может быть перемещен в WP-Content/Ошибка загрузки:

Шаг 1. Войдите в cPanel

Шаг 2. Исправьте права доступа к папкам и файлам

Следующий шаг — исправить права доступа к папке и файлу. Для этого:
– перейдите в public_html (или корневую папку вашего домена) > wp-content.
– здесь щелкните правой кнопкой мыши на загрузках. папку и убедитесь, что разрешения установлены на 755, как на снимке экрана выше.

Шаг 3. Сохраните изменения и повторите попытку загрузки

После того как вы установили разрешения на 755, сохраните изменения и попробуйте повторно загрузить медиафайл. Надеюсь, на этот раз вы не получите никаких ошибок.

Загруженный файл не удалось переместить в WP-Content/Ошибка загрузки сохраняется? Не волнуйтесь, попробуйте наш следующий метод, использующий SSH.

Способ 2. Использование доступа к оболочке SSH

Обратите внимание, что этот метод предназначен для опытных пользователей и включает использование терминала SSH. Вы должны использовать этот метод, только если вы действительно знаете, что делаете. С учетом сказанного давайте рассмотрим шаги, чтобы исправить загруженный файл, который не может быть перемещен в WP-Content/Uploads Error с использованием SSH-доступа. Должны ли мы?

Шаги по устранению Загруженный файл не может быть перемещен в WP-Content/Ошибка загрузки с использованием доступа SSH

  • Прежде всего вам необходимо убедиться, что у вас есть доступ к серверу по протоколу SSH. В большинстве случаев, если вы используете провайдера VPS, скорее всего, у вас есть доступ по SSH. Если вы используете общий хостинг, вы можете связаться с вашим хостинг-провайдером и попросить его исправить эту ошибку для вас.
  • Получив доступ по SSH, подключите SSH-клиент, например Putty, к своему серверу.
  • Теперь вам нужно ввести следующую команду в свой терминал и нажать Enter
  • Это покажет, от имени какого пользователя работает apache. Обычно никто. Теперь вам нужно ввести следующую команду, обратите внимание, что вам нужно заменить serverusername на ваше имя пользователя сервера.
  • Все, теперь повторите попытку загрузки нужного медиафайла на свой веб-сайт WordPress, и вы не должны увидеть никаких ошибок.

Вы используете DigitalOcean VPS? Ошибка «Загруженный файл не может быть перемещена в WP-Content/Uploads» довольно распространена среди пользователей DigitalOcean. А решение на самом деле довольно простое.

Что нужно сделать для DigitalOcean

Чтобы исправить загруженный файл, который не может быть перемещен в WP-Content/Uploads Error на сервере DigitalOcean, вам необходимо внимательно выполнить следующие действия:

  • Прежде всего вам необходимо подключить SSH-клиент, например Putty, к вашему серверу.
  • Теперь просто введите следующую команду и нажмите Enter.
  • Все, теперь повторите попытку загрузки нужного медиафайла на свой веб-сайт WordPress, и вы не должны увидеть никаких ошибок.

Но я не знаком с SSH, не могли бы вы сделать это для меня?

Вы не знакомы с SSH-терминалом или боитесь напортачить, пытаясь делать что-то самостоятельно? Ну, если это так, то мы можем помочь вам с тем же. Не стесняйтесь обращаться к нам.

В заключение, в этом посте рассказывается, как можно исправить Загруженный файл не может быть перемещен в WP-Content/Ошибка загрузки. Это все для этого урока, дайте нам знать, если у вас есть какие-либо вопросы или проблемы, связанные с этим. Мы будем рады вам помочь.

Я работаю над веб-сайтом WordPress уже 2 месяца, и до этого я загрузил много изображений, но при загрузке изображения я получаю сообщение об ошибке, и я столкнулся с этой проблемой после Нового года: - Загруженный файл не может быть перемещен в wp- контент/загрузки/2015/01.

Снимок экрана ниже: -

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

13 ответов 13

Чтобы решить проблему:

Проверьте, под какой учетной записью работает ваш веб-сервер

Обновление: при использовании Unix.

<р>. это покажет список процессов для веб-сервера вместе с идентификатором процесса, под которым он работает, например, «никто»

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

Обновление: в Unix можно использовать.

Вы также можете изменить разрешения для этой учетной записи (в требуемом месте), чтобы убедиться, что у нее есть права на запись, используя chmod или filezilla, и каскадировать изменения в каталогах по мере необходимости.

Подробную информацию см. в статье по ссылке. Надеюсь, это поможет! :)

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

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

Мне это подходит.

Я предполагаю, что вы находитесь в каталоге wp-content.

Вам просто нужно дать разрешение PHP на запись в папку для загрузки, это сработало для меня:

Я провел поиск и обнаружил, что проблема связана с поставщиком сервера.

Как правило, все файлы должны принадлежать вашей учетной записи пользователя (ftp) на вашем веб-сервере и должны быть доступны для записи этой учетной записи. На общих хостах файлы никогда не должны принадлежать самому процессу веб-сервера (иногда это www, apache или никнейм-пользователь).

Любой файл, которому требуется доступ для записи из WordPress, должен принадлежать или принадлежать группе учетной записи пользователя, используемой WordPress (которая может отличаться от учетной записи сервера). Например, у вас может быть учетная запись пользователя, которая позволяет передавать файлы по FTP на ваш сервер и обратно, но сам ваш сервер может работать с использованием отдельного пользователя в отдельной группе пользователей, такой как dhapache или none. Если WordPress работает как учетная запись FTP, эта учетная запись должна иметь права на запись, т. е. быть владельцем файлов или принадлежать к группе с правами на запись. В последнем случае это будет означать, что разрешения установлены более либерально, чем по умолчанию (например, 775 вместо 755 для папок и 664 вместо 644).

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

Если вы используете что-то с SELinux (например, Fedora или CentOS), вам также необходимо установить разрешения SELinux. Предположим, что ваш каталог называется uploads (например)

Это сделает загрузки и все, что под ними, доступными для загрузки пользователю веб-сервера

вероятно, у него нет прав на создание /uploads/2015

Проверьте, существует ли эта папка, если да, то проверьте, существует ли /uploads/2015/1/.

Эти папки должны иметь те же разрешения, что и папка /uploads/. Также проверьте error_log, потому что он должен показать вам, какая именно папка вызывает проблему.

Сейчас я загружаю/2015/01, но, пожалуйста, объясните, что такое www-data:www-data и где я могу получить error_log

Это работает для меня

Предполагается, что текущий каталог — www

Убунту 16.04, Apache2

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

Я обнаружил, что существует старый скрипт, который регистрировал ошибки, и журнал ошибок стал настолько большим, что заполнил доступную квоту.

Наконец-то я понял это, когда попытался создать новый каталог с помощью FTP, и ответ сервера был "Превышена дисковая квота".

Я получил эту ошибку в учетной записи хостинга cPanel, где дисковая квота (для учетной записи) не была проблемой. Покопавшись в этом некоторое время, я обнаружил, что инструмент cPanel «Выбрать версию PHP» был настроен на версию 7.1, но несколько инструментов диагностики WordPress обнаруживали, что на самом деле работает версия 5.6, а также обнаруживали проблемы с файловой системой.

Инструмент «Диспетчер файлов» в cPanel показал, что все разрешения правильные, а папки доступны для записи.

Один из инструментов диагностики, который я использовал, был частью подключаемого модуля Wordfence. Он был доступен в меню «Панель управления» в Wordfence > «Инструменты» > «Диагностика» (вкладка).

Я сообщил о проблеме в хостинговую компанию, и она, похоже, устранилась сама собой за одну ночь (человек, ответивший на мой запрос в службу поддержки, указал, что они ничего не исправили). Я думаю, что, скорее всего, это был симптом проблемы, которая затронула несколько учетных записей хостинга, и кто-то другой из хостинговой компании, вероятно, обнаружил и устранил проблему.

На случай, если другие столкнутся с похожей проблемой, я надеюсь, что этот ответ поможет им тратить меньше времени на ее отслеживание. Как только я обнаружил, что работает неправильная версия PHP, я подумал, что это, вероятно, не то, что я мог бы исправить, используя только доступ к cPanel.

Читайте также: