Как сделать файл доступным для записи wordpress

Обновлено: 06.07.2024


Недавно мне потребовалось сделать перенос WordPress сайта с одного домена на другой. Копия сайта нужна была для последующей её переработки на новом домене. Перенос сайта с домена на домен дело не пыльное, задача решена, можно приступать к работе. Обычно так всегда и было, но не в этот раз…

А в этот раз у меня возникли трудности с загрузкой изображений в библиотеку медиафайлов через админку WordPress – появилось следующее уведомление об ошибке:

Файл «****.jpg» загрузить не удалось. Не могу создать директорию wp-content/uploads/2021/06. Проверьте, доступна ли родительская директория для записи.

За более чем пятилетнюю практику работы с WordPress, подобного рода ошибка мне встретилась впервые. Но, как говорится, в любой незнакомой ситуации "Google в помощь". Проанализировав поисковую выдачу я выделил две возможные причины возникновения данной ошибки:

  1. Отсутствие необходимых прав доступа CHMOD (иногда их еще называют атрибутами) к папке wp-content (CHMOD должно быть равным 700, 755 или 777).
  2. В настройках сайта прописан не правильный абсолютный путь к файлам Вордпресс, который можно изменить через параметр upload_path на странице глобальных настроек WordPress.

Пошаговое исправление ошибки “Не могу создать директорию wp-content/uploads.”

Первым делом я проверил какое значение установлено в правах доступа к папке wp-content и вложенным в нее папкам и файлам. Оказалось, что там все хорошо и установлено значение 700 - разрешены запись, чтение и выполнение файлов внутри папки. Впрочем, чаще всего с правами доступа всегда все в порядке, в редких случаях могут быть выставлены какие-то ограничения.

Как изменить права доступа к папке wp-content?

Для не очень опытных пользователей поясню, что проверить права доступа к папке wp-content, и в случае необходимости изменить их, можно через файловый менеджер вашего хостинга. Открыв корневую папку своего WordPress сайта вы увидите среди прочих папку wp-content. Кликните по ней правой кнопкой мыши и посредством выпавшего контекстного меню перейдите в раздел свойств вашей папки.

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

Ошибка «Не могу создать директорию wp-content/uploads/» в WordPress

Убедившись, что ошибка не связана с правами доступа, приступаем к проверке параметра upload_path глобальных настроек WordPress. Для того, чтобы попасть на страницу глобальных настроек вашего вордпресс сайта нужно авторизоваться под учетной записью администратора сайта, а затем в адресной строке браузера прописать следующий адрес:

На открывшейся странице содержится внушительная масса различных параметров и полей, поэтому, чтобы долго не искать нужный нам параметр upload_path, воспользуйтесь поиском встроенным в браузер (сочетание клавиш CTRL + F).

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

Далее, для устранения ошибки действуем следующим образом:

  1. Очищаем поле параметра upload_path и сохраняем настройки. После этого необходимо проверить, заработала ли загрузка изображений в библиотеку медиафайлов или нет. Если не заработала, значит переходим к пункту 2. Обратите внимание: если у вас поле upload_path было изначально пустое и загрузка файлов в библиотеку медиафайлов вашего WordPress сайта все равно не работала, значит вам тоже следует проделать действия, описанные в пункте 2.
  2. Если действия из пункта 1 вам не помогли, то прописываем в поле параметра upload_path правильный абсолютный путь к файлам Вордпресс (о том, как узнать абсолютный путь к папке с uploads написано ниже).

Как узнать абсолютный путь к папке с uploads

Уточнить абсолютный путь можно в поддержке вашего хостинга, а можно узнать самостоятельно, создав php файл со специальным кодом:

Сохраните файл с любым названием, например patch.php и загрузите в корневую папку сайта. Для того, чтобы выполнить сценарий данного кода, нам необходимо открыть наш файл, сделать это можно набрав в строке браузера следующий адрес:

Результатом выполнения скрипта будет веб-страница со следующим содержимым:

Путь к корневой папке: /home/XXXXX/YYYYY

Добавим к получившемуся результату /wp-content/uploads и получим в итоге такой путь:

Путь к корневой папке: /home/XXXXX/YYYYY/wp-content/uploads

Это и есть нужный нам абсолютный путь к папке uploads. Вставляем его в поле параметра upload_path сохраняем настройки и снова пробуем загрузить изображение. Теперь должно все заработать.

