WordPress Multisiten varmuuskopiointi Työympäristö Koulun labra kone: Tietokone: HP Compaq 8200 Elite CMT PC (XL508AV) Tunnus: 1K015 PC 21 Xubuntu 13.04 LiveUSB Alkutilanne Lähdin liikkeelle siitä, että minulla oli WordPress Multisite ja reverse proxy asennettuna nimipohjaisessa palvelimessa. Lisäksi minulla oli lisättynä kolme käyttäjää, heidän sivunsa ja hieman sisältöä. Varmuuskopiointi Tässä dokumentissa käydään läpi vain WordPressiin kuuluvien tiedostojen ja tietokantojen varmuuskopiointi. Palvelimen muiden tiedostojen varmuuskopiointia tässä dokumentissa ei käsitellä. WordPress koostuu kahdesta eri osasta: tiedostoista ja tietokannoista. WordPressin tiedostot ovat ne kaikki tiedostot mitä WordPressin hakemistosta löytyy (tässä tapauksessa /home/xubuntu/public_html). Tiedostoista löytyy kaikki asennetut pluginit sekä teemat. WordPressin tietokanta sisältää kaikki viestit ym. sisällön. Varmuuskopioinnin lisäksi dokumentissa käydään läpi varmuuskopion palauttaminen.
Tiedostojen varmuuskopiointi Minun WordPress tiedostoni sijaitsivat hakemistossa /home/xubuntu/public_html/. Päätin varmuuskopioida hakemiston käyttämällä Rsync-ohjelmaa. Rsyncillä pystyy kopioimaan hakemistojen tiedostot kerralla yhdellä komennolla, säilyttäen niiden käyttöoikeudet, käyttäjät, ryhmät ja omistajat. Sillä voi myös kopioida tiedostot suoraan etäpalvelimelle. Kopioin siis /home/xubunt/public_html/-hakemiston sisällön hakemistoon wpbackup/ Rsyncillä: $ rsync -avv /home/xubuntu/public_html/ /home/xubuntu/wpbackup/ (-a = kopioi tiedostot rekursiivisesti sekä säilyttää oikeudet yms., -vv = verbose) Kaikki WordPressin tiedostot oli nyt kopioitu hakemistoon wpbackup/. Päätin tämän jälkeen tehdä tarpallon kyseisestä hakemistosta: $ tar -caf wpbackup.tar.gz wpbackup/ Minulla oli nyt 4,5 megatavun wpbackup.tar.gz-tiedosto, jossa oli kaikki WordPressin tiedostot. Kopioin tämän tiedoston koulun myy-palvelimelle talteen. Kokeilin myös miten saan tiedostot suoraan kopioitua rsyncillä etäpalvelimelle: $ rsync -azvv -e ssh public_html/ [käyttäjätunnus]@myy.haaga-helia.fi:wpbackup/ Minulla oli myy-palvelin mountattu sshfs:n avulla myy-hakemistoon: Tiedostot siis kopioituivat samalla tavalla kuin aikaisemmin, mutta tällä kertaa internetin yli ssh-yhteydellä etäpalvelimelle. WordPressin tiedostot oli nyt varmuuskopioitu.
Tietokannan varmuuskopiointi Käytin tietokannan varmuuskopiointiin mysqldump-ohjelmaa: $ mysqldump --user="root" --password="[salasana]" mts > mtsbackup.sql (User-kohtaan voi myös rootin tilalle laittaa jonkun muun käyttäjän, jolla on oikeudet kyseiseen tietokantaan kuten esim. WordPressille tehty käyttäjä. Jos on tehnyt.my.cnf-tiedoston, user ja password kohtia ei tarvita.) WordPressin tietokanta mts oli nyt dumpattu tiedostoon mtsbackup.sql: $ less mtsbackup.sql Kopioin tämän tiedoston koulun myy-palvelimelle talteen. WordPressin tietokanta oli nyt varmuuskopioitu.
Varmuuskopioiden palauttaminen Nyt minulla oli WordPressin tiedostot sekä tietokanta varmuuskopioitu erilliselle palvelimelle. Testatakseni varmuuskopioiden palauttamista, käynnistin live istunnon uudestaan jolloin kaikki muutokset katosivat ja WordPress niiden mukana. Asensin tämä jälkeen ensimmäisenä Apachen, MySQL:n ym. uudelleen. Sivussa ei ollut tässä vaiheessa vielä mitään. Kopioin myy-palvelimelta aikaisemmin luodut wpbackup.tar.gz ja mtsbackup.sql -tiedostot. Tiedostojen palautus Purin wpbackup.tar.gz -tiedoston: $ tar -xf wpbackup.tar.gz Tämän jälkeen kopioin wpbackup/-hakemistosta rsyncillä tiedostot public_html/-hakemistoon: $ rsync -avv wpbackup/ public_html/ Nyt WordPressin tiedostot oli palautettu varmuuskopiosta. Sivusto ei kuitenkaan vielä toiminut koska tietokanta puuttui: Joten vielä piti palauttaa tietokanta.
Tietokannan palautus Ensin tein uudelleen mts nimisen tietokannan: $ mysql mysql> create database mts; Tämän jälkeen palautin mtsbackup.sql-tiedoston sisällön mts-tietokantaan: $ mysql --user="root" --password="[salasana]" mts < mtsbackup.sql Tämä ei kuitenkaan vielä riittänyt koska WordPressin MySQL käyttäjää ei ollut olemassakaan enää. Kyseinen käyttäjä piti tehdä uudelleen. Käyttäjän tiedot löytyivät wp-config.php-tiedostosta: Näillä tiedoilla loin käyttäjän uudelleen: $ mysql mysql> GRANT ALL PRIVILEGES ON mts.* TO "[käyttäjä]"@"localhost" -> IDENTIFIED BY "[salasana]"; mysql> FLUSH PRIVILEGES; Tämän jälkeen yritin uudelleen mennä sivustolle: WordPress Multisite palautui täydellisesti. Kaikki sisältö, käyttäjät ja heidän sivut, pluginit ja teemat olivat tallella ja kaikki toimi niin kuin piti.
Lähteet MySQL. Mysqldump. Luettavissa: http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html. Luettu:. Ubuntu. Rsync. Luettavissa: https://help.ubuntu.com/community/rsync. Luettu:. Tietoja Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html Pohjana Tero Karvisen Linux-kurssi, www.iki.fi/karvinen