I hate moving products from server to server.
Over the years I have documenting how to setup certain packages and tools on a case by case basis but I have never documented how I setup a completely new server.
I decided to move all my companies products over to EC2 (even though they annoyed me a lot) so figured I'd outline the things I had to do to get back up and running.
- I moved all of my files over from the old server using
rsync -chavzP --stats email@example.com:/home/ /home
- I enlarged the base partition on my new EC2 instance using a combination of the following (for information and execution):
- I installed
- I copied across my nginx config files:
rsync -chavzP --stats firstname.lastname@example.org:/etc/nginx/sites-available/ /etc/nginx/sites-available/
- I installed
- I restored my databases from a backup:
mysql -u root -p < full-backup-2019-01-27.sql
- I installed the various packages that I needed
apt-get install php7.2 php7.2-curl php7.2-dev php7.2-mbstring php7.2-zip php7.2-mysql php7.2-phalcon
- I restarted nginx, php-fpm and mysql numerous times
service mysql restart
service nginx restart
service php7.2-fpm restart
- I updated my DNS settings at my domain name registrar so that the A records pointed to my new EC2 instances elastic IP.
- I verified that my domains were responding
- I set up some SSL certificates for some products using LetsEncrypt as outlined here.
- I tried and failed to install v8js using pinepains ppas (like I had previously)
- I compiled v8 and v8js respectively from source following the guidelines outlined here
- I made sure the PHP extension files were in the appropriate places for both cli and fpm:
echo 'extension=v8js.so' >> /etc/php/7.2/cli/conf.d/20-v8js.ini
echo 'extension=v8js.so' >> /etc/php/7.2/fpm/conf.d/20-v8js.ini