Het is weer zover; nieuwe server ingericht, en nu moeten alle website-hosts over naar de nieuwe server. Hier even een korte how-to hoe je dit enigszins gestructureerd aan zou kunnen pakken. 🙂
Om even het verschil tussen de commando’s aan te geven zet ik voor het commande neer op welke server deze uitgevoerd moet worden: source=oude server, dest=nieuwe server.
Rechten op filesysteem
Als je een nieuwe server inricht, moet je er eerst voor zorgen dat je rechten krijgen op de /var/www map, hier zet ik namelijk al mijn website’s neer..
Rechten op /var/www: (Alle rechten voor de apache user, en schrijf rechten voor mijn user account.)
dest: sudo chown www-data:user /var/www/ -R dest: sudo chmod -R g+w /var/www
Kopieren website-bestanden naar andere server:
Vanaf source kopieren:
source:/~$ cd /var/www source:/var/www$ scp -rp sitename/ user@dest:/var/www
MySQL database overzetten:
source:/tmp$ mysqldump -u root -p --opt dbname>dbname.sql source:/tmp$ zip gha.zip dbname.sql source:/tmp$ scp gha.zip dest:/tmp/
Maak in phpadmin de doel-database aan, en run dan de volgende commando’s:
dest:/tmp$ unzip dbname.sql dest:/tmp$ sudo mysql -e 'CREATE DATABASE `dbname`;' dest:/tmp$ sudo mysql dbname <dbname.sql
MySQL user overzetten:
- source: Open phpmyadmin en ga naar tabje ‘Gebruikers’
- source: Zoek de gebruiker op, en klik op ‘Exporteren’
- source: Kopieer de SQL commands uit dit scherm.
- dest: Open phpmyadmin en ga naar het tabje ‘SQL’
- dest: Plak de SQL commands in het scherm, en controleer deze.
- dest: Klik op ‘Starten’
De gebruiker is nu aangemaakt met de juiste rechten.
Apache2 site-configuratie overzetten
Eerst (eenmalig) alle geactiveerde site overzetten naar de nieuwe site in een tijdelijk map:
source:/~$ cd /etc/apache2/sites-enabled/ source:/etc/apache2/sites-enabled$ scp -rp *.conf user@dest:/tmp/
Dan per website de configuratie instellen, controleren en activeren:
dest:/etc/apache2/sites-available$ sudo cp /tmp/sitename.conf ./ dest:/etc/apache2/sites-available$ sudo nano sitename.conf
Controleer met nano of alle settings of deze kloppen!
dest:/etc/apache2/sites-available$ sudo a2ensite sitename.conf dest:/etc/apache2/sites-available$ sudo systemctl reload apache2
Troubleshooting
Als het goed is wordt de de site nu geladen, maar mogelijk mis je nog een apache2 module die je nodig hebt.. daarom nog even een paar troubleshooting commands:
systemctl status apache2.service tail /var/log/apache2/sitename-ssl-error.log sudo a2enmod ssl && sudo service apache2 restart sudo a2enmod headers && sudo service apache2 restart sudo a2enmod proxy_http && sudo service apache2 restart systemctl status apache2.service
Disable oude apache2 config.
Als alles werkt en de dns omgezet is, kun je op de oude server de site uitschakelen:
source:/~$ sudo a2dissite gha.conf source:/~$ sudo service apache2 reload