Вот таким не хитрым способом можно решить ошибку Не могу создать директорию wp-content/uploads/», которая могла возникнуть на вашем WordPress сайте при работе с Библиотекой медиафайлов.


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

Права доступа и владения очень важны в сборках WordPress. Корректная их настройка на вашем веб-сервере должна быть первым шагом, который вы сделаете после установки WordPress. Наличие неправильного набора прав доступа может вызвать фатальные ошибки, которые приведут к «смерти» вашего сайта. Некорректные права доступа также могут поставить под угрозу ваш сайт, сделать его открытым для атак.

В данной статье мы расскажем вам все о правах доступа для файловой системы WordPress: что они собой представляют, почему они важны, а также как их задать. Также мы рассмотрим несколько основных принципов, которым я следую, чтобы поддержать мою файловую систему в целости и сохранности. Помимо этого, мы раскроем две самых популярных конфигурации сервера WordPress. Мы объясним, чем они отличаются, и, что более важно, как задать соответствующие права доступа для каждой из них.

Терминал против FTP-клиента

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

Чтобы выполнить команды, перечисленные в данной статье, вам нужно будет войти на свой сервер, используя команду SSH. Если вы не знакомы с терминалом и SSH, вы можете прочитать об этом в статье: «Введение в команды Linux».

Пользователи и группы

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

Чтобы лишний раз не усложнять, пользователь – это аккаунт, у которого есть доступ к компьютеру, а группа – это идентификатор для определенного списка пользователей. Это означает, что всякий раз, когда вы передаете файлы через FTP, вы используете аккаунт пользователя на своем сервере. В зависимости от того, как именно ваш хост настроил ваш аккаунт, вы (пользователь) можете принадлежать к одной или нескольким группам. Пользователи и группы аналогичны пользователям и ролям в WordPress. По своей задумке они практически те же самые, за исключением того, что первые используются на вашем сервере.

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

Что представляют собой права доступа к файлам?

Права доступа определяют, что именно пользователи могут сделать с файлом. Права доступа представляются в виде последовательности цифр, как, к примеру, 644 или 777, которая называется режим доступа. Если вы использовали ранее плагины в WordPress, то некоторые из них, скорее всего, просили вас изменить права доступа к файлам или папкам, поскольку плагин не может вести запись. Изменив права доступа к файлам, вы позволите веб-серверу получать доступ к этим файлам или папкам.

Режим доступа – это набор операторов «кто может делать что», в котором каждая цифра соответствует оператору «кто»:

Затем идет число, которое соответствует оператору «что», представляющее собой сумму любой комбинации следующих цифр:

  • 4. Считать файл, либо считать названия файлов в папке
  • 2. Записать или изменить файл, либо изменить контент в папке
  • 1. Выполнить или запустить файл, либо получить доступ к файлам в папке

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

Использование корректного режима доступа очень важно. Чтобы лучше проиллюстрировать это, давайте представим себе роли пользователей в WordPress. На сайте WordPress у участников и администраторов имеется разный набор возможностей. Участники могут создавать новые записи блога, однако они не могут добавлять плагины. Администраторы, с другой стороны, могут добавлять плагины и создавать записи в блоге. Администраторы могут даже изменить вид сайта, если они хотят. Цепочка полномочий разделяет то, что могут делать пользователи в разных ролях. То же самое применимо и к режимам доступа, за исключением того, что мы работаем не с записями блога и опциями темы, а с файлами и папками нашего сервера.

Изменение режимов доступа

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

permission-mode

Если у вас есть доступ к терминалу вашего сервера, вы можете также использовать команду chmod, чтобы изменить режим доступа к файлам или папкам:

Чтобы изменить режим доступа для всех файлов или папок, используйте chmod в тандеме с командой find. К примеру, вы можете использовать ее для изменения прав доступа ко всем файлам на 644:

Или использовать ее для изменения прав доступа ко всем вашим папкам на 755:

Обратитесь к «Изменение прав доступа к файлам в WordPress», чтобы получить руководство по изменению режимов доступа.

Разница между 644 и 777

Давайте посмотрим на некоторые режимы доступа, а также как именно они влияют на наш сайт.

