Nämä ohjeet toimivat pienimmilläkin Amazonin virtuaalikoneilla ja jopa Nettihotelli.fi:n chrootatussa putkassa (kunhan SSH on avattu asiakaspalvelusta ja tietokantaa käsitellään hallintapaneelin kautta). Ohjeet voivat toimia myös muilla virtuaalikoneilla, joilla on alle 1 gigatavu muistia, rajoitetut verkkoyhteydet tai palvelimelta puuttuu tärkeitä ohjelmia kuten PHP komentotulkki, MySQL komentotulkki, Git, Drush tai Wget.
1. Aseta sivusto huoltotilaan
2. Kirjaudu sisään www-palvelimelle SSH:lla
3. Ota kopio sivustosta:
cd /var/www
tar --gzip -cvf ~/DIR-2019-01-28.tar.gz DIR
missä /var/www on Apachen juurihakemisto ja DIR on sivuston sisältävä hakemisto.
4. Ota kopio tietokannasta (Nettihotelli.fi:n palvelimilla käytä hallintapaneelia):
mysqldump -uUSER -pPASS DB | gzip > ~/DIR-2019-01-28.sql.gz
missä USER on tietokantakäyttäjän nimi, PASS on tietokantakäyttäjän salasana, DB on tietokannan nimi ja DIR on sivuston nimi kohdasta 3.
5. Avaa uusi konsoli paikallisesssa koneessa ja kopioi sivusto www-palvelimelta:
cd ~/projektit/omat
scp HOST:DIR-2019-01-28.tar.gz .
scp HOST:DIR-2019-01-28.sql.gz .
missä HOST on www-palvelimen nimi, ja DIR on kohdissa 3 ja 4 käyttämäsi sivuston/hakemiston nimi.
6. Pura sivuston koodi paikallisella koneella:
rm -fr DIR
gunzip -c DIR-2019-01-28.tar.gz | tar xvf -
missä DIR on kohdissa 3 ja 4 käyttämäsi sivuston nimi.
7. Pura tietokanta paikalliseen koneeseen:
gunzip -c DIR-2019-01-28.sql.gz | mysql -uUSER -pPASS DB
missä DIR on sivuston nimi, USER on tietokantakäyttäjän nimi, PASS on tietokantakäyttäjän salasana ja DB on tietokannan nimi. Ensimmäisellä kerralla luo tietokanta ja käyttäjätunnus samoilla tiedoilla kuin www-palvelimella, jotta voit purkaa tietokannan kopion helposti myöhemmin uudelleen samaan kantaan.
8. Korjaa tiedostojen oikeudet, jos käytät mod_php:tä omalla koneellasi:
cd DIR
chmod -R g+rw .
chgrp -R www-data web/sites/default/files
chgrp -R www-data web/sites/default/private
find web/sites/default/files -type d -exec chmod g+xs {} \;
find web/sites/default/private -type d -exec chmod g+xs {} \;
find web/sites/default/files -type d -exec setfacl -dm g::rwx {} \;
find web/sites/default/private -type d -exec setfacl -dm g::rwx {} \;
missä DIR on sivuston nimi ja www-data on Apachen ryhmä, jolla on kirjoitusoikeus tiedostoihin.
9. Lisää sivusto Apacheen (tarvitsee tehdä vain ensimmäisen kerran) avaamalla tiedosto /etc/httpd/conf/extra/httpd-vhosts.conf (Arch linux) ja lisäämällä sinne rivit:
<Directory "/home/teppo">
AllowOverride all
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>
<VirtualHost *:80>
DocumentRoot "/home/teppo/DIR/web"
ServerName DIR.localhost
</VirtualHost>
missä /home/teppo on kotihakemistosi ja DIR on kohdassa 6 luomasi hakemiston nimi.
10. Avaa nettiselain ja mene osoitteeseen http://DIR.localhost, missä DIR on aiemmin asettamasi sivuston nimi. Jos edelliset vaiheet menivät oikein, niin sinulla on nyt toimiva kopio sivustosta.
11. Päivitä Drupal uusimpaan versioon:
php composer update --with-dependencies
drush updb
drush cr
Composer tulee olla asennettu Drupalin kylkeen nimellä 'composer', jotta tämä vaihe toimii.
12. Avaa nettiselain ja mene osoitteeseen http://DIR.localhost, missä DIR on aiemmin asettamasi sivuston nimi. Kirjaudu sisään Drupaliin ja tarkista saatavilla olevat päivitykset. Jos kaikki meni oikein, niin varoitus tietoturvapäivityksestä on kadonnut.
13. Ota kopio päivitetystä versiosta ja tietokannasta:
cd ..
tar --gzip -cvf uusi-2019-01-28.tar.gz DIR
mysqldump -uUSER -pPASS DB | gzip > ~/uusi-2019-01-28.sql.gz
missä DIR on sivuston nimi, USER on tietokantakäyttäjän nimi, PASS on tietokannan salasana ja DB on tietokannan nimi.
14. Siirrä päivitetty sivusto ja tietokanta www-palvelimelle:
scp uusi-2019-01-28.tar.gz uusi-2019-01-28.sql.gz HOST:
missä HOST on www-palvelimen nimi.
15. Kirjaudu www-palvelimelle SSH:lla
16. Pura tietokantakopio www-palvelimella (Nettihotelli.fi:n palvelimilla käytä hallintapaneelia):
gunzip -c uusi-2019-01-28.sql.gz | mysql -uUSER -pPASS DB
missä USER on tietokantakäyttäjän nimi, PASS on tietokantakäyttäjän salasana, DB on tietokannan nimi.
17. Pura koodit www-palvelimella
cd /var/www
rm -fr DIR
gunzip -c ~/uusi-2019-01-28.tar.gz | tar xvf -
missä /var/www on Apachen juurihakemisto ja DIR on hakemistonimi palvelimella.
18. Korjaa tiedostojen oikeudet, jos www-palvelimella käytetään mod_php:tä:
cd DIR
chmod -R g+rw .
chgrp -R www-data web/sites/default/files
chgrp -R www-data web/sites/default/private
find web/sites/default/files -type d -exec chmod g+xs {} \;
find web/sites/default/private -type d -exec chmod g+xs {} \;
find web/sites/default/files -type d -exec setfacl -dm g::rwx {} \;
find web/sites/default/private -type d -exec setfacl -dm g::rwx {} \;
chmod 444 web/sites/default/files/.htaccess
missä DIR on kohdassa 17 luotu hakemisto palvelimella ja www-data on Apachen ryhmä, jolla on kirjoitusoikeus tiedostoihin.
19. Kirjaudu sisään Drupaliin www-palvelimella ja tarkista, että kaikki toimii
20. Lopuksi ota huoltotila pois päältä ja poista tarpeettomat gz tiedostot