# A bővítmény- és sablontelepítés „Upload failed” hibával leáll

> A tmpfile() függvény, a fájlméret-korlátok, a biztonsági szabályok és a localhost okozta feltöltési hibák megoldása.

Az **Upload failed** (feltöltés sikertelen) hiba akkor jelenik meg, ha a MainWP nem tudja átvinni a bővítmény- vagy sablonfájlokat a vezérlőpultról a Child-webhelyekre. Okai általában a szerver beállításai, a biztonsági szabályok vagy a localhostos futtatás korlátai.

Előfeltétel: telepített vezérlőpult, rendszergazdai hozzáférés, és hozzáférés a szerver beállításaihoz (vagy a tárhely ügyfélszolgálata).

## A szerver beállításainak ellenőrzése

### A PHP `tmpfile()` függvénye

A fájlfeltöltés feldolgozásához kell a `tmpfile()` PHP-függvény. Ha tiltott, a feltöltések hibáznak.

1. Nyisd meg az **Információ → Szerver** oldalt, és nézd meg a tiltott PHP-függvényeket.
2. Ha a `tmpfile()` tiltott, kérd meg a tárhelyszolgáltatót, hogy engedélyezze.

![Az Információ oldal Szerver lapja a PHP-ellenőrzésekkel, köztük a tmpfile függvény sorával](./kepek/hibaelharitas-szerver-adatok.webp)

*Az Információ oldal Szerver lapja a PHP-ellenőrzésekkel, köztük a tmpfile függvény sorával* (https://minta-bolt.hu/wp-admin/admin.php?page=ServerInformation)

A képen a **`tmpfile` függvény engedélyezve** sor mutatja, hogy a függvény elérhető-e.

### Fájlméret-korlátok

A szervernek elég nagy feltöltést kell engednie a bővítmény- és sablon-zipekhez.

| Beállítás | Ajánlott érték | Hol nézd meg |
|---|---|---|
| `upload_max_filesize` | 64M vagy több | **Információ → Szerver** |
| `post_max_size` | 64M vagy több | **Információ → Szerver** |
| `max_execution_time` | 300 másodperc | **Információ → Szerver** |

Ha az értékek alacsonyak, kérd a tárhelyet, vagy módosítsd a `php.ini` fájlt.

## A biztonsági szabályok ellenőrzése

A biztonsági beállítások blokkolhatják a feltöltést. Menj végig a lépéseken ebben a sorrendben.

### .htaccess-szabályok

1. Nézd át a vezérlőpult WordPress-mappájában lévő `.htaccess` fájlt, van-e benne feltöltést blokkoló szabály.
2. Nevezd át ideiglenesen `.htaccess.backup` névre, hogy kiderüljön, ez okozza-e a hibát.
3. Próbáld újra a feltöltést.
4. Ha működik, állítsd vissza a fájlt, és csak a blokkoló szabályt módosítsd.

### Biztonsági bővítmények

A vezérlőpulton futó biztonsági bővítmények zavarhatják a feltöltést.

1. Kapcsold ki ideiglenesen a biztonsági bővítményeket a vezérlőpult webhelyén (nem a Child-webhelyeken).
2. Próbáld újra a feltöltést.
3. Ha sikerül, kapcsold vissza őket egyenként, így megtalálod az ütköző bővítményt.
4. Az ütköző bővítményben vegyél fel kivételt a MainWP műveleteire.

### Szerver tűzfala

A tárhely tűzfala is blokkolhatja a kapcsolatot.

- Kérd meg a tárhely ügyfélszolgálatát, hogy nézze meg a tűzfalnaplót.
- Kérd, hogy engedélyezzék a vezérlőpult belső folyamatait.
- Ellenőriztesd, hogy a ModSecurity vagy hasonló WAF nem blokkolja a feltöltést.

### HTTP Basic hitelesítés

Ha a vezérlőpultot HTTP Basic hitelesítés (`.htpasswd`) védi, a feltöltés meghiúsulhat.

1. Vedd le ideiglenesen a HTTP Basic védelmet a vezérlőpult címéről.
2. Próbáld újra a feltöltést.
3. Ha működik, keress olyan védelmet, amely nem zavarja a MainWP-t.

## Localhost korlátai

Ha a vezérlőpult helyi fejlesztői környezetben (localhost) fut, a távoli szervereken lévő Child-webhelyek nem tudnak visszakapcsolódni hozzá, hogy megkapják a fájlokat.

- A localhost az internetről nem érhető el.
- A Child-webhelyek nem érik el a helyi vezérlőpultot a fájlok letöltéséhez.
- A feltöltéshez kétirányú kommunikáció kell.

| Megoldás | Leírás |
|---|---|
| Alagút | Az ngrok-hoz hasonló eszközök átmenetileg elérhetővé teszik a localhostot az interneten |
| Közvetlen telepítés | A bővítményt vagy sablont közvetlenül a Child-webhelyen telepíted, tesztelés céljából |
| Átmeneti környezet | Nyilvánosan elérhető tesztvezérlőpulttal próbálsz |

## Ellenőrzőlista

- A `tmpfile()` PHP-függvény engedélyezve van.
- Az `upload_max_filesize` elég nagy.
- A `.htaccess` nem blokkolja a feltöltést.
- Tesztként kikapcsoltad a biztonsági bővítményeket.
- A HTTP Basic hitelesítés ki van kapcsolva (ha volt).
- A vezérlőpult nyilvánosan elérhető, nem localhost.
- A feltöltés sikeresen lefut.
