Verkkosivujen siirtäminen Kapsille
Tässä ohje, miten kannattaa toimia jossain toisella palveluntarjoajalla olevien nettisivujen siirtämiseksi Kapsin palvelimille. Ohjeessa kerrotaan, miten sivut siirretään mahdollisimman lyhyellä katkosella. Aluksi sivujen sisältö kopioidaan Kapsille ja sen jälkeen tehdään tarvittavat muutokset nimipalvelimiin.
Koko ohjeen ajan "domain.tld" tulee korvata oman domainisi nimellä.
Tiketti ylläpidolle
Ensimmäiseksi kannattaa lähetyä ylläpitoa ja pyytää siirrettävälle domainille kotisivukansiota sekä mahdollisia nimipalveluita ja muita palveluta, kuten tietokantaa. Viestiin kannattaa laittaa ainakin seuraavat tiedot:
- Siirrettävä domain
- Nimipalveluiden tarve
- Laitetaanko oletusosoitteeksi domain www-alkuosalla vai ilman
- Tarve sähköposteille, mitä sähköpostiosotteita tulisi domainilla olla ja mihin ne ohjataan
Kun ylläpito on vastannut tikettiin, voidaan jatkaa seuraavaan vaiheeseen. Nimipalveluihin ei vielä tässä vaiheessa tarvitse koskea.
Ylläpito luo kansion ~/sites/domain.tld/www jossa domain.tld korvataan pyytämälläsi domainilla. Kyseisestä kansiosta pitäisi löytyä tiedosto php5.fcgi.
Tiedostojen siirtäminen
Nyt voit siirtää sivuston sisällön nykyiseltä palveluntarjoajalta Kapsille. Se onnistuu graafisesti käyttäen esimerkiksi FileZilla- tai WinSCP-ohjelmia. Muista, että tiedostot tulee siirtää ~/sites/domain.tld/www/ kansioon. Ohje FileZillalle
Tietokantojen siirtäminen
Tietokannan hakeminen
Kun sivuston sisältö on siirretty, tulee vielä mahdolliset tietokannat siirtää. Sivuston tietokannan saa vedostettua helpoiten palveluntarjoajan PHPMyAdminilla.
PHPMyAdminissa valitaan ensiksi tietokanta vasemmasta laidasta, (ei information_schema). Seuraavaksi valitaan yläreunasta "export" tai "vie" ja avautuvan sivun alareunasta valinta kohtaan compression/pakkaus: "gzipped" ja lopuksi valitaan "Go" tai "Siirry". Sivuston pitäisi tarjota .sql.gz-tiedostoa, joka tulee ladata.
Tietokannan tuominen
Kapsille tietokannan saa tuotua Kapsin PHPMyAdminilla. Kirjautumisen jälkeen tulee valita vasemmasta laidasta tietokanta (joka on yleensä saman niminen, kuin käyttäjätunnus). Tämän jälkeen yläreunasta "import" tai "tuo". File to import kohtaan anna aikaisemmin lataamasi tiedosto. Klikkaa sivun alareunasta "Go" tai "Siirry".
Iso tietokanta (yli 32MB)
Mikäli sivuston tietokanta on kooltaan yli 32MB. Tulee palauttaminen tehdä komentoriviltä, koska PHPMyAdmin ei hyväksy sitä suurempaa tiedostoa.
Kopioi SQL-tiedosto Lakalle kotihakemistoon. Sitten tietokannan voi palaluttaa mysql-komennolla seuraavasti. Korvaa "tietokanta.sql" Lakalle kopioimasi tiedoston nimellä. Mikäli tietokantadump on pakattu (.sql päätteen lisäksi on .gz pääte) täytyy tiedosto ensin purkaa. Tämä onnistuu seuraavasti:
gunzip tietokanta.sql.gz tietokanta.sql
Sitten itse palautus palvelimelle mysql komennolla:
mysql $USER < tietokanta.sql
Jos tahdot palauttaa tietokannan johonkin muuhun tietokantaan, kuin oman tunnuksesi nimiseen, käytä edellisen sijaan seuraavaa komentoa:
mysql -u toisentietokannankäyttäjä toinentietokanta < tietokanta.sql
Yleiset ongelmatilanteet
Ongelmatilanteissa kannattaa ensimmäiseksi tarkastaa error.log.
less ~/sites/domain.tld/logs/error.log
500 Internal server error
Tämän tutkiminen kannattaa alottaa lukemalla ~/sites/domain.tld/logs/error.log-tiedoston lopusta viimeisimmät virheilmoitukset.
less ~/sites/domain.tld/logs/error.log
Premature end of script headers:
Virherivit:
Premature end of script headers: php5.fcgi Connection reset by peer: mod_fcgid: error reading data from FastCGI server
Todennäköisesti suexec estää php-tiedoston suorittamisen. Tarkasta, ettei muut, kuin sinä voi kirjottaa kansioihin mihinkään kansioon ~/sites/domain.tld/ alla. Eli kansioiden oikeuksien tulisi olla 755 (drwxr-xr-x). Myöskään php tiedostoihin ei pidä olla muilla, kuin käyttäjällä kirjoitusoikeutta.
Nopea konsti oikeuksien korjaamiseen on
find ~/sites/domain.tld/ -type d -exec chmod 755 {} \; find ~/sites/domain.tld/ -type f -name '*.php' -exec chmod go-w {} \;
Virheellinen rivi .htaccess-tiedostossa
Virherivi:
~/sites/domain.tld/www/jokukansio/.htaccess: Invalid command ..
Kyseisessä .htaccess-tiedostossa on rivi, jota palvelin ei ymmärrä. Kannattaa tarkistaa kyseisen rivin kirjotusasu. Mikäli komento on toiminut jossain toisella palvelimella, on mahdollista, ettei se ole silti tuettu Kapsilla.
Redirect loop
Request exceeded the limit of 10 internal redirects due to probable configuration error.
.htaccess tiedostossa olevat RewriteRule aiheuttaa ns. rewrite loopin, ... (more)
Comments
"Nopea konsti oikeuksien korjaamiseen" -komentorivin jälkimmäisessä komennossa *.php pitäisi nähdäkseni ympäröidä lainausmerkeillä (-name '*.php'), sillä muuten ainakin Bash nappaa jokerimerkin ja tulkkaa ilmaisun liudaksi tiedostoja ennen komennon suorittamista, mikä aiheuttaa "paths must precede expression" -virheen.
Oho, tämä kommenttisysteemi nielee näköjään asteriskeja. Edellä siis .php:iden pitäisi olla [asteriski].php. Enkä jostain syystä pysty edes muokkaamaan kommenttiani, muokkauslinkki avaa vain kommentin yksinään.
Korjattu oikeaan muotoon. Alkuperäisessä tekstissä oli kyllä asteriksin edessä \\-merkki mutta se näemmä lopullisessa tuotoksessa katoaa.