¿Está bien codificar PHP en Windows y alojarlo más tarde en un servidor con Linux? ¿Puede haber algún problema en la migración de tal proyecto?
Creo que realmente no puede haber ningún problema, especialmente porque soy un principiante en PHP y no usaré ninguna de las funciones avanzadas que pueden ser específicas del sistema operativo. Sin embargo, me gustaría asegurarme ya que realmente no me gusta Linux en absoluto.
Respuestas:
Algunos punteros:
Sistema de archivos de mayúsculas y minúsculas
Si su archivo se llama HelloWorld.php esto:
es legítimo en Windows y funcionará. Sin embargo, los nombres de archivos de Linux son mayúsculas y minúsculas, puede tener archivos llamados
HelloWorld.php
,helloworld.php
,hEllOwOrlD.php
en el mismo directorio. Por lo tanto, debe desarrollar en Windows como si estuviera desarrollando un sistema de archivos sensible a mayúsculas y minúsculas: usar exactamente los nombres de archivo correctos, nombres de directorio, nombres de extensión,.php
también es diferente de.PHP
.Separadores de directorio y ruta
En Windows decimos:
Pero en Linux diríamos:
PHP es lo suficientemente inteligente como para no importarle, ambos separadores funcionan en ambos sistemas. Pero debe ser coherente e ir con la barra diagonal (/) en todas partes, ya que también es la norma en la mayoría de los sistemas. Hay una ingeniosa constante predefinida
DIRECTORY_SEPARATOR
que se traduce en la correcta, si quieres llegar tan lejos:Lo mismo ocurre con el separador de ruta, que es punto y coma en Windows, dos puntos de lo contrario. Entonces, para estar seguro, debes hacer:
cuando se necesita un separador de ruta. Aunque la mayoría de la gente piensa que dado que a PHP no le importa qué separador usa, está bien, pero hay un inconveniente importante: los separadores serán los específicos del sistema cuando le solicite directorios o rutas. Entonces, digamos que desea explotar la ruta de inclusión en sus partes:
Codificación de archivo y delimitador
Debe configurar su IDE para establecer la codificación de archivos para todos sus scripts en UTF-8 en lugar de Cp *, y el delimitador de línea de archivo en Unix (en
"\n"
lugar de"\r\n"
). En la mayoría de los casos, realmente no importará, pero debe ser coherente y la mejor manera es la forma Unix (que funciona bien en Windows pero no al revés).fuente
No se puede ejecutar
strftime()
con%e
en entorno Windows, como se señala en la página del manual :fuente
No habrá problemas al ejecutar el código. Si edita los archivos guardados en Windows en Linux, puede notar que los caracteres de final de línea pueden ser diferentes, pero no dañará nada. Si le molesta, configure su IDE / editor de Windows para usar el final de línea de Unix.
fuente
Prepárese con un banco de pruebas de Linux. Podría ser una computadora Linux virtual con Windows, podría ser una computadora de arranque dual, podría ser el sistema de un amigo. Luego, de vez en cuando (por ejemplo, los lunes por la mañana), transfiera su código al sistema Linux y pruébelo.
Las otras respuestas manejaron los problemas principales que enfrentará, pero hay numerosos problemas menores, como:
Sí, hay formas de evitar cuidadosamente todas estas diferencias, pero ¿tuvo cuidado de usar las soluciones? Por supuesto que no: codificó y se ejecutó, por lo que debe estar bien.
No coloque nada en una computadora host hasta que se haya probado en un sistema operativo similar.
No tengo experiencia en portar de Windows a Linux, pero tengo algo de experiencia en portar de Linux a Windows y más experiencia en portar de Linux a OS X. Se puede hacer, pero la clave es probar, probar y probar.
fuente
Aunque estoy bastante cómodo con la línea de comandos de Linux y con herramientas de edición de Linux como vim, hago la mayor parte de mi desarrollo de PHP en una máquina Windows.
Tengo un servidor virtual en Internet (me cuesta alrededor de $ 20 al mes) que uso como servidor de desarrollo, y me conecto a él usando FileZilla. FileZilla descarga los archivos que estoy editando en un directorio temporal y realiza un seguimiento de los guardados y, cuando los guardo, los devuelve al servidor de desarrollo y los pruebo desde allí.
Es un poco engorroso, pero me permite hacer el desarrollo prácticamente en cualquier lugar; usando FileZilla y un editor simple en una memoria USB, incluso puedo conectarme desde otra computadora y hacer cambios. Todas las pruebas siempre se realizan en el servidor Linux, por lo que capto los problemas que podría haber causado de inmediato; menos sorpresas desagradables cuando lanzo el código al servidor.
Podrías hacer lo mismo con una cuenta de alojamiento barata (aunque dependiendo de qué tipo de aplicación estés desarrollando puedes tener problemas de rendimiento ya que las cuentas de alojamiento baratas suelen tener poco poder) y muchas otras aplicaciones FTP también tienen la función de edición y Subir funcionalidad.
fuente
Sí, se puede hacer, pero hay varias cosas que debes considerar. Verifique las respuestas para más información.
Es una de esas cosas, a veces los desarrolladores tienen que hacer, debido a los recursos, no porque les guste.
Es posible que tenga un servidor web local (apache, cherokee, incluso M $) en su PC y un servidor PHP instalado. Y su PC, puede no tener una conexión a Internet, o solo puede conectarse por cortos períodos de tiempo.
Más tarde, puede actualizar un sitio web real, actualizando su archivo al servidor real, con herramientas ftp, con la misma PC u otra PC, conectada a Internet.
fuente
Como la mayoría de la gente dijo, realmente no debería haber problemas. Dicho esto, VirtualBox hace que sea realmente fácil instalar una máquina virtual Linux en la que pueda probar su base de código para asegurarse de que funcione en el entorno de producción sin tener dicho entorno de producción a mano.
fuente