docs: Add comprehensive deployment guide
📝 Created DEPLOYMENT_GUIDE.md: - Step-by-step server deployment process - Cache clearing procedures (OPcache, WordPress, Browser) - File verification commands - Endpoint testing procedures - Common issues & solutions - Verification checklist - Rollback procedure - Production checklist 🎯 Covers All Common Issues: 1. SPA not loading (dev mode detection) 2. API 500 errors (namespace case) 3. WordPress media not loading (standalone) 4. Changes not reflecting (cache layers) ✅ Ready for Server Deployment!
This commit is contained in:
234
DEPLOYMENT_GUIDE.md
Normal file
234
DEPLOYMENT_GUIDE.md
Normal file
@@ -0,0 +1,234 @@
|
|||||||
|
# Deployment Guide
|
||||||
|
|
||||||
|
## Server Deployment Steps
|
||||||
|
|
||||||
|
### 1. Pull Latest Code
|
||||||
|
```bash
|
||||||
|
cd /home/dewepw/woonoow.dewe.pw/wp-content/plugins/woonoow
|
||||||
|
git pull origin main
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Clear All Caches
|
||||||
|
|
||||||
|
#### WordPress Object Cache
|
||||||
|
```bash
|
||||||
|
wp cache flush
|
||||||
|
```
|
||||||
|
|
||||||
|
#### OPcache (PHP)
|
||||||
|
Create a file `clear-opcache.php` in plugin root:
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
if (function_exists('opcache_reset')) {
|
||||||
|
opcache_reset();
|
||||||
|
echo "OPcache cleared!";
|
||||||
|
} else {
|
||||||
|
echo "OPcache not available";
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Then visit: `https://woonoow.dewe.pw/wp-content/plugins/woonoow/clear-opcache.php`
|
||||||
|
|
||||||
|
Or via command line:
|
||||||
|
```bash
|
||||||
|
php -r "opcache_reset();"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Browser Cache
|
||||||
|
- Hard refresh: `Ctrl+Shift+R` (Windows/Linux) or `Cmd+Shift+R` (Mac)
|
||||||
|
- Or clear browser cache completely
|
||||||
|
|
||||||
|
### 3. Verify Files
|
||||||
|
```bash
|
||||||
|
# Check if Routes.php has correct namespace
|
||||||
|
grep "use WooNooW" includes/Api/Routes.php
|
||||||
|
|
||||||
|
# Should show:
|
||||||
|
# use WooNooW\Api\PaymentsController;
|
||||||
|
# use WooNooW\Api\StoreController;
|
||||||
|
# use WooNooW\Api\DeveloperController;
|
||||||
|
# use WooNooW\Api\SystemController;
|
||||||
|
|
||||||
|
# Check if Assets.php has correct is_dev_mode()
|
||||||
|
grep -A 5 "is_dev_mode" includes/Admin/Assets.php
|
||||||
|
|
||||||
|
# Should show:
|
||||||
|
# defined('WOONOOW_ADMIN_DEV') && WOONOOW_ADMIN_DEV === true
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Check File Permissions
|
||||||
|
```bash
|
||||||
|
# Plugin files should be readable
|
||||||
|
find . -type f -exec chmod 644 {} \;
|
||||||
|
find . -type d -exec chmod 755 {} \;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Test Endpoints
|
||||||
|
|
||||||
|
#### Test API
|
||||||
|
```bash
|
||||||
|
curl -I https://woonoow.dewe.pw/wp-json/woonoow/v1/store/settings
|
||||||
|
```
|
||||||
|
|
||||||
|
Should return `200 OK`, not `500 Internal Server Error`.
|
||||||
|
|
||||||
|
#### Test Admin SPA
|
||||||
|
Visit: `https://woonoow.dewe.pw/wp-admin/admin.php?page=woonoow`
|
||||||
|
|
||||||
|
Should load the SPA, not show blank page or errors.
|
||||||
|
|
||||||
|
#### Test Standalone
|
||||||
|
Visit: `https://woonoow.dewe.pw/admin`
|
||||||
|
|
||||||
|
Should load standalone admin interface.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Common Issues & Solutions
|
||||||
|
|
||||||
|
### Issue 1: SPA Not Loading (Blank Page)
|
||||||
|
|
||||||
|
**Symptoms:**
|
||||||
|
- Blank page in wp-admin
|
||||||
|
- Console errors about `@react-refresh` or `localhost:5173`
|
||||||
|
|
||||||
|
**Cause:**
|
||||||
|
- Server is in dev mode
|
||||||
|
- Trying to load from Vite dev server
|
||||||
|
|
||||||
|
**Solution:**
|
||||||
|
```bash
|
||||||
|
# Check wp-config.php - remove or set to false:
|
||||||
|
define('WOONOOW_ADMIN_DEV', false);
|
||||||
|
|
||||||
|
# Or remove the line completely
|
||||||
|
```
|
||||||
|
|
||||||
|
### Issue 2: API 500 Errors
|
||||||
|
|
||||||
|
**Symptoms:**
|
||||||
|
- All API endpoints return 500
|
||||||
|
- Error: `Class "WooNooWAPIPaymentsController" not found`
|
||||||
|
|
||||||
|
**Cause:**
|
||||||
|
- Namespace case mismatch
|
||||||
|
- Old code cached
|
||||||
|
|
||||||
|
**Solution:**
|
||||||
|
```bash
|
||||||
|
# 1. Pull latest code
|
||||||
|
git pull origin main
|
||||||
|
|
||||||
|
# 2. Clear OPcache
|
||||||
|
php -r "opcache_reset();"
|
||||||
|
|
||||||
|
# 3. Clear WordPress cache
|
||||||
|
wp cache flush
|
||||||
|
|
||||||
|
# 4. Verify namespace fix
|
||||||
|
grep "use WooNooW\\\\Api" includes/Api/Routes.php
|
||||||
|
```
|
||||||
|
|
||||||
|
### Issue 3: WordPress Media Not Loading (Standalone)
|
||||||
|
|
||||||
|
**Symptoms:**
|
||||||
|
- "WordPress Media library is not loaded" error
|
||||||
|
- Image upload doesn't work
|
||||||
|
|
||||||
|
**Cause:**
|
||||||
|
- Missing wp.media scripts
|
||||||
|
|
||||||
|
**Solution:**
|
||||||
|
- Already fixed in latest code
|
||||||
|
- Pull latest: `git pull origin main`
|
||||||
|
- Clear cache
|
||||||
|
|
||||||
|
### Issue 4: Changes Not Reflecting
|
||||||
|
|
||||||
|
**Symptoms:**
|
||||||
|
- Code changes don't appear
|
||||||
|
- Still seeing old errors
|
||||||
|
|
||||||
|
**Cause:**
|
||||||
|
- Multiple cache layers
|
||||||
|
|
||||||
|
**Solution:**
|
||||||
|
```bash
|
||||||
|
# 1. Clear PHP OPcache
|
||||||
|
php -r "opcache_reset();"
|
||||||
|
|
||||||
|
# 2. Clear WordPress object cache
|
||||||
|
wp cache flush
|
||||||
|
|
||||||
|
# 3. Clear browser cache
|
||||||
|
# Hard refresh: Ctrl+Shift+R
|
||||||
|
|
||||||
|
# 4. Restart PHP-FPM (if needed)
|
||||||
|
sudo systemctl restart php8.1-fpm
|
||||||
|
# or
|
||||||
|
sudo systemctl restart php-fpm
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Verification Checklist
|
||||||
|
|
||||||
|
After deployment, verify:
|
||||||
|
|
||||||
|
- [ ] Git pull completed successfully
|
||||||
|
- [ ] OPcache cleared
|
||||||
|
- [ ] WordPress cache cleared
|
||||||
|
- [ ] Browser cache cleared
|
||||||
|
- [ ] API endpoints return 200 OK
|
||||||
|
- [ ] WP-Admin SPA loads correctly
|
||||||
|
- [ ] Standalone admin loads correctly
|
||||||
|
- [ ] No console errors
|
||||||
|
- [ ] Dashboard displays data
|
||||||
|
- [ ] Settings pages work
|
||||||
|
- [ ] Image upload works
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Rollback Procedure
|
||||||
|
|
||||||
|
If deployment causes issues:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Check recent commits
|
||||||
|
git log --oneline -5
|
||||||
|
|
||||||
|
# 2. Rollback to previous commit
|
||||||
|
git reset --hard <commit-hash>
|
||||||
|
|
||||||
|
# 3. Clear caches
|
||||||
|
php -r "opcache_reset();"
|
||||||
|
wp cache flush
|
||||||
|
|
||||||
|
# 4. Verify
|
||||||
|
curl -I https://woonoow.dewe.pw/wp-json/woonoow/v1/store/settings
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Production Checklist
|
||||||
|
|
||||||
|
Before going live:
|
||||||
|
|
||||||
|
- [ ] All features tested
|
||||||
|
- [ ] No console errors
|
||||||
|
- [ ] No PHP errors in logs
|
||||||
|
- [ ] Performance tested
|
||||||
|
- [ ] Security reviewed
|
||||||
|
- [ ] Backup created
|
||||||
|
- [ ] Rollback plan ready
|
||||||
|
- [ ] Monitoring in place
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
If issues persist:
|
||||||
|
1. Check error logs: `/home/dewepw/woonoow.dewe.pw/wp-content/debug.log`
|
||||||
|
2. Check PHP error logs: `/var/log/php-fpm/error.log`
|
||||||
|
3. Enable WP_DEBUG temporarily to see detailed errors
|
||||||
|
4. Contact development team with error details
|
||||||
Reference in New Issue
Block a user