Thanks for pointing me to the old guides repo. After some more effort and failure and rethinking, I am happy to say that my migration looks to have been successful. I am neither a developer nor admin, and this has been my first real project setting up a site basically from scratch, so I'm satisfied, despite the time it has taken for me to figure it out. But I wouldn't rely on my repo as a starting point for any official images; it's as much luck as anything that I got this far.
My starting point was an AWS Lightsail instance I created last year, based on a standard AWS LEMP image.
- Ubuntu 18.04
- Nginx
- MySQL 8.0
- PHP 7.3 (I think)
- Chevereto 3.15.1
I wanted to upgrade to latest Chevereto, and that required some changes to other components of that stack (e.g., upgrade PHP), plus I wanted to get off of Lightsail, since it's too expensive for what I'm doing, even for limited performance.
So, I started down the path of migrating my site to a new server on AWS EC2. I started with a new Ubuntu 20.04 image, and I saw the guide involving OpenLiteSpeed, so I figured I'd learn about something new. So, I got that stack set up and the web server running.
- Just an EC2 t3.micro instance, with an elastic IP and an EBS volume for storage
- Ubuntu 20.04
- OpenLiteSpeed
- MariaDB 10
- PHP 7.4 (not 8)
- Route53 for DNS
- The same S3 bucket as before for photo storage
- I may eventually move the DB out to its own RDS instance, but it's fine for now
It took a lot of updates to get all of the dependencies for PHP and Chevereto, but I got there. After some trial and error, I just cloned my github repo into the new server's HTML directory and fiddled with the server rewrite rules a bit until I got things loading properly. Imported a dump of my Lightsail DB into the new MariaDB instance with all the same user settings and permissions. Then I was able to log in to Chevereto and run the update to 3.20.8 from the Dashboard web UI.
Maybe that helps someone searching for this type of thing (small personal chev project on AWS) in the future. Let me know if there's anything I can do to help with specifics. Next step for me in the future will be to wrap it up in containers and load balancers, but I'm just not familiar with that stuff yet.