fix ffmpeg
This commit is contained in:
146
README.md
146
README.md
@@ -27,6 +27,8 @@ Piattaforma completa per vendere videolezioni e lezioni live di Pilates. Svilupp
|
||||
- **Gestione utenti** (visualizza, blocca/sblocca, statistiche acquisti)
|
||||
- **Storico acquisti** con dettagli pagamenti PayPal e grafici
|
||||
- **Report e analisi** vendite con totali formattati
|
||||
- **Profilo amministratore** con cambio password e test invio email
|
||||
- **Conversione video** automatica in formato web-compatible (MP4 H.264)
|
||||
|
||||
### Funzionalità Tecniche
|
||||
- ✅ **Sicurezza**: Password crittografate con bcrypt (PHP 8.1+ compatibile)
|
||||
@@ -39,12 +41,17 @@ Piattaforma completa per vendere videolezioni e lezioni live di Pilates. Svilupp
|
||||
- ✅ **Soft delete**: I dati eliminati non sono rimossi definitivamente
|
||||
- ✅ **Gestione errori**: Controllo null values per compatibilità PHP 8.1+
|
||||
- ✅ **Flash messages**: Sistema di messaggi temporanei per feedback utente
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Installazione
|
||||
- ✅ **Email benvenuto**: Invio automatico email alla registrazione
|
||||
- ✅ **Test email**: Strumento test SMTP nell'area admin
|
||||
- ✅ **Video protetti**: Streaming sicuro con protezione download
|
||||
- ✅ **Conversione video**: Automatica in MP4 H.264 per compatibilità browser
|
||||
|
||||
### Requisiti
|
||||
- **PHP** 7.4 o superiore (8.0+ raccomandato)
|
||||
- **MySQL** 5.7 o superiore (o MariaDB 10.3+)
|
||||
- **Web Server** (Apache, Nginx, o PHP built-in server per sviluppo)
|
||||
- **Account PayPal** Sandbox (per test) o Business (per produzione)
|
||||
- **FFmpeg** (opzionale, per conversione automatica video in MP4)
|
||||
- **PHP** 7.4 o superiore
|
||||
- **MySQL** 5.7 o superiore (o MariaDB 10.3+)
|
||||
- **Web Server** (Apache, Nginx, o PHP built-in server per sviluppo)
|
||||
@@ -194,11 +201,12 @@ Poi apri: `http://localhost:8000`
|
||||
## 📖 Guida all'Uso
|
||||
|
||||
### Per Amministratori
|
||||
|
||||
#### Primo Accesso
|
||||
1. Vai su `http://tuo-sito/login.php`
|
||||
2. Accedi con le credenziali di default
|
||||
3. Vai su "Area Admin" → "Profilo" e cambia la password
|
||||
4. Testa l'invio email usando il bottone "📨 Invia Email di Test" nel profilo admin
|
||||
3. Vai su "Area Admin" → "Profilo" e cambia la password
|
||||
|
||||
#### Creare una Nuova Lezione
|
||||
1. **Area Admin** → **Gestione Lezioni** → **Nuova Lezione**
|
||||
@@ -332,16 +340,18 @@ define('USE_SMTP', false); // In config.php
|
||||
|
||||
---
|
||||
|
||||
## 🎥 Hosting Video
|
||||
|
||||
### Opzione 1: File Locali (Upload Diretto) ⭐ **NUOVO**
|
||||
### Opzione 1: File Locali (Upload Diretto) ⭐ **RACCOMANDATO**
|
||||
1. Nella creazione/modifica lezione, seleziona **File Locale**
|
||||
2. Clicca su "Scegli file" e seleziona il video dal tuo PC
|
||||
3. Il sistema carica automaticamente il file in:
|
||||
- `uploads/lessons/demo/` per lezioni gratuite
|
||||
- `uploads/lessons/pay/` per lezioni a pagamento
|
||||
4. Formati supportati: MP4, WebM, OGG, MOV
|
||||
5. ✅ **Vantaggi**: Upload automatico, nessun inserimento manuale del path
|
||||
5. ✅ **Vantaggi**:
|
||||
- Upload automatico
|
||||
- Conversione automatica in MP4 se FFmpeg disponibile
|
||||
- Streaming protetto con divieto download
|
||||
- Controllo accessi basato su permessi utente
|
||||
6. ⚠️ Limiti: Dimensione massima upload dipende da `php.ini` (default ~2MB)
|
||||
|
||||
**Per aumentare il limite di upload:**
|
||||
@@ -352,6 +362,27 @@ post_max_size = 500M
|
||||
max_execution_time = 300
|
||||
```
|
||||
|
||||
**Conversione Automatica Video:**
|
||||
Se carichi video in formato diverso da MP4, il sistema:
|
||||
1. Verifica se FFmpeg è installato
|
||||
2. Converte automaticamente il video in MP4 H.264 con codec AAC
|
||||
3. Ottimizza per lo streaming web (fast start)
|
||||
4. Sostituisce il file originale con quello convertito
|
||||
|
||||
**Per installare FFmpeg:**
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt-get install ffmpeg
|
||||
|
||||
# CentOS/RHEL
|
||||
sudo yum install ffmpeg
|
||||
|
||||
# Mac
|
||||
brew install ffmpeg
|
||||
```t_max_size = 500M
|
||||
max_execution_time = 300
|
||||
```
|
||||
|
||||
### Opzione 2: YouTube (Consigliato per Video Grandi)
|
||||
1. Carica video su YouTube come **Non in elenco**
|
||||
2. Copia l'URL (es: `https://youtube.com/watch?v=ABC123`)
|
||||
@@ -378,18 +409,23 @@ define('AWS_BUCKET', 'pilates-videos');
|
||||
4. Usa URL S3 nelle lezioni
|
||||
|
||||
---
|
||||
### Checklist Produzione
|
||||
Prima di mettere online:
|
||||
|
||||
## 💳 Configurare PayPal
|
||||
|
||||
### Modalità Test (Sandbox)
|
||||
1. Vai su [developer.paypal.com](https://developer.paypal.com)
|
||||
2. Crea un'app Sandbox
|
||||
3. Copia Client ID e Secret in `config.php`
|
||||
4. Usa gli account test per simulare pagamenti
|
||||
|
||||
### Modalità Produzione (Reale)
|
||||
1. Vai su [paypal.com/businessmanage](https://www.paypal.com/businessmanage)
|
||||
2. Crea app Live
|
||||
- [ ] Cambia password admin di default
|
||||
- [ ] Cambia `SECRET_KEY` in `config.php`
|
||||
- [ ] Imposta `DEBUG_MODE` a `false`
|
||||
- [ ] Usa HTTPS (certificato SSL)
|
||||
- [ ] Limita permessi cartelle (755 per cartelle, 644 per file)
|
||||
- [ ] Backup regolari del database
|
||||
- [ ] Configura SMTP per email
|
||||
- [ ] Testa invio email con bottone nel profilo admin
|
||||
- [ ] Testa email di benvenuto alla registrazione
|
||||
- [ ] Converti tutti i video in MP4 H.264 (se necessario)
|
||||
- [ ] Testa streaming video protetto
|
||||
- [ ] Testa tutti i flussi di pagamento
|
||||
- [ ] Verifica che `includes/config.php` NON sia accessibile via web
|
||||
- [ ] **ELIMINA** `test_password.php` e `test_email.php` (rischio sicurezza!)
|
||||
3. Copia credenziali Live
|
||||
4. In `config.php`:
|
||||
```php
|
||||
@@ -417,12 +453,17 @@ Prima di mettere online:
|
||||
|
||||
### File .htaccess (per Apache)
|
||||
Crea `.htaccess` nella cartella `includes/`:
|
||||
```apache
|
||||
# Nega accesso a config.php
|
||||
<Files "config.php">
|
||||
Require all denied
|
||||
</Files>
|
||||
```
|
||||
### I video non si vedono
|
||||
- Verifica che l'URL sia corretto
|
||||
- Per YouTube/Vimeo: usa URL diretti al video
|
||||
- Per file locali caricati: controlla che esistano in `uploads/lessons/demo/` o `pay/`
|
||||
- Verifica permessi cartella uploads (755)
|
||||
- Per video grandi, verifica limiti upload in `php.ini`
|
||||
- **Se vedi schermo nero ma senti audio**: il video ha codec incompatibile
|
||||
- Vai su **Area Admin** → **🔄 Converti Video**
|
||||
- Converti il video in MP4 H.264
|
||||
- Oppure ricarica il video in formato MP4 già codificato correttamente
|
||||
- Verifica nella console browser (F12) eventuali errori di caricamento
|
||||
|
||||
---
|
||||
|
||||
@@ -506,10 +547,12 @@ pilates-platform/
|
||||
│ └── js/
|
||||
│ └── main.js # JavaScript
|
||||
│
|
||||
├── database/
|
||||
│ ├── schema.sql # Script creazione database
|
||||
│ └── reset_admin_password.sql # Reset password admin
|
||||
│
|
||||
├── process_payment.php # Elabora pagamento PayPal
|
||||
├── stream_video.php # Streaming protetto video (verifica permessi)
|
||||
├── convert_videos.php # Conversione batch video in MP4 H.264
|
||||
├── test_password.php # Utility test hash password (debug)
|
||||
├── test_email.php # Utility test invio email SMTP (debug)
|
||||
└── README.md # Questo file
|
||||
├── includes/ # File PHP condivisi
|
||||
│ ├── config.php # Configurazione
|
||||
│ ├── functions.php # Funzioni comuni
|
||||
@@ -570,25 +613,32 @@ MySQL è dove vengono salvati i dati:
|
||||
3. Utente paga
|
||||
4. PayPal conferma il pagamento
|
||||
5. `process_payment.php` registra l'acquisto nel DB
|
||||
### Checklist Prossimi Passi
|
||||
|
||||
### Dove Modificare il Codice?
|
||||
- **Aspetto grafico**: `assets/css/style.css`
|
||||
- **Comportamento**: File `.php` specifici
|
||||
- **Database**: Usa phpMyAdmin o client MySQL
|
||||
- **Impostazioni**: `includes/config.php`
|
||||
|
||||
---
|
||||
|
||||
## 📞 Supporto e Manutenzione
|
||||
|
||||
### Backup Database
|
||||
Esegui regolarmente (es: settimanalmente):
|
||||
```bash
|
||||
mysqldump -u root -p pilatesplatform > backup_$(date +%Y%m%d).sql
|
||||
```
|
||||
|
||||
### Aggiornare PHP
|
||||
Quando aggiorni PHP, testa la piattaforma in locale prima di aggiornare in produzione.
|
||||
Dopo l'installazione:
|
||||
- [ ] Cambia password admin (profilo o reset_admin_password.sql)
|
||||
- [ ] **Configura Gmail SMTP** (obbligatorio per recupero password)
|
||||
- [ ] Genera password applicazione Gmail
|
||||
- [ ] Inserisci credenziali SMTP in config.php
|
||||
- [ ] Testa invio email dal profilo admin
|
||||
- [ ] Testa recupero password
|
||||
- [ ] Testa email benvenuto registrazione
|
||||
- [ ] Installa FFmpeg (opzionale, per conversione video)
|
||||
- [ ] Configura PayPal Sandbox
|
||||
- [ ] Carica almeno 3 lezioni demo con video
|
||||
- [ ] Verifica che i video si vedano correttamente
|
||||
- [ ] Testa registrazione utente
|
||||
- [ ] Testa acquisto lezione (in sandbox)
|
||||
- [ ] Verifica streaming protetto video
|
||||
- [ ] Testa modifica lezioni esistenti
|
||||
- [ ] Personalizza colori e logo
|
||||
- [ ] Configura backup automatici database
|
||||
- [ ] Passa a produzione PayPal
|
||||
- [ ] Attiva HTTPS (certificato SSL)
|
||||
- [ ] Converti tutti i video in MP4 se necessario
|
||||
- [ ] **ELIMINA file di debug** (test_password.php, test_email.php)
|
||||
- [ ] Testa tutti i flussi su produzione
|
||||
- [ ] Lancia! 🚀PHP, testa la piattaforma in locale prima di aggiornare in produzione.
|
||||
|
||||
### Log Attività
|
||||
La tabella `activity_log` traccia:
|
||||
|
||||
Reference in New Issue
Block a user