Sitio web de PHP, ¿debería desarrollarme en una distribución de Linux en lugar de Windows?

StackOverflow https://stackoverflow.com/questions/175425

  •  05-07-2019
  •  | 
  •  

Pregunta

En pocos meses empiezo un proyecto en PHP y estoy dudando en hacerlo como de costumbre: desarrollar en mi máquina Windows Vista 64bits. Como sé algunas cosas sobre Linux, creo que puede ser una buena forma de aprender trabajando en una distribución de Linux.

¿Crees que es una buena idea o no? Ejecutaría un VirtualBox con Ubuntu (en mi Vista64bits). Estaba pensando en instalar XAMPP para poder desarrollar en PHP.

Si crees que es una buena idea, no dudes en sugerirme algunos tutoriales sobre lo que debería saber con Virtualizing a OS, o Linux / dev.

Actualizar He creado muchos sitios web en PHP con Windows, la pregunta es si es una buena manera de comenzar a aprender Linux al desarrollarlo a través de una máquina virtual. Tengo 4 gigas de rams, ¿será fácil si instalo Eclipse en la Máquina Virtual? etc.

¿Fue útil?

Solución

Deberías realmente desarrollarte en la misma plataforma donde vas a implementar. No digo que sea malo hacerlo de manera diferente, pero a la larga puede ahorrarle algo de dolor. OTOH, podrías aprender más rápido sobre las diferencias de plataforma de esa manera. Entonces, la pregunta principal es: ¿quieres tener un sistema de producción que funcione lo antes posible sin mucho dolor de cabeza? O, ¿quieres pasar un tiempo y hacer un esfuerzo para aprender cómo desarrollar cosas multiplataforma?

Y sí, hay diferencias. Por ejemplo, nombres de archivos sensibles a mayúsculas y minúsculas. Luego, algunas funciones PHP usan funciones C nativas que tienen diferentes implementaciones. Por ejemplo, printf () no produce la misma cantidad de espacios en blanco para algunos de los tipos. La resolución de la medida del tiempo (milisegundos frente a microsegundos) puede ser diferente, etc. Luego, tiene diferentes maneras en que se manejan los permisos del sistema de archivos. Estos son solo algunos de los problemas recientes que encontré y que puedo recordar de la cabeza.

Otros consejos

PHP debería ser el mismo en cualquier plataforma, por lo que donde usted desarrolla no debería importar.

Sin embargo, en mi experiencia y observación, hay más sitios que ejecutan PHP en Linux que en Windows.

Obtener la configuración de Apache y PHP en algo como Ubuntu o Fedora es muy fácil, y probar todo también es bastante simple.

Además, cuando inicies en vivo con tu sitio, ¿en qué plataforma se ejecutará? Prefiero hacer el desarrollo en la plataforma en la que se ejecutará siempre que sea posible.

Personalmente, no creo que para la producción local debas usar una máquina virtual. ¿Estaría ejecutando su IDE dentro de la máquina virtual también?

Si está al tanto de las dificultades de moverse entre los entornos de Windows y Linux (como la sensibilidad a las mayúsculas y los permisos), no debería tener problemas para desarrollar en Windows y para implementar en Linux.

Definitivamente, trabajar en una distribución de Linux es la forma más fácil de aprenderlo. Y configurar algunos servidores y hacer algunos trabajos de desarrollo es un excelente comienzo.

Virtualizar Linux también es muy fácil. Lo he hecho unas cuantas veces y es muy obvio. Además, ir de esta manera te facilitará el uso de Linux, mucho mejor que solo saltar y descubrir que tu tarjeta inalámbrica no es compatible como lo hice yo :)

En cuanto al desarrollo de PHP en Linux ... He hecho algunos códigos PHP en Windows y en Linux y puedo decirles que hay muy poca diferencia entre los dos. Uso Eclipse en ambas plataformas y Apache & amp; MySQL / XAMPP. La única diferencia importante que he visto es que Linux es mucho más meticuloso en cuanto a permisos y casos.

PHP es no el mismo en todas las plataformas, y hasta hace poco las versiones de Windows tenían problemas que no se encontraban en las versiones de Linux. Muchas características útiles son * nix específicas.

Me gustaría hacer eco de los sentimientos de @ Milan sobre el desarrollo en el entorno de implementación. También aprendes mucho más sobre el entorno de implementación al hacerlo.

En el problema de la máquina virtual, si desea que todas sus herramientas de Windows y su máquina de Windows, configure un servidor de Linux en su máquina virtual (puede tener una GUI si lo desea, pero principalmente utilízalo como servidor). Configúrelo para que Windows pueda ver la instalación de apache que se ejecuta en su máquina virtual y utilice los recursos compartidos de samba para acceder a los archivos de vm como una unidad en Windows. De esa manera, usted desarrolla en Windows pero está probando la implementación / configuración en un servidor Linux en ejecución. Mientras que dos desarrolladores en mi tienda ejecutan Ubuntu, un tercero necesita usar Photoshop y varios otros bits de software de Windows todo el tiempo, así que usa este método para ejecutar un servidor en una máquina virtual pero para desarrollar desde Windows.

