Не работает загрузка медиа в wordpress: «Временная папка не найдена»

Авг 11th, 2020 | Posted by | Filed under internet, Linux, PC, Sites, Software

Столкнулся с указанной в заголовке ситуацией на LEMP сервере. Имею NGINX+ PHP7.3-FPM+MariaDB. Не работает, понятное дело, из-за php. Почитал интернеты, все такие мудрые, пишут что

define(‘WP_TEMP_DIR’, dirname(__FILE__).’/wp-content/tmp/’);

в /config.php и создание соответствующей директории /wp-content/tmp спасёт и решит проблему. А ничего подобного! Добро пожаловать под кат 🙂

Но проблема-то, как оказалось, не сайтовая, а именно в php, которому в конфиге запрещено скачивать файлы. /etc/php/7.3/fpm/php.ini:

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir = tmp

И создаём директорию /tmp в корне сайта WP с соответствующими правами доступа. Всё!

А, нет, не всё 🙂

# service php7.3-fpm restart

  1. Марина
    Мар 29th, 2021 at 18:22
    Reply | Quote | #1

    А можно пожалуйста пошаговую инструкцию для чайников, куда и что прописать?

  2. admin
    Май 19th, 2021 at 17:55
    Reply | Quote | #2

    Есть некое хранилище сервера, которое отображается как начало сайта, его «корень». Там лежит index.php или что-то типа его, которое открывается при открытии сайта по имени http(s)://sitename.domain/. Так вот, в той же самое директории, где лежит корень сайта, надо создать директорию tmp и задать ей такие же права, как и у расположенных рядом в этой же директории. Например:
    $ ls -la
    итого 272
    drwxr-xr-x 6 www-data www-data 4096 май 13 10:18 .
    drwxr-xr-x 5 root root 4096 июл 31 2020 ..
    -rw-r—r— 1 www-data www-data 405 май 25 2020 index.php
    -rw-r—r— 1 www-data www-data 19915 апр 15 19:15 license.txt
    -rwxr-xr-x 1 www-data www-data 5002 янв 18 2010 sitelogo.png
    drwxrwxrwx 2 www-data www-data 4096 май 19 07:17 tmp
    Чтобы создать такую директорию, надо перейти в корень сайта командой:
    cd путь-к-директории
    и выполнить команду:
    mkdir tmp
    Нужно посмотреть права на файлы и директории в коне сайта командой:
    ls -la
    Выше я уже написал как это выглядит у меня, права на файлы принадлежат пользователю www-data и группе www-data, но это не обязательно будет так, может быть просто www и www или что-то другое. Надо дать такие же права, как и у всех файлов командой:
    chown www-data:www-data tmp
    (здесь www-data, вероятно, надо будет поменять на то, что нужно)
    А так же, надо дать права на запись пользователям:
    chmod 777 tmp
    Уже точно не помню, где об этом писалось, но было сделано именно 777, при просмотре это видно как:
    drwxrwxrwx … tmp
    Ну а остальные действия по перезапуску php7.3-fpm написаны ранее.