2012-05-13 4 views
6

A veces trabajo con Codeigniter, y cuando termine de desarrollar en el sitio local, necesito migrar los archivos al servidor. Todos los archivos en la carpeta /config/ deben modificarse para que coincidan con la configuración del Servidor. No está bien hacer un commit completo para estos cambios, ¿simplemente hago que Git ignore estos archivos por completo, o hay una forma de rastrear estos cambios y aplicarlos con Git en el momento correcto?¿Cuál es la forma correcta de mantener una "versión para el servidor", con solo los archivos de configuración modificados, en Git?

+0

tal vez podría escribir un gancho after_deploy git que hacer eso? – lenswipe

Respuesta

7

se podía mantener versionado:

  • dos "archivos de valor de configuración", con los valores correctos para cada entorno
  • un archivo de configuración de plantilla, con un valor de marcador de posición en el mismo (por ejemplo, @@[email protected]@)
  • una secuencia de comandos capaz de generar el archivo de configuración real en función del entorno actual
  • a content filter driver que, al finalizar la compra, activará la secuencia de comandos para generar la plataforma ht archivo de configuración.

content filter driver

Nota: supone que el archivo de plantilla de configuración tiene un contenido reconocible (el filtro no tiene un nombre o ruta del archivo). Consulte "Git equivalent of subversion's $URL$ keyword expansion" para obtener más información sobre la limitación del controlador de filtro de contenido de git).

1

Depende de sus necesidades. En mi compañía usamos otro enfoque. Hemos creado varios ambientes (donde el asterisco es el nombre interno del proyecto):..

  • devel - sitio funciona sobre dominio ** * local.com
  • prueba - sitio de corrida de prueba de dominio *. company.com
  • beta -.. beta * company.com
  • producción - todos los demás dominios.

Según el nombre de dominio, cambiamos automáticamente las configuraciones. Básicamente archivo de configuración se parece a:

<?php 
return array(
    '_env' => array(
    'devel' => array(
     // config for devel 
    ), 
    'production' => array(
     // config for production 
    ) 
) 
); 
?> 

Algunos marcos (Zend AFAIR) establece el nombre del entorno de configuración de host virtual (o .htaccess). Debería ver: zend framework auto switch production staging test .. etc

¿Ha mirado la documentación de CI? Hay un section al respecto.

0

Crea dos carpetas en la carpeta config. Uno se llama development y el otro es production. Ahora copie config.php, database.php, etc. en cada una de estas carpetas. Ahora cuando esté en el servidor de producción, CodeIgniter primero comprobará la carpeta production para los archivos. Si no está allí, utiliza el archivo predeterminado en la carpeta config. Y si se encuentra en un entorno de desarrollo, CodeIgniter primero comprobará la carpeta development.

Si desea mantener cualquier archivo de configuración idéntico al entorno de producción y desarrollo, guárdelo en la carpeta config.

Si desea configurar el entorno continuación, agregue el código siguiente en el archivo .htaccess:

#This code for Development Environment 
SetEnv CI_ENV development 

y

#This code for Production Environment 
SetEnv CI_ENV production 
Cuestiones relacionadas