Что будет означать PHP-скрипт с режимом доступа 644? После разъяснения выше, как работают режимы доступа, мы можем дешифровать то, что именно позволяет делать этот режим с нашим скриптом:

  • Привилегии владельца равны «считать» (4) + «записать» (2) = 6
  • Привилегии группы владельцев равны «считать» (4) = 4
  • Привилегии всех остальных пользователей равны «считать» (4) = 4

Проще говоря, это означает, что:

  • Если мы владельцы скрипта, то мы можем прочитать его и изменить;
  • Все остальные пользователи могут только считать его.

Как мы можем видеть, 644 – это хороший режим доступа для нашего PHP-скрипта. Мы можем вносить в него изменения, а наш сервер может считать его.

Теперь давайте перейдем к папкам. Что будет, если мы владеем папкой, для которой режим доступа задан как 777? Этот режим можно расписать так:

  • Привилегии владельца равны «считать» (4) + «записать» (2) + «выполнить» (1) = 7
  • Привилегии группы владельцев равны «считать» (4) + «записать» (2) + «выполнить» (1) = 7
  • Привилегии всех остальных пользователей равны «считать» (4) + «записать» (2) + «выполнить» (1) = 7

Это означает, что:

  • Любой пользователь может получить список имен файлов в вашей папке
  • Любой пользователь может создавать, изменять и удалять любой файл в вашей папке
  • Любой пользователь может получить доступ к вашим файлам в этой папке

Очевидно, что 777 – плохой режим доступа для любых участков нашего WordPress-сайта, поскольку любой пользователь может добавлять файлы в нашу директорию или даже удалять скрипты. Что еще хуже, любой пользователь может выполнять вредоносный код, тем самым подвергнув опасности наш сайт.

Конфигурации сервера WordPress

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

Существует много разных конфигураций сервера. Разные конфигурации требуют разных режимов доступа для корректной и безопасной работы WordPress. Мы рассмотрим две самых популярных конфигурации, а также корректные права доступа для них:

Стандартная конфигурация сервера:

  • У вас есть пользовательский аккаунт
  • Ваш сервер запущен как другой пользовательский аккаунт.

Общая конфигурация сервера или suEXEC конфигурация:

  • У вас есть пользовательский аккаунт
  • Другие люди, которые используют сервер, имеют пользовательские аккаунты и могут иметь ту же самую группу с вашим пользовательским аккаунтом
  • Ваш сервер запущен как владелец ваших WordPress-файлов.

Основная разница между этими двумя конфигурациями – как именно запущен сервер.

Права доступа для стандартной конфигурации сервера WordPress

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

Владение файлами и папками в WordPress

Для начала мы должны скорректировать владение папками и файлами для наших WordPress-файлов. Мы должны будем убедиться в следующем:

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

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

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

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

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

Права доступа для WordPress

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

  • Все файлы должны быть 664.
  • Все папки должны быть 775.
  • wp-config.php должен быть 660.

Вот то, что мы хотим добиться данными режимами доступа:

  • Наш пользовательский аккаунт может считывать и изменять наши файлы.
  • WordPress (через наш сервер) может считывать и изменять наши скрипты.
  • WordPress может создавать, изменять и удалять файлы и папки.
  • Другие пользователи не увидят наши учетные данные для БД в wp-config.php.

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

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

Обратите внимание, что некоторые веб-серверы в данном плане являются более строгими, чем остальные. Если ваш сервер является строгим, то настройка вашего wp-config.php в 660 может привести к тому, что ваш сайт перестанет работать. В таком случае просто оставьте 664.

Права доступа для SuEXEC конфигурации

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

  • Все файлы должны быть 644.
  • Все папки должны быть 755.
  • wp-config.php должен быть 600.

Аналогично предыдущему случаю, права доступа можно расшифровать следующим образом:

  • Наш пользовательский аккаунт может считывать и изменять наши файлы.
  • WordPress (через наш сервер и аккаунт владельца) может считывать и изменять наши скрипты.
  • WordPress может создавать, изменять и удалять файлы и папки.
  • Другие пользователи не увидят наши учетные данные для БД в wp-config.php.

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

Как и в случае со стандартной конфигурацией WordPress, ваш сервер может быть более строгим, нежели остальные, и поэтому файл wp-config.php не будет задан в 600. В таком случае вы можете поставить для него 640, либо, если и так не сработает, то 644.

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

Распространенные ошибки

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

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

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

