Toda la parte del entorno de desarrollo, PHP, Apache, mySQL, plugins, etc esta mas que bien explicada por Fabio, lo que yo voy a agregar es como hacer para que puedas probar tu WEB con el dominio final para que el desarrollo sea con las mismas características que el hosting final. Me refiero a que puedas probar tu trabajo escribiendo http://dominio.com y nó http://127.0.0.1/
Esto es muy util para no tener que cambiar ningún path luego del desarrollo dentro de nuestro html o en la base de datos. Si estas leyendo esto es por que algo sabes del tema así que no voy a profundizar en cosas como ubicación de archivos y esas cosas. Si necesitas saber algo extra googlealo o pregunta en los comentarios.
Lo primero que vamos a hacer es crear un host virtual en apache. Como yo uso mac van a encontrar los paths referidos a mis archivos, ustedes los cambian a gusto.
Editamos el archivo con la configuracion de Apache, httpd.conf y agregamos al final esta linea.
Include /Applications/MAMP/conf/apache/sites
Lo que hace es indicarle a apache que agregue a la configuración el contenido del archivo «sites«. Una vez hecho esto creamos el archivo «sites» y dentro ponen lo siguiente.
<virtualhost *:80>
ServerName dominio.com
ServerAlias www.dominio.com
DocumentRoot "/Users/Cris/Documents/webs/dominio.com"
</virtualhost>
Con esto estamos creando un host virtual para dominio.com, puerto 80. Si usan otro puerto lo cambian. La ubicación de los archivos html esta dada por la linea DocumentRoot, por supuesto lo cambian a gusto. Reinicien apache.
Por ultimo le tenemos que decir al sistema que dominio.com lo busque en nuestra maquina y no en Internet. Para ellos editamos el archivo HOSTS y buscamos una linea que dice 127.0.0.1 localhost y la cambiamos por lo del recuadro. En windows generalmente hay que reniciar para que los cambios de hosts entren en efecto.
127.0.0.1 localhost dominio.com www.dominio.com
Listo, acá le acabamos de indicar a nuestra pc que dominio.com o www.dominio.com tiene que ser ubicado localmente y no en internet. Espero que alguien encuentre esto util o interesante a mi me ha aliviado bastantes molestias a la hora de probar/desarrollar themes para wordpress.