Wordpress изменить папку загрузки файлов
Изменить папку загрузки в WordPress версии 3.5 и новее¶
В одном из последних (почти) обновлений WordPress 3.5 удалили возможность вводить свой пользовательский путь к папке для закачек. Все новые блоги WordPress по умолчанию будут использовать wp-content. Опция изменения его была вообще удалена из пользовательского интерфейса, чтобы избежать путаницы. Но по-прежнему можно установить пользовательскую папку для закачек с помощью добавления нужной константы в файл wp-config.php:
Или если вы хотите создать папку images в уже существующем каталоге wp-content, то необходимо добавить следующее:
1 | define( 'UPLOADS' , '' . 'files' ); |
Обратите внимание, что опция Помещать загруженные мной файлы в папки по месяцу и году по-прежнему доступен в новых версиях старше 3.5.
Деактивация
Плагин WP Original Media Path можно деактивировать, при этом настройки (и пути) не сбросятся. А вот после удаления плагина все сбросится до дефолтных установок — новые медиафайлы будут создаваться в папке
…/wp-content/uploads.
Старые медиафайлы при этом будут по старому пути и в старой папке.
Распространенные ошибки
Частая ошибка, которую допускают люди, заключается в том, что папка загрузок ставится в 777. Некоторые делают так, потому что они получают ошибки при попытке загрузить изображение на свой сайт, а 777 быстро исправляет данную проблему. Никогда не давайте неограниченный доступ всем пользователям, иначе вы ваш сервер будет уязвимым для атак. Если вы следовали нашему руководству, то в таком случае у вас не должно быть проблем с загрузкой файлов на ваш сайт.
Иногда плагины могут запрашивать установку прав для какого-либо файла в 777. В таких ситуациях вы можете временно установить права в 777, однако убедитесь в том, что вы вернули права доступа обратно после того, как вы закончите работу с плагином.
Права доступа для SuEXEC конфигурации
Права доступа для общей конфигурации гораздо проще применить. Мы не будем в данном случае останавливаться на владении, поскольку веб-сервер запущен как владелец наших файлов и папок. Наш пользовательский аккаунт и веб-сервер используют те же самые права доступа (оба являются владельцами), поэтому мы можем перейти сразу к изменению режимов доступа:
- Все файлы должны быть 644.
- Все папки должны быть 755.
- wp-config.php должен быть 600.
Аналогично предыдущему случаю, права доступа можно расшифровать следующим образом:
- Наш пользовательский аккаунт может считывать и изменять наши файлы.
- WordPress (через наш сервер и аккаунт владельца) может считывать и изменять наши скрипты.
- WordPress может создавать, изменять и удалять файлы и папки.
- Другие пользователи не увидят наши учетные данные для БД в wp-config.php.
Опять же, вы можете использовать FTP-клиент для того, чтобы изменить режим доступа, либо вы можете использовать следующие команды в вашей папке WordPress, чтобы быстро изменить права доступа ко всем вашим файлам и папкам:
Как и в случае со стандартной конфигурацией WordPress, ваш сервер может быть более строгим, нежели остальные, и поэтому файл wp-config.php не будет задан в 600. В таком случае вы можете поставить для него 640, либо, если и так не сработает, то 644.
Всегда следуйте данным инструкциям, и ваши файлы будут бережно сохранены от злоумышленников.
Изменение режимов доступа
FTP-клиенты обычно предлагают интерфейс, через который вы можете легко менять режим доступа для ваших файлов и папок. Вот скриншот интерфейса в моем FTP-клиенте:
Если у вас есть доступ к терминалу вашего сервера, вы можете также использовать команду chmod, чтобы изменить режим доступа к файлам или папкам:
Чтобы изменить режим доступа для всех файлов или папок, используйте chmod в тандеме с командой find. К примеру, вы можете использовать ее для изменения прав доступа ко всем файлам на 644:
Или использовать ее для изменения прав доступа ко всем вашим папкам на 755:
Обратитесь к «Изменение прав доступа к файлам в WordPress», чтобы получить руководство по изменению режимов доступа.
С помощью плагина
2.
В панели администрирования Настройки/WP Original Media Path
видим текущий путь до папки с медиафайлами:
Включаем экспертный режим и прописываем новый путь:
После нажатия кнопки «Сохранить изменения» новая папка автоматически создастся в корневом каталоге …/public_html
Теперь при создании новых записей картинки будут загружаться в новую папку, а вот в старых записях остаются ссылки на картинки по старому пути. Поэтому переходим к следующему шагу.
3.
Копируем папку …/wp-content/uploads в корень сайта и переименовываем. Сделать это лучше с помощью штатного файлового менеджера хостинга:
В дальнейшем папку нужно будет только просто переименовать.
4.
Устанавливаем и активируем плагин Better Search Replace
с официального депозитария WordPress:
И хотя автор WP Original Media Path рекомендует для замены в базе данных использовать плагин Search & Replace, у меня на больших базах он «вылетал». К тому же не может напрямую работать с базами, а только через импорт сохраненного файла в SQL-базу. Ну и по мелочи — нет поддержки русского языка. Так что мой выбор — Better Search Replace.
Обычно хватает одной базы: wp_posts, но в данной теме для описательной части рубрик использовали плагин (для возможности вставлять картинки в рубрики), поэтому подправляем еще и wp_options.
6.
Последним шагом — сбрасываем кэш.
Возможные проблемы¶
Неправильный полный путь URL — необходимо наверняка знать свой абсолютный путь сайта на сервере от корня файловой системы. Вы этот путь должны либо знать, либо посмотреть где-нибудь, либо спросить у поддержки вашего хостинга. Например в панели администрирования хостингом CPanel ожно посмотреть свой точный путь, в других по идеи тоже можно. Он должен выглядеть в большистве случаем примерно следующим образом /home/username/public_html/images.
Права на папку — неверная настройка прав на выбранную вами папку не позволит добавлять в неё ничего. Убедитесь, что выбранная вами папка имеет права доступа 777 (возможность записи в неё всем). Вы можете сделать это в админке своего хостинга или в FTP-клиенте, что юзаете.
На этом у меня всё. Надеюсь эта информация вам пригодится. Если будут предложения по дополнению инфы, то пишите в комментарии. Удачи!
В зависимости от того, поставили ли вы галочку «Помещать загруженные мной файлы в папки по месяцу и году» в настройках 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
MnogoBlog > WordPress > Расширения wordpress > Плагины > Как изменить папку загрузки медиафайлов (wordpress плагин)
Также данный плагин можно скачать с моего сайта по следующей ссылке – скачать плагин Upload URL and Path Enabler.
Установка и активация плагина стандартная – через панель управления wordpress (в левом меню выбираем пункт “Плагины”, подпункт “Добавить новый”, далее в строку поска вводим “Upload URL and Path Enabler”).
После активации плагина Upload URL and Path Enabler, в левом меню, в пункте “Настройки” (“Параметры”), в подпункте “Медиафайлы” – появятся новые параметры:
Где можно указать название папки и путь до файлов.
Пример 1. Создаём в корневой папке сайта ещё одну папку с именем files:
Создать папку можно через файловый менеджер на сайте хостинга или чезез бесплатные программы ftp загручики ( FileZilla и др.).
Далее переходим в админке wordpress в пункт “Настройки”, подпункт “Медиафайлы” и вписываем в параметр “Сохранять файлы в этой папке” – files:
Всё теперь наши медиофайлы будут сохраняться не в стандартной папку wp-content/uploads, а в папке files.
Пример 2: Создаём поддомен на сайте и сохраняем медиафайлы в нём:
Для этого на сайте хостинга создаем поддомен:
например с именем:
после чего переходим в админке wordpress в пункт “Настройки”, подпункт “Медиафайлы” и вписываем в параметр “Сохранять файлы в этой папке” – files, а в параметре “Полный url-путь к файлам” указываем созданный поддомен:
Если вы уже работали с WordPress, то наверняка видели, что все полезное содержимое в виде изображений, таблиц стилей, тем и плагинов в WordPress по-умолчанию хранится в папке wp-content. Но, вероятно, вы не догадывались, что название этой папки можно изменить на что-либо другое, и движок все равно будет работать!
Одним из преимуществ переименования «wp-content/» является то, что ваш сайт будет выглядеть менее WordPress-ным, в то время как это свойство может также добавить некоего рода безопасности что-ли..
Сейчас мы покажем как это всё можно проделать.
Создаем новую папку
В нашем примере мы переименуем папку wp-content в assets. Обратите внимание, что после переименования этой папки все активированные плагины или темы будут деактивированы и не будут отображаться на назначенных им страницах, так как WordPress не сможет найти их в дефолтном расположении — папке wp-content.
Модификация конфига
Теперь нужно проделать несколько изменений в файле wp-config.php, но, всё же лучше сделать резервную копию этого файла перед внесением в него правок. И тогда, в случае чего-то непредвиденного, мы всегда сможем вернуть его из бекапа.
Для начала добавим следующую строку перед require_once(ABSPATH . ‘wp-settings.php’); (обычно расположена в самом низу) для того, чтобы сообщить WordPress, что путь wp-content был изменен на assets.
Затем добавим следующую строку сразу под предыдущей, чтобы указать WordPress на новый путь к папке.
После добавления строки выше WordPress снова обнаружит и отобразит список установленных тем и плагинов.
Но, как вы можете увидеть ниже, ссылка на скриншот темы сломалась.
Вот и все. Теперь все плагины, темы и любые другие медиафайлы, которые вы загружаете, будут сохраняться в нашей новой папке.
Следует отметить!
Существуют некоторые плагины и темы, которые не особо следуют стандартам разработки. Они указывают “wp-content” в качестве пути и ссылки «жестко», зашивая путь в файл, нежедли определяя их налету. В таки случаях плагины и темы могут работать не полностью, либо вообще не работать.
Более того, это также ломает ссылки к изображениями, которые уже прикреплены к записям и были залиты в папку wp-content.
Поэтому вышеописанная модификация должна применяться с осторожностью, и, в идеале, конечно лучше проделывать такое, если вы только собираетесь установить WordPress, либо только-только установили. В противном случае, сайт может полностью «поломаться», и придется исправлять огромное количество деталей.
Конфигурации сервера WordPress
Теперь мы знаем все о правах доступа и об их считывании. Но перед тем, как пойти дальше и изменить все наши права доступа, мы должны понять, как именно настроен наш сервер. Поскольку права доступа работают с пользовательскими аккаунтами и группами, мы должны узнать, как именно работает наш WordPress-сайт.
Существует много разных конфигураций сервера. Разные конфигурации требуют разных режимов доступа для корректной и безопасной работы WordPress. Мы рассмотрим две самых популярных конфигурации, а также корректные права доступа для них:
Стандартная конфигурация сервера:
- У вас есть пользовательский аккаунт
- Ваш сервер запущен как другой пользовательский аккаунт.
Общая конфигурация сервера или suEXEC конфигурация:
- У вас есть пользовательский аккаунт
- Другие люди, которые используют сервер, имеют пользовательские аккаунты и могут иметь ту же самую группу с вашим пользовательским аккаунтом
- Ваш сервер запущен как владелец ваших WordPress-файлов.
Основная разница между этими двумя конфигурациями – как именно запущен сервер.
Что представляют собой права доступа к файлам?
Права доступа определяют, что именно пользователи могут сделать с файлом. Права доступа представляются в виде последовательности цифр, как, к примеру, 644 или 777, которая называется режим доступа. Если вы использовали ранее плагины в WordPress, то некоторые из них, скорее всего, просили вас изменить права доступа к файлам или папкам, поскольку плагин не может вести запись. Изменив права доступа к файлам, вы позволите веб-серверу получать доступ к этим файлам или папкам.
Режим доступа – это набор операторов «кто может делать что», в котором каждая цифра соответствует оператору «кто»:
- Первая цифра. Что может делать пользователь — владелец данного файла.
- Вторая цифра. Что могут делать другие пользователи из группы владельцев.
- Третья цифра. Что могут делать все остальные пользователи (включая посетителей сайта).
Затем идет число, которое соответствует оператору «что», представляющее собой сумму любой комбинации следующих цифр:
- 4. Считать файл, либо считать названия файлов в папке
- 2. Записать или изменить файл, либо изменить контент в папке
- 1. Выполнить или запустить файл, либо получить доступ к файлам в папке
Эти цифры называются привилегиями, которые связываются с определенными пользователями в режиме доступа. Обратите внимание, что привилегии различаются для файлов и папок.
Использование корректного режима доступа очень важно. Чтобы лучше проиллюстрировать это, давайте представим себе роли пользователей в WordPress. На сайте WordPress у участников и администраторов имеется разный набор возможностей. Участники могут создавать новые записи блога, однако они не могут добавлять плагины. Администраторы, с другой стороны, могут добавлять плагины и создавать записи в блоге. Администраторы могут даже изменить вид сайта, если они хотят. Цепочка полномочий разделяет то, что могут делать пользователи в разных ролях. То же самое применимо и к режимам доступа, за исключением того, что мы работаем не с записями блога и опциями темы, а с файлами и папками нашего сервера.
Терминал против FTP-клиента
На протяжении этой статьи мы будем использовать терминал, чтобы менять права доступа и владения. Почему бы не использовать вместо него FTP-клиент? Причина состоит в том, что FTP несколько ограничен для наших потребностей. FTP может использоваться в том случае, чтобы передавать файлы, а также менять права доступа к файлам и папкам, но он не может менять параметры владения.
Чтобы выполнить команды, перечисленные в данной статье, вам нужно будет войти на свой сервер, используя команду SSH. Если вы не знакомы с терминалом и SSH, вы можете прочитать об этом в статье: «Введение в команды Linux».
Изменить папку загрузки в старых версиях WordPress (до 3.5)¶
В старых версиях WordPress изменить папку очень просто (я до сих пор не понимаю почему эту возможность аннулировали). В принципе и объяснять нечего, но до кучи я это сделаю:
- В админке WordPress, пройдите в меню Параметры ->Медиафайлы. Чуть ниже увидите раздел Загрузка файлов, в который и нужно добавить адрес папки. В поле Сохранять файлы в этой папке введите имя папки, которые вы хотите использовать вместо wp-content/uploads.
- Во втором поле Полный URL-путь к файлам, если нужно, то введите полный URL-путь к новой папке изображений вместе доменом. Но нужно это в редких случаях, например, чтобы организовать хранения картинок на поддомене.
Не забудьте сохранить изменения. И обязательно после изменений проверьте вступили ли они в силу путём создания тестового поста и добавления в него изображений. Если всё прошло хорошо, то ваши картинки закачаются куда надо и будут доступны для добавления в пост.
Как изменить стандартный путь к медиафайлам в WordPress
Новый загрузчик медиа файлов, появившийся в версии 3.5 — наверное одно из самых значительных изменений в той версии. Другим важным изменением, но менее обсуждаемым, было исчезновение настройки в админ.панели для изменения директории для загрузок из меню Параметры. Причиной данного удаления из интерфейса было то, что она не так часто использовалась, нежели другие опции. Также ее изменение могло привести к плачевным последствиям для сайта, если пользователь сделал это случайно. Удаление настройки упростило интерфейс, и оставили только возможность организации папок по месяцам/годам. Ниже мы расскажем, как изменить стандартный путь к медиа файлам в WordPress 3.5+.
Примечание: Производите нижеуказанные действия, если вы НЕ новичок в WordPress. Или же если вы понимаете, что делаете.
Для изменения стандартного пути к медиа файлам вам необходимо отредактировать файл wp-config.php, расположенный в корневой директории установленного у вас WordPress. Если вы хотите, чтобы папка для загрузок у вас выглядела так wp-content/files, то необходимо поместить следующий код в wp-config.php:
Помните, что вы в любой момент можете выбрать сортировку загруженных файлов по месяцам/годам в Параметры » Медиафайлы.
Источник:
Надеемся, что статья окажется для вас полезной. Если у вас остались вопросы, не стесняйтесь задавать их в комментариях.
Делаем руками
Не забудьте предварительно создать эту папку и дать ей права на запись.
2.
Переименуем папку контента с wp-content на new.
Для этого определим константы в том же wp-config.php:
3.
Переименуем папку uploads в new .
4.
Выполним SQL запрос, который поменяет пути к изображениям. Сделать это можно при помощи phpMyAdmin, который должен быть доступен на любом хостинге.
5.
Выбираем нашу базу данных и переходим на на закладку SQL:
6.
Вбиваем наш запрос:
7.
Теперь нужно заменить ссылки на картинки в коллекции медиафайлов внутри админпанели WordPress. Для этого исполняем следующий SQL-запрос:
Когда люди говорят о безопасности WordPress, права доступа к файлам и владение файлами обычно являются самой последней вещью, о которой они думают. Установка плагинов безопасности является хорошей практикой, важной для каждого WordPress-сайта. Однако если ваши права доступа к файловой системе настроены некорректно, то большая часть ваших мер безопасности может быть легко обойдена злоумышленниками.
Права доступа и владения очень важны в сборках WordPress. Корректная их настройка на вашем веб-сервере должна быть первым шагом, который вы сделаете после установки WordPress. Наличие неправильного набора прав доступа может вызвать фатальные ошибки, которые приведут к «смерти» вашего сайта. Некорректные права доступа также могут поставить под угрозу ваш сайт, сделать его открытым для атак.
В данной статье мы расскажем вам все о правах доступа для файловой системы WordPress: что они собой представляют, почему они важны, а также как их задать. Также мы рассмотрим несколько основных принципов, которым я следую, чтобы поддержать мою файловую систему в целости и сохранности. Помимо этого, мы раскроем две самых популярных конфигурации сервера WordPress. Мы объясним, чем они отличаются, и, что более важно, как задать соответствующие права доступа для каждой из них.
Пользователи и группы
Перед тем, как начать, мы должны кратко рассказать о том, что представляют собой группы и пользователи, поскольку они идут рука об руку с определением прав доступа.
Чтобы лишний раз не усложнять, пользователь – это аккаунт, у которого есть доступ к компьютеру, а группа – это идентификатор для определенного списка пользователей. Это означает, что всякий раз, когда вы передаете файлы через FTP, вы используете аккаунт пользователя на своем сервере. В зависимости от того, как именно ваш хост настроил ваш аккаунт, вы (пользователь) можете принадлежать к одной или нескольким группам. Пользователи и группы аналогичны пользователям и ролям в 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.
Читайте также: