sudo apt install mysql-server php7.2-common php7.2-cli php7.2-fpm php7.2-bcmath php7.2-curl php7.2-gd php7.2-mbstring php7.2-mysql
- Create document root folders
mkdir -p /var/www/example.com/htdocs
mkdir -p /var/www/example.com/logs
sudo chown -R www-data:www-data /var/www/example.com
echo -e "<?php\n\necho phpinfo();" > /var/www/example.com/htdocs/index.php
- Edit Caddyfile
example.com {
root /var/www/example.com/htdocs
log /var/www/example.com/logs/access.log
fastcgi / /var/run/php/php7.2-fpm.sock php
}
- Restart Caddy service
sudo systemctl restart caddy
- Check Caddy status for errors
sudo systemctl status caddy
- Check example.com in browser; should show php info
sudo mysql_secure_installation
- Setup VALIDATE PASSWORD plugin?
y
- Password Validation Policy
medium
- Set root password
- Remove anonymous users?
y
- Disallow remote root login?
y
- Remove test database?
y
- Reload privilege tables?
y
- Setup VALIDATE PASSWORD plugin?
- Verify MySQL is running
sudo mysqladmin -u root -p version
sudo systemctl status mysql
- Restore data (assuming mysqldump from Webfaction)
sudo mysql < dumpfile.sql
- Create database user with access to new database
sudo mysql
create user '<username>'@'localhost' identified by 'RANMA';
grant all on <dbname>.* to '<username>'@'localhost';
- Test new user access
mysql -u <username> -p
show databases;
rsync -arvz <local_path>/ <ssh_user>@<ssh_host>:/var/www/example.com/htdocs
sudo chown -R www-data:www-data /var/www/example.com
sudo chmod -R 775 /var/www/example.com/htdocs
- Edit wp-config.php and change database settings
- Edit Caddyfile to replicate Wordpress .htaccess setup
example.com {
root /var/www/example.com/htdocs
log /var/www/example.com/logs/access.log
fastcgi / /var/run/php/php7.2-fpm.sock php
rewrite {
ext !.css !.js !.ttf !.woff
if {path} not_match ^\/wp-admin
to {path} {path}/ /index.php?{query}
}
}
- Restart Caddy
sudo systemctl restart caddy