Ah, y si estás ejecutando Linux, ¡no uses XAMPP! Unos pocos comandos simples lo tendrán en funcionamiento y obtendrá una mejor comprensión de su implementación. XAMPP está bien, pero es para sistemas operativos que no tienen la administración de paquetes de Linux.

mientras XAMPP funciona bien, ejecutar Apache y PHP en Linux es un hecho; mientras que en Windows es algo extra que tienes que hacer ... y soporte. Además, la mayoría de las partes de la pila están mucho más optimizadas y maduras para un entorno POSIX. El rendimiento del motor de la base de datos es particularmente sensible a los primitivos disponibles.

La mayoría de los OSS se ejecutan en Windows, pero es una clavija redonda golpeada en un agujero cuadrado.

En principio, desaconsejaría " aprender haciendo " en un proyecto real, a menos que sea realmente pequeño, o si ha realizado proyectos muy similares anteriormente, de modo que la curva de aprendizaje en los problemas relacionados con el proyecto no sea tan pronunciada. En ese caso, es posible que tenga recursos gratuitos para aprender sobre el entorno en desarrollo.

En general, me gusta más el entorno Linux que Windows. Principalmente porque se proporcionan todas las herramientas CLI que necesitaría y Bash beats cmd.ext en cualquier momento. Pero con Cygwin creo que incluso Windows es un entorno de desarrollo cómodo.

En cuanto al desarrollo de PHP, realmente no puedo ver cómo sería muy diferente. Tal vez haya algún beneficio en forzarse a hacer que el código sea más portátil (cosas como finales de línea, barras diagonales en los nombres de archivo y demás) si usa sistemas de caseta.

Como escritorio o estación de trabajo, no hay mucha diferencia entre los dos. Encuentro que las mayores diferencias se encuentran en la forma de administrarlas, pero espero que haya otras personas que lo hagan por usted.

En mi opinión, no es necesario desarrollarse en una distribución de Linux. El desarrollo web se puede hacer desde cualquier sistema operativo. No sé, ¿por qué estás programando para la web ... como profesional? para tu página personal? Creo que es suficiente tener algo de espacio web gratuito para ejecutar un servidor PHP y cargar tus archivos allí ... no te toma mucho tiempo y hay menos cosas que administrar.

un estudiante alemán;)

Utilice el sistema operativo que ejecutará su servidor de implementación, y es muy probable que sea Linux. Recientemente he visto que una implementación se ha ido muy mal porque se desarrolló utilizando wampserver y se implementó en CentOS. Con grandes diferencias en la configuración de apache y PHP. Conozca su servidor de implementación y cópielo lo más cerca posible.

Intente crear un entorno de desarrollo utilizando VmWare Player. Tengo varios entornos Linux que ejecuto en mi computadora portátil Vista. También podría simplemente arranque dual. Yo uso Ubuntu, es fácil.

El efecto secundario del desarrollo dentro de una VM: más sobrecarga y, finalmente, las necesidades de herramientas adicionales para hacer que el desarrollo sea más cómodo. A menudo, las personas necesitan herramientas especiales para su desarrollo como Photoshop o algunas herramientas de diseño vectorial que no están disponibles en Linux. Si la copia de trabajo del proyecto está dentro de la máquina virtual, tiene sentido tener un acceso fácil a él. Así que configurará SAMBA (que a menudo genera problemas con el inicio de sesión desde XP) o configura SSL (SFTP) / FTP. También debe aprender a usar la red con la VM (NAT, puenteo, reenvío de puertos).

En el otro lado, el desarrollo en otra plataforma como objetivo puede dar un poco de dolor de cabeza. Me encontré a menudo confundido con los archivos .htaccess para la protección de contraseña, debido a la ruta diferente en Windows / Linux. Si olvida cambiar estas entradas más adelante en el servidor de producción, tiene un problema ...

Una mejor solución: utiliza lo mejor de ambos mundos. Una VM finalmente se ejecutó sin cabeza (sin gui, más como un " servidor remoto ") con Ubuntu / Debian / FreeBSD) y solo ejecuta los servidores necesarios (Apache, MySQL, FTP, SSH ...).

Eclipse u otras herramientas de desarrollo en Windows / Mac.

5 años después: mi opinión es utilizar la solución Linux. Hay muchas ventajas para usar PHP en Linux. La razón principal es el nivel de ayuda disponible de la comunidad. PHP también parece estar optimizado para entornos Linux.

También hay seguridad en cuanto a los números, ya que una gran cantidad de sitios se hospedan y se ejecutan con las soluciones LAMP. Existe una amplia gama de marcos y CMS que se ejecutan mejor en Linux con Apache2.

Haz tu vida más fácil y comienza a aprender PHP de inmediato.

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