WordPress позволяет загрузить практически любой файл на ваш сайт. Это может быть PDF-документ, файл Microsoft Excel, Microsoft Word или что-то другое, хоть музыка, хоть видео.

Как загрузить файл в WordPress

Инструкция

Смело нажимайте на эту кнопку, выбирайте файл с вашего компьютера и публикуйте ссылку на файл так, как будто вы вставляете изображение. Результат вы увидите в виде сформированной активной гиперссылки на ваш документ. :-)

Я ничего не понял!

Вот таким нехитрым способом можно вставить документ в сайт на WordPress.

Как вставить ссылку на изображение

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

Понимаете, о чём речь? Когда при нажатии на ссылку в новом окне откроется ваш файл.
Так вот, сделать это не сложнее загрузки изображения.

Ну, я думаю уж теперь-то у вас всё получится. Удачи! :-)

Как загрузить файл в WordPress: 18 комментариев

Здравствуйте, никак не могу вставить документ в редактирование, чт о бы при выходе на страницу и нажатие на документ он не скачивался автоматически а был предварительный просмотр

На экране редактирования поста необходимо нажать на кнопку Добавить медиафайл , чтобы загрузить PDF-документ. После загрузки файла, необходимо скопировать URL файла и закрыть окно медиазагрузчика без вставки файла в пост.

Все равно вставляется синем цветом ссылка а не фиолетовым! переход на автоматическое скачивание

А вы ссылку на файл вставили в то место, где хотели её видеть?

Добрый день. Из инструкции мне не понятно, как загрузить файл пдф на СТРАНИЦУ сайта, чтобы этот файл отображался в виде ссылки и рядом со ссылкой была иконка пдф.

Это один из самых простых плагинов с привлекательным интерфейсом для просмотра файлов PDF формата прямо на странице или в записи на своем сайте на WordPress благодаря наличию специального шорткода.

Благодарю за приятный отзыв! Значит моя работа выполняется не в пустую! :-)
По вашему вопросу: приложите ссылку на сам сайт и файл, который вы загружаете. Посмотрим вместе.

Александр, у меня такая же проблема, как у Натальи, подскажите в чем может быть дело

А как разместить файл скажем пдф в виде картинки(миниатюры)?

Огромное человеческое спасибо.


И так Вы уже стали счастливым обладателем своего сайта под управлением WP и готовы перенести ресурс на хостинг с локального сервера. Но так как локальный сервер использует специфическое программное обеспечение, а если мы говорим о Open Server то практически все что есть на настоящем сервере имеется на борту и здесь.

Что такое разрешения для папок и файлов в WordPress?

У локального сервера имеются свои специфические права как на каталоги так и на файлы. Благодаря данным разрешениям локальный сервер производит операции с файлами дает доступ на чтение и редактирование для той или иной учетной записи. Зачастую никаких проблем при работе с сайтом локально у пользователя не возникает, головная боль начинается при переносе (или после переноса) локального проекта на настоящий хостинг. Ведь на хостинге скорее всего установлен Linux у которого совершенно свои специфические предпочтения касаемо прав доступа.

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

Устанавливаем правильные права на каталоги (папки) и файлы для CMS WordPress

Если Вы правильно установили разрешения для файлов и папок, тогда WordPress может правильно производить операции с файлами и каталогами на стороне хостинга. А именно создавать файлы и папки, производить в них чтение и запись. Для большинства хостингов разработчики WordPress рекомендуют следующие права:

Права для каталогов любого уровня вложенности (папок и подпапок)

Права для всех файлов имеющихся на сайте

Установка правильных прав через FileZilla

Подсоединитесь к своему сайту через FTP менеджер FileZilla, перейдите в корень Вашей WordPress CMS. Далее нажмите Ctrl+A для выделения всех файлов и папок, сделайте щелчок правой клавишей мыши и в выпадающем меню нажмите “Права доступа к файлу”

WordPress - Выставляем автоматически правильные права на все файлы и папки сайта по FTP

WordPress - Выставляем автоматически правильные права на все файлы и папки сайта по FTP

Когда права доступа были применены для каталогов, остается применить права для файлов.

Для этого снова переходим в корень установленной CMS WordPress нажимаем Ctrl+A, после чего делаем щелчок правой клавишей мыши и в выпадающем меню выбираем “Права доступа к файлу” (все повторяем как ранее).

WordPress - Выставляем автоматически правильные права на все файлы и папки сайта по FTP

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

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