Как да си създадем локално копие на сайта, с цел екперименти

Защо е необходимо това? Причините, могат да бъдат различни, от това да тестваме нов плъгин, без да си “счупим” сайта, до това всеки път преди да ъпдейтнем плъгин, тема или самия wordpress, да проверим дали това няма да ни “счупи” сайта, както последно време се случваше често.

Начини да направим локално копие най-вероятно има много, но тук ще споменем 3 варианта:

  1. Local WP
  2. Копие на сайта на под-домейн на хостинга ни – от типа test.my_site.com
  3. Копие на локалната ни машина

Вариант 1 е подходящ ако искаме бързо и лесно да тестваме функционалността на нов плъгн или тема. Начин на ползване – сваля се програмата от сайта на Local WP и се следват инструкциите.

Вариант 2 е подходящ, ако тестваме оптимизация например и е нужен достъп от външен сървис до сайта(например PageSpeed Insights), тъй като няма как външния сървис да има достъп до локалната машина.

Вариант 3 е най-техническия, но най-чист начин. Подходящ е за всякакви случаи, които не изискват външен достъп.

Вариант 3: Изграждане на локално копие стъпка по стъпка

  1. Малко теория
    За да съществува един сайт локално на компютъра ни, са ни необходими 3 неща: web вървър, mysql сървър и php. Можем лесно да получим всичко това, като свалим и инсталираме XAMPP
  2. Архивираме всички файлове от хостинга на live site-а ни
    главната директория на wordpress изглежда по следния начин:

    basic-wp-structure

    Влизаме в акаунта си на хостинга и през файловия мениджър(cPanel -> File manager) влизаме в главната директория на wordpress сайта ни(1)(обикновено е public_html), маркираме всички файлове и папки(2)(най-добре само тези които са показани на горната снимка и принадлежат на wordpress) и ги компресираме(3)(по-лесно се сваля един голям файл, отколкото голям брой малки файлове).

    Избираме типа на архива да е .zip и му задаваме с какво име искаме да бъде(например my-site.zip)

    Когато компресирането е готово, в главната директория на wordpress ще се появи файла my-site.zip, сваляме го на компютъра си

  3. Правим export на базата данни
    От cPanel-a на хостинга си, избираме phpmyadmin

    cpanel

    Избираме базата данни на сайта ни(1), след това Export(2) и кликаме бутона “Go”(3)

    phpmyadmin-export

  4. Инсталиране на XAMPP
    Сваляме инсталационния файл от XAMPP и го инсталираме. Важно е да запомним в коя директория инсталираме XAMPP, по-нататък ще ни трябва. За по-лесно може да го инсталирате на C:\xampp. Ако по време на инсталацията, инсталатора ни попита какви компоненти да инсталира, на практика ни трябват само Apache, MySql, php и phpmyadmin.

    xampp-installer

    След като завърши инсталацията, стартираме XAMPP-control.exe и от него стартираме Apache и Mysql сървърите:

    xamp-start

    Ако са се стартирали успешно, имената на сървърите ще се оцветят в зелено, а в колоната Port(s) ще се появят портовете, на които работят, в противен случай отдолу в полето за лог, ще се изпишат грешките.

  5. Разархивираме файловете от live site-а
    Отваряме xampp_install_dir\htdocs(ако сме го инсталирали по примера по-горе C:\xampp\htdocs), изтриваме всички файлове вътре(това са файлове, които са генерирани след инсталирането на xampp и реално не ни трябват). Създаваме папката в която ще разархивираме файловете от live сайта ни, примерно my-site и в нея разархивираме архива който свалихме от хостинга си my-site.zip

    xampp-htdocs

  6. Import-ваме базата данни
    Преди да импортнем нашата база данни, трябва да създадем самата база и потребителя с който ще работи wordpress. Те са записани във файла wp-config.php в главната директория на wordpress. Има два подхода: или да видим какви са били те на оригиналния хостинг и да създадем същите, или да създадем база и потребител каквито сметнем за добре и в последствие да ги запишем в wp-config.php. Аз лично предпочитам първия вариант. Отваряме C:\xampp\htdocs\my-site\wp-config.php(или пътя до вашата инсталация) и намираме редовете които съдържат информацията за базата и потребителя:

    wp-config

    След това, от контролния панел на XAMPP, отваряме phpmyadmin:

    xampp-open-phpmyadmin

    След тази стъпка, ще се отвори браузър със адрес http://localhost/phpmyadmin. Това е инструмента, който ползваме за работа с базата данни. Чрез него създаваме базата:

    phpmyadmin-create-db

    Отиваме на Databases(1), в полето(2) въвеждаме името на базата данни от wp-config.php файла, проверяваме полето (3) дали е избрано точно utf8mb4_general_ci, защото в противен случай има шанс текстовете написани на кирилица в базата данни да се “счупят” и да излизат на “шльокавица” и цъкаме бутона за създаване(4).
    След като създадем базата, тя се появява в списъка с наличните бази(1). След това трябва да създадем потребителя, с който wordpress ще работи:

    phpmyadmin-add-user

    избираме базата(1), ако вече не е избрана, отиваме на Operations(2) -> Privileges(3) -> Add new user(4).

    phpmyadmin-add-user-2

    На новия прозорец в полето(1) въвеждаме потребителя от wp-config.php, полето (2) изираме да е Local, а в полета (3) и (4) въвеждаме паролата от wp-config.php и най-отдолу natiskame бутона “Go”

    Следва да импортнем и самите данни от live сайта ни, отиваме на Импорт(2), в полето за импорт(3) избираме експорта който направихме в точка 3 и най-отдолу натискаме бутона “Import”:

    phpmyadmin-import

  7. Променяме url-а на сайта ни в базата данни
    Сега ако отворим в браузъра адреса http://localhost/my-site, wordpress ще ни прехвърли на оригиналния сайт, за него url адреса който трябва да отвори, е адреса на оригиналния сайт. Затова след импорта на данните в phpmyadmin-а, трябва да променим две полета в таблицата wp_options. Затова избираме таблицата wp_options(1) и с двоен клик променяме полетата(2) от “името–на-оригиналния-сайт” на http://localhost/my-site

    change-phpmyadmin-site-url

  8. Готово

    На теория можем да кажем, че вече имаме работещо локално копие на сайта и можем спокойно да експериментираме. На теория, защото по принцип wordpress запазва в базата си, целите пътища на всички картинки, а най-вероятно и на всички .js и .css файлове, което означава, в момента, локалното ни копие ще зарежда всички картинки, .js и .css файлове от оригиналния ни сайт, което ако имаме достъп до интернет, няма да повлиае по никакъв начин на експериментите ни(стига да не тестваме плъгини, които физически манипулират картинките).

Ако объркаме нещо, лесно можем да започнем отново. Просто трием файловете и папките в нашата папка my-site, от phpmyadmin, избираме базата данни(както сме я кръстили) -> Operations -> Drop the database (DROP), след това отново разархивираме файловете от архива my-site.zip(стъпка 5) и ипортваме базата данни(стъпка 6)