puoi lavorare in locale (ovviamente devi avere un server web installato in locale per far girare il PHP).
Per il database puoi traseferirlo insieme al sito, via FTP per esempio, non devi ricrearlo.
Attenzione: prima di partire verifica cosa puoi fare col tuo server che ti ospiterà il sito: PHP o ASP o entrambi, componenti per le mail, ecc ecc.
Per quanto riguarda la seconda domanda: beh hai chiesto in un colpo solo una tonnellata di roba. Fatti una ricerca per i forum appositi (PHP / ASP) e trovi sicruramente di tutto e di più.