Pregunta

Después de convertirme en una fuente abierta un tanto separada, y pasar algunos años desarrollando aplicaciones web en ASP.Net, comenzaré a desarrollar bastante PHP / MySQL.

Instalé sin problemas WampServer para poner en marcha un entorno de desarrollo en mi máquina Windows, pero la plataforma a la que apuntaré probablemente sea Linux. Entonces mi pregunta es, ¿es probable que tenga problemas debido al desarrollo en Windows mientras apunto a Linux? ¿Es aconsejable invertir en la configuración de un entorno Linux para desarrollar mis aplicaciones LAMP?

¿Fue útil?

Solución

Si puedes, invertiría en algún tipo de entorno de desarrollo de Linux, o al menos * nix. Para aplicaciones y sitios web simples, su configuración está bien, pero eventualmente se encontrará con diferencias sutiles cuando implemente.

Aquí hay algunas cosas fuera de mi cabeza que querrás tener en cuenta si te quedas con tu entorno de Windows.

  1. Rutas de archivo. Muchas funciones PHP toman rutas de archivos como argumentos. NO use el separador de barra diagonal inversa () de Windows. Aunque esté en Windows, PHP le permitirá usar un separador de barra diagonal. Idealmente abstraiga esto con su propia clase de ruta de archivo.

  2. Módulos Apache, Extensiones PECL. Apache Windows y Apache Unix a menudo vienen con un conjunto diferente de módulos Apace instalados de forma predeterminada. Además, la misma versión de un módulo puede ejecutarse de manera diferente en una plataforma diferente. Si su aplicación se basa en el módulo apache any , asegúrese de que esté disponible para ambas plataformas. Lo mismo ocurre con las extensiones personalizadas de PHP (PECL)

  3. Proceso de bifurcación. Para empezar, usar exec, `, etc. en una aplicación web es una mala idea, pero si usa estas funciones, se comportarán de manera diferente entre Windows y * nix

  4. La escritura, bloqueo, etc. de archivos funciona de manera diferente

  5. El correo electrónico se maneja de manera diferente en ambas plataformas

  6. La palabra de código del grupo PHP para Windows es " algunas plataformas " ;. Puede buscar más por su cuenta si desea

En general, cuanto más se acerque su entorno de desarrollo a su entorno de producción, menos problemas relacionados con el entorno / implementación tendrá.

¡Espero que eso ayude!

Otros consejos

Lo he estado haciendo durante los últimos años y aún no he tenido ningún problema; en todo caso, le da una ventaja al obligarlo a escribir más código portátil.

Los permisos y el hecho de que en Windows los nombres de archivo no distinguen entre mayúsculas y minúsculas son las dos cosas en las que puedo pensar que han sido un dolor para mí. Pero son

  1. Soluble, en el peor de los casos, con un cliente ftp para cambiar los permisos.
  2. Buenas y fáciles formas de convertirte en un mejor programador (en pequeña medida, sí).

No, el desarrollo en wamp y el funcionamiento con la lámpara deberían estar bien, pero al menos en la etapa de la lámpara. He ido en ambos sentidos sin muchos problemas (ok, solía haber un montón de problemas al implementar sitios empresariales en WAMP (no intentes usar el filtro ISAPI de PHP) pero ahora se pueden resolver (fastcgi)). Mientras no esté agregando ningún módulo PECL que indique que no son compatibles con Windows, no debería tener ningún problema. Además (dado que está diciendo que está usando WAMP, supongo que está usando MySql), mssql y PHP tienen muchos problemas (el controlador antiguo que requiere limita seriamente la duración de su consulta).

En teoría, PHP y MySQL deberían ser completamente independientes de la plataforma.

En la práctica, si va a tener una aplicación de producción real, le sugiero que tenga un entorno de prueba que refleje el de producción, para evitar sorpresas.

Sí, recomendaría desarrollar en un entorno lo más cercano posible a su entorno de producción. Existen diferencias entre cómo funciona PHP en Windows en comparación con Linux. Y otras diferencias, como la forma en que Linux maneja los permisos de archivos en comparación con Windows. Ejecuto el servidor VMWare gratuito con una máquina virtual Linux. Tengo un recurso compartido de Samba en la máquina virtual Linux que monté como una unidad de red en Windows. Luego uso Eclipse en Windows como mi editor de código.

No, porque prácticamente lo único que no puedes hacer en WAMP si apuntas a LAMP es usar Sistema () / Exec Llamadas, y generalmente eso es algo bueno porque deberían usarse con muy poca frecuencia.

Vale la pena tener un sandbox LAMP para que pueda saber dónde encontrar y cómo editar archivos de configuración, sentirse cómodo reiniciando servicios, manejando trabajos programados, etc., si va a tener que lidiar con estas tareas en producción.

No.
Las carpetas compartidas de VirtualBox + deberían ser útiles si tiene alrededor de 6-8 horas libres en un fin de semana para aclarar todos los conceptos básicos de VBox y resolver los ajustes. Si cambia a Linux, el proceso puede demorar hasta un mes y será altamente improductivo en ese momento, en términos de código de producción.
Es una buena idea seguir practicando Linux en VBox para Windows, antes de cambiar, usando uno de [PCLinuxOS, CentOS, OpenSuse, Ubuntu]. Prefiero CentOS, PCLinuxOS. Hay una gema llamada SLAMPP y otra belleza llamada XAMPP & Lt; funciona en Linux y Windows.
IMO, como una estimación aproximada, si espera codificar 2000-3000 líneas de código (que usted escribe / agrega) por proyecto, durante 6 meses a 1 año, quédese con Windows y domine Linux mientras usa VBox.
Si está por encima de eso, o si planea crear un nuevo sitio web LAMP, creo que debería cambiar a Linux primero. Tómate un mes más para acostumbrarte a Linux. Todavía puede barajar con arranque dual o VBox durante el tiempo que desee, comenzando lo antes posible; aprender Linux lo suficiente como para depurar una aplicación LAMP lleva tiempo.

Caminos, cuidado con los caminos. Puede construir un cms completo y se estropearía debido a las rutas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top