2009-07-21 20 views

Respuesta

9

En su mayoría, pero hay algunas cosas a tener en cuenta:

  • Bajo * nix sistemas de nombres de ruta entre mayúsculas y minúsculas, y no en Windows.
  • En sistemas * nix, el separador de ruta es /. En Windows es \, pero PHP traduce / automáticamente. Utilice la constante DIRECTORY_SEPARATOR o siempre use /.
  • En sistemas * nix, el esquema de recorrido transversal es diferente. No hay tal cosa como una letra de unidad. Hay puntos de montaje en su lugar.
  • En sistemas * nix, los permisos de archivos son más estrictos que en Windows de forma predeterminada.
  • Algunas funciones no están disponibles en Windows o se comportan de manera diferente. Estos son principalmente para funciones de bajo nivel (estado de la memoria, estado del sistema). Consulte la documentación de PHP.
  • Si está utilizando exec() o cualquier otra función similar, los comandos no serán los mismos. Consulte la documentación de su sistema.

sobre Apache:

que puede pegarle a algunos inconvenientes en algún momento en un servidor utiliza PHP como un módulo y la otra se aplica como es a través de fcgi. Dos Apaches configurados de la misma manera se comportarán de la misma manera.

+0

Y también hay funciones que están disponibles en win32 pero no * nix, p. el módulo com/.net – VolkerK

+0

Además, algunas variables de $ _SERVER pueden diferir dependiendo de si PHP se ejecuta en Apache, que tiende a ser lo que nix usa como servidor HTTP e Internet Information Services (IIS), que es lo que Windows tiende a tener como servidor HTTP. – joebert

0

No debería importar dado que PHP es solo un idioma. Debería ser el mismo donde sea que vayas.

0

Sí ... Configurarlo puede ser un poco diferente, pero su uso es el mismo que el de un script.

2

Mientras no ejecute comandos del sistema exec o utilice rutas de archivos no válidas, la mayoría de las cosas deberían aparecer sin problemas. He estado usando PHP por un tiempo, desarrollando en una máquina con Windows y luego moviéndolo a una caja Linux, y no puedo pensar en nada con lo que haya tenido problemas.

1

La respuesta correcta es: "depende".

En su mayor parte, PHP funcionará igual en cualquier sistema operativo. Sin embargo, hay algunas advertencias, por lo general hay funciones que simplemente no funcionan en Windows. (por ejemplo, getrusage()). Encontrar bibliotecas de Windows para PHP también es bastante difícil a veces, desde la muerte de pecl4win (un sitio que contiene compilaciones de Windows de todas las bibliotecas PECL). Esto hace que agregar cosas como APC (Alternative PHP Cache) sea una tarea ardua.

Dicho esto, el manual de PHP está bien documentado con respecto a lo que no funciona en Windows.

+0

No he usado muchas librerías PECL, pero no he tenido problemas para encontrar las que necesitaba para Windows. Aunque, como dije, mi experiencia con PECL es limitada. –

+0

Sí, es impredecible. Desde que http://pecl4win.php.net/ cayó. Ha sido meh. Mi compañero de trabajo usa Win y tiene que buscar en google para encontrar dlls para muchas de las bibliotecas, y espero que estén compilados para su versión de PHP. – hobodave

+0

Parece que pecl4win no está fuera de servicio. Pero no sé cuánto tiempo han estado "preparando un nuevo sistema de compilación". –

3

voy a marcar esto como wiki de la comunidad, ya que sólo estoy copiando y pegando mi respuesta desde otro very similar thread:

Casi, pero no del todo. Hay un par de cosas que debes tener en cuenta.

1) Nombres de archivos: Windows es un sistema operativo que no distingue entre mayúsculas y minúsculas. Si creas un archivo Foo.php, puede incluirlo usando include('Foo.php') O include('foo.php'). Cuando mueva su proyecto a Linux/Unix, se romperá si no tiene el caso correcto.

2) Existen algunas diferencias de plataforma específicas del idioma, generalmente cuando se trata de algo que depende de la funcionalidad del sistema operativo integrado. Éstos rara vez aparecen, pero puede toparse con ellos ocasionalmente. Por ejemplo, la función checkdnsrr() no existía en Windows PHP hasta la versión 5.3.0.

3) instala. Los paquetes PHP que obtienes para Linux/Unix pueden ser muy amplios en lo que incluyen en una instalación predeterminada en comparación con Windows. Debes asegurarte de probar tu aplicación en una caja de desarrollo de la plataforma opuesta solo para asegurarte de tener compiladas/agregadas todas las bibliotecas requeridas, o obtendrás algunos buenos errores fatales de una aplicación que de otro modo sería normal.

0

Existen algunas diferencias, como otros usuarios notaron (no voy a repetir esas, ya hay grandes respuestas; el punto más molesto es la insensibilidad a mayúsculas y minúsculas en los archivos bajo Windows, en mi humilde opinión), así que si usando un servidor Linux para implementar su sitio en producción, podría ser útil probarlo en Linux de vez en cuando.

Si no quiere instalar Linux en su máquina y tiene una computadora lo suficientemente potente (al menos 2 núcleos y 2 GB de RAM, diría yo), puede usar una Máquina virtual, con una de los de software (ambos son gratuitos):

también va a ayudar a aprender algunos conceptos básicos sobre Linux - que no es un mal que hay que saber si usted está planeando haciendo PHP desarrollo profesionalmente, ya que Linux está lejos m mineral utilizado que Windows, cuando se trata de servidores web PHP.

Cuestiones relacionadas