¿Por qué debería usar Unix para PHP para el desarrollo?

Depende del tipo de desarrollo que esté haciendo. Si su proyecto es muy complejo, es mejor tener un entorno de producción. Puede ser una máquina virtual o su máquina host.

Es más simple hacer que su máquina host sea la distribución correcta, pero cuanto más compleja sea su base de código, más quiere igualar exactamente la producción. Tengo experiencia en encontrar una pequeña diferencia en una diferencia de versión menor (por ejemplo: 5.3.22 vs 5.3.45). Es más fácil hacer coincidir todas las versiones exactamente en una máquina virtual. Las máquinas anfitrionas tienden a ser descuidadas debido a que se utilizan para otros proyectos.

He descubierto que Windows es un entorno sustancialmente más lento que Linux o Mac. Actualmente estoy siendo flojo con algunos proyectos simples, ejecutando mi entorno local en Windows en lugar de una VM. Estoy bastante seguro de que los paquetes Apache y MySQL no se han optimizado para ejecutarse en Windows. Definitivamente puedo decir que IIS ejecuta PHP más lento que Apache o Nginx. Definitivamente lo notarás cuando vayas entre los dos.

Es mucho más fácil de desarrollar cuando el terminal Linux está disponible. Viene con muchas características que hacen la vida más fácil. Algunos favoritos:

redis-cli flushall
mysql nombre_bd <db_dump.sql
archivo de registro grep “ERROR”
ln -s local-config.php ../config.php

Puede hacer tanto en Linux de forma nativa que requiere una gran cantidad de trabajo para configurar en Windows, que generalmente requiere reinicios múltiples.

Bueno, Unix es solo un sistema operativo, por lo que depende totalmente de usted qué herramientas está utilizando para automatizar y optimizar su aplicación. Sí, algunos factores también son importantes con respecto al sistema operativo, como el consumo de memoria, la configuración de VM VM, las creaciones de servidores virtuales, etc., si es necesario en la aplicación.

Si el sitio se va a ejecutar en un servidor Unix, debe desarrollarse en un cuadro de Unix, pero si se va a ejecutar en un servidor de Windows, desarrollarlo en un cuadro de Unix es una de las malas ideas del mundo. (Por ejemplo, si está ejecutando PHP 5, ¿cómo obtiene un registro MX? Funciona bien en su cuadro de desarrollo, luego no hace nada en su sitio en vivo).

Desarrolle en el sistema en el que se ejecutará el sitio en vivo.

Las principales razones por las que prefiero Linux sobre Windows para el desarrollo web es trabajar con programas de nivel de sistema operativo en Windows (cron, shell, etc.), así como los programas comunes de Linux, como las aplicaciones de correo, pueden ser un verdadero PITA para configurar y / o encontrar una alternativa de Windows.

Además, muchas cosas son más fáciles en un terminal Linux.

Finalmente, es mejor que su entorno de desarrollo coincida con el sitio web lo más cerca posible, y eso generalmente significa un servidor Linux.

Porque es más probable que su sitio web se implemente y se aloje en un servidor que ejecute Linux o Unix. Si planea hacer alguna manipulación de archivos desde sus scripts PHP, probablemente tendrá menos sorpresas como rutas no resueltas. Además, en Windows, algunos editores también pueden guardar sus scripts php con una codificación diferente de UTF-8, y también causarían algunos problemas. Dicho esto, si eres consciente y manejas perfectamente todos esos problemas, desde mi punto de vista, no hay ninguna razón por la que no puedas desarrollar en Windows o Macos.

(… MacOS es Unix.)

Solo usa lo que funciona para ti.

Sin embargo, una vez que el proyecto supera una cierta complejidad, es posible que esté mejor con sistemas con administradores de paquetes. Y Unix siempre fue diseñado como un entorno de programador.

Como dice Toby Thain, Mac OS X * es * un UNIX. GNU / Linux es * no * un UNIX, si eso es lo que estabas pensando.

Sin embargo, en última instancia, no importa, personalmente solo trabajo en la plataforma de destino, si voy a implementar en Linux, desarrollaré en Linux, si voy a implementar en Mac, Windows, Solaris, IBM i, o lo que sea, desarrollaré sobre eso.

Debe ejecutar una máquina virtual que coincida lo más posible con la producción. De esta forma no se topará con problemas entre las diferencias entre entornos.

Codifico en Mac pero siempre ejecuto un vm (la mayoría de las instalaciones de php parecen ejecutar centOS en producción) con eso para asegurarme de que no me encuentro con caprichos después de implementar

Supongo que por “Unix” te refieres a Unix como os, como linux / bsd / mac?

Si es así, sí, definitivamente use uno de esos.