# WordPress telepítése egy fájl segítségével

> WordPress telepítése könnyedén, egy telepítő fájl segítségével

Ezzel a módszerrel a WordPress telepítése, illetve a fájlok másolásának ideje a töredékére csökken, szemben a hagyományos „FTP-re másolásos" móddal. Ott ajánlott használni, ahol nincs más megoldás WordPress telepítésére.

## WP-CLI alternatíva (ajánlott)

Ha van SSH hozzáférésed és WP-CLI elérhető a szerveren, akkor egyszerűbben és biztonságosabban is telepítheted a WordPress-t:

```bash
# Navigálj a célkönyvtárba
cd /var/www/html

# WordPress letöltése és kicsomagolása magyar nyelvvel
wp core download --locale=hu_HU

# wp-config.php létrehozása
wp config create --dbname=adatbazis_neve --dbuser=felhasznalo --dbpass=jelszo --dbhost=localhost

# WordPress telepítése
wp core install --url="https://oldaladneve.hu" --title="Oldal neve" --admin_user=admin --admin_password=biztonsagos_jelszo --admin_email=email@example.com
```

> **Egysoros megoldás**
>
> Ha csak a fájlokat szeretnéd letölteni és kicsomagolni:
> ```bash
> wp core download --locale=hu_HU --path=/var/www/html
> ```

## PHP telepítő szkript

Ha nincs WP-CLI a szerveren, használd az alábbi PHP szkriptet.

### Mire lesz szükséged?

A telepítőprogram használatához FTP/sFTP/SSH hozzáférésre van szükség a tárhelyhez, ahová telepíteni szeretnéd a WordPress-t.

Amint ez megvan, nincs más dolgod, mint felmásolni az alábbi fájlt oda, ahová a WordPress-t szeretnéd telepíteni, és megnyitni a fájlt a böngészőben.

Például: https://oldaladneve.hu/wptelepito.php

### A fájl

```php
<?php

//https://hub.hellowp.io/docs/tudasbazis/oktatoanyagok/uzemeltetes/wordpress-telepitese-konnyeden-egy-telepito-fajl-segitsegevel

    echo '<pre>';
    echo '<span style="color:blue">LETÖLTÉS...</span>'.PHP_EOL;

    file_put_contents('wp.zip', file_get_contents('https://hu.wordpress.org/latest-hu_HU.zip'));

    $zip = new ZipArchive();
    $res = $zip->open('wp.zip');
    if ($res === true) {
        $zip->extractTo('./');
        $zip->close();
        unlink('wp.zip');

        $files = find_all_files("wordpress");
        $source = "wordpress/";
        foreach ($files as $file) {
            $file = substr($file, strlen("wordpress/"));
            if (in_array($file, array(".",".."))) {
                continue;
            }
            if (!is_dir($source.$file)) {
                echo '[FÁJL] '.$source.$file .' -> '.$file . PHP_EOL;
                rename($source.$file, $file);
            } else {
                echo '[KÖNYVTÁR]  '.$file . PHP_EOL;
                mkdir($file);
            }
        }

        foreach ($files as $file) {
            if (in_array($file, array(".",".."))) {
                continue;
            }
            if (is_dir($file)) {
                echo '[TÖRLÉS]  '.$file . PHP_EOL;
                recursive_rmdir($file);
            }
        }
        recursive_rmdir('./wordpress');

        if (file_exists('index.php')) {
            echo '<meta http-equiv="refresh" content="1;url=index.php" />';
        } else {
            echo 'A telepítés sikertelen...';
        }
    } else {
        echo 'A telepítés sikertelen...';
    }

    function find_all_files($dir)
    {
        $root = scandir($dir);
        foreach ($root as $value) {
            if ($value === '.' || $value === '..') {
                continue;
            }
            $result[]="$dir/$value";
            if (is_file("$dir/$value")) {
                continue;
            }
            foreach (find_all_files("$dir/$value") as $value) {
                $result[]=$value;
            }
        }
        return $result;
    }

    function recursive_rmdir($src)
    {
        $dir = opendir($src);
        while (false !== ($file = readdir($dir))) {
            if (($file != '.') && ($file != '..')) {
                $full = $src . '/' . $file;
                if (is_dir($full)) {
                    recursive_rmdir($full);
                } else {
                    unlink($full);
                }
            }
        }
        closedir($dir);
        rmdir($src);
    }

```
