Як виправити: FastCGI надіслано до stderr – повідомлення PHP: PHP Warning: move_uploaded_file

PHP Warning: move_uploaded_file є типовою помилкою веб-сервера з NGINX і з’являється, коли ми хочемо завантажити файл на сервер. У більшості випадків, коли нам доводиться завантажувати сертифікати або інші файли, які не належать “Media”, ми не бачимо помилку в інтерфейсі адміністрування CMS.

У більш конкретній формі помилка “PHP Warning: move_uploaded_file” ми знаходимо його в error.log як:

FastCGI sent in stderr: "PHP message: PHP Warning:  move_uploaded_file(/srv/www/domain.test/public/file.file): failed to open stream: Permission denied in /srv/www/domain.test/public/script.php on line 748 PHP message: PHP Warning:  move_uploaded_file(): Unable to move '/tmp/phpqAVtWy'

Чому виникає помилка PHP Warning: move_uploaded_file і як ми це вирішуємо

Як я вже говорив вище, помилка виникає, коли ми намагаємося завантажити файли на веб-сервер.

"FastCGI sent in stderr«Характерно для серверів, які мають PHP-FPM і NGINX як програмне забезпечення для Інтернету. Отже, проблема полягає десь у відношенні сценарію, через який завантажуються файли.

"move_uploaded_file(): Unable to move«Дуже чітко повідомляє, що ці файли не можуть бути завантажені та переміщені в іншу папку на веб-сервері за допомогою сценарію, який виконує операцію.

Усуньте цю помилку PHP це вирішується дуже просто, встановивши правильні дозволи на сервері, як для сценарію виконання, до якого не мав доступу найімовірніший користувач: nginx, так і для папки призначення.

Якщо файли веб-сайту не належать користувачеві, як це є на cPanel, VestaCP або інші платформи керування хостингом, то майже напевно рішення полягає в тому, щоб надати користувачеві nginx доступ до папки завантаження та сценарію.

Для наведеного вище прикладу коду ми виконаємо таку команду в SSH:

chown -R nginx:nginx /srv/www/domain.test/public/
chmod g+w file.file

Ми відновлюємо завантаження, і все має працювати без помилок move_uploaded_file(): Unable to move.

Якщо у вас все ще є проблеми, їх можна вирішити в коментарях до цього посібника.

Цей допис востаннє змінено 3 березня 2023 22:13

Stealth: Захоплюючись технологіями, я люблю тестувати та писати підручники про операційні системи macOS, Linux, Windows, про WordPress, WooCommerce і налаштувати веб-сервери LEMP (Linux, NGINX, MySQL і PHP). Я пишу далі StealthSettings.com з 2006 року, а через кілька років я почав писати на iHowTo.Tips підручники та новини про пристрої в екосистемі Apple: iPhone, iPad, Apple Годинник, HomePod, iMac, MacBook, AirPods та аксесуари.

Коментарі (1)

  • Привіт,
    J'ai lu et relu vos articles sur le sujet [move_upload_file].
    Il se trouve que je suis confronté avec ce problème et que je cherche depuis moult mois de m'en sortir sans succès.
    J'ai un site perso dans lequel j'ai une page Formulaire.html qui ne fonctionne que partiellement, à savoir : impossible d'ouvrir le flux etc…et bien sûr de le déplacer dans 'uploads'.
    Je suis retraité des Arts graphiques, typographe à 13 ans, puis monteur offset, infographiste, webmaster, bref j'ai 84 ans retraité et je suis toujours et encore passionné par mon métier.
    Si je me débrouille avec le html et le JavaScript, je me heurte aujourd'hui au PHP.
    Je fais avec mes collègues anciens combattant d'Algérie, de petites sorties et réalise des "reportages" que je mets sur mon site Perso à dispo pour ceux qui sont intéressés ; donc, je désire recevoir des docs car je ne pas tout faire moi même pour illustrer mes propos, d'où l'idée du Formulaire et traitement PHP.
    Я створив свій сайт за допомогою версії "Dreamweaver CC2020". Mac hébergé chez moi sur un serveur Synology “Ngnix” DMS v. 7.1 - PHP 8 (possibilité php 7.2, php 7.3, php 7.4). Certificat par défaut (No-Ip) : TrustCor DV CA - G2 RSA
    Форма працює правильно для полів «текст», але відмовляється від полів «медіа».
    Якщо ви цього бажаєте, ви можете підключитися до URL-адреси вище, натиснути на фігурку, і оскільки мені не потрібно активувати HTML-повернення, ви можете візуалізувати результат на сторінці PHP. (Я виділив 10 Мб і 20 Мб) для медіа.
    Чи є у вас наш сайт, який використовує “FastCGI” серверів Nginx PHP-TPM, що таке, як і раніше TPM, чи існують випадки линяння, які ви можете змінити чи позбутися, що є?
    Я помітив команду SSH:
    chown -R nginx:nginx /srv/www/domain.test/public/
    chmod g+w file.file
    Mais conviendra-t-telle à mon serveur?
    Merci par avance de vos précieux conseils