CHRISTY WINSLOW PHOTOGRAPHY — WEBSITE + ADMIN
Install guide for cPanel (PHP 8.1+ and MySQL)
==============================================

1. CREATE THE DATABASE (cPanel → MySQL Databases)
   - Create a database, e.g.  cpuser_cwp
   - Create a user with a strong password
   - Add the user to the database with ALL PRIVILEGES
   - Note the database name, user and password

2. CHECK PHP (cPanel → Select PHP Version / MultiPHP Manager)
   - PHP 8.1, 8.2 or 8.3
   - Extensions ticked: pdo_mysql, gd, mbstring, dom (usually on by default)

3. UPLOAD THE FILES (cPanel → File Manager)
   - Open public_html (or the domain's document root)
   - Upload the zip, then Extract it there, so index.php sits directly in public_html
   - Make sure the hidden files .htaccess, .user.ini, app/.htaccess and uploads/.htaccess
     were extracted (File Manager → Settings → "Show hidden files")

4. RUN THE INSTALLER
   - Visit https://christywinslowphotography.co.za/install.php
   - All server checks should show green ticks
   - Fill in the database details and Christy's login (smile@christywinslowphotography.co.za)
   - Click Install. The starter content, pages and photos are loaded automatically.

5. DELETE install.php  (File Manager → right-click → Delete). The dashboard reminds you.

6. TURN ON HTTPS
   - cPanel → SSL/TLS Status → Run AutoSSL (free certificate)
   - In public_html/.htaccess remove the "#" in front of the two "Force HTTPS" lines

7. EMAIL (so enquiries reach smile@ reliably)
   - cPanel → Email Accounts → create smile@christywinslowphotography.co.za if it doesn't exist
   - Click "Connect Devices" to see the SMTP server, port (465 SSL) and username
   - Admin → Settings → Email & enquiries → choose SMTP, enter those details, Save
   - Use "Send a test email" on the same screen

8. GOOGLE
   - Admin → Help has the step-by-step for Search Console, the sitemap and Google Business Profile


SIGNING IN
   https://christywinslowphotography.co.za/admin/


WHAT'S IN THE BOX
   index.php        Front controller — every page is rendered from the database
   admin/           The admin (Christy's back end)
   app/             Code, starter content (seed.json) and config.php after install — blocked from the web
   assets/          Website styles and scripts
   uploads/         Photos (resized + thumbnails) — scripts can't run here
   .htaccess        Clean web addresses, security headers, caching, HTTPS switch
   .user.ini        Raises upload/memory limits for large photos


BACKUPS
   cPanel → Backup (or JetBackup): back up BOTH the MySQL database and the uploads/ folder.
   Each page/post/theme also keeps its last 30 versions inside the admin (History → Restore).


MOVING / CHANGING THE DOMAIN
   Edit app/config.php → 'site_url'. Everything else follows automatically.


TROUBLESHOOTING
   - Blank page or "We'll be right back": set 'debug' => true in app/config.php to see the
     error, then set it back to false.
   - Photos won't upload: the admin shrinks photos in the browser first, so this is rare.
     Check that uploads/ is writable (permissions 755).
   - Enquiry emails not arriving: switch to SMTP (step 7) and send a test.
     Every enquiry is also saved under Admin → Enquiries, so nothing is lost.
