Goal
Step-through and validate bash-scripts/create-site.sh against a fresh site on the bootstrapped test host, confirming each step_* function works as designed and is idempotent.
Scope
- Run each
step_* independently (same approach as bootstrap validation)
- Record expected vs actual post-conditions
- Note any idempotency failures or latent assumptions
- Deliver patches if needed, then mark steps ✓
Steps to validate
step_create_dirs — directory tree + ownership + permissions
step_clone_repo — SSH deploy key + git clone as ubuntu
step_create_database — RDS DB + user + REQUIRE SSL + connection verify
step_credentials_file — .credentials mode 600
step_wp_config — wp-config.php via WP-CLI, proxy fix, RDS SSL, site URLs
step_apache_vhost — vhost written + enabled
step_php_fpm_pool — FPM pool written
step_reload_services — apachectl configtest + reload both services
step_fix_permissions — inline fallback (ct-fix-perm not installed yet)
step_summary — readable output
Definition of done
- All 10 steps show ✓ in the validation table
- Full script re-run is idempotent
- Any patches shipped in a follow-up PR
Goal
Step-through and validate
bash-scripts/create-site.shagainst a fresh site on the bootstrapped test host, confirming eachstep_*function works as designed and is idempotent.Scope
step_*independently (same approach as bootstrap validation)Steps to validate
step_create_dirs— directory tree + ownership + permissionsstep_clone_repo— SSH deploy key + git clone as ubuntustep_create_database— RDS DB + user + REQUIRE SSL + connection verifystep_credentials_file— .credentials mode 600step_wp_config— wp-config.php via WP-CLI, proxy fix, RDS SSL, site URLsstep_apache_vhost— vhost written + enabledstep_php_fpm_pool— FPM pool writtenstep_reload_services— apachectl configtest + reload both servicesstep_fix_permissions— inline fallback (ct-fix-perm not installed yet)step_summary— readable outputDefinition of done