Revisión actual |
Tu texto |
Línea 1: |
Línea 1: |
| Bueno, este documento está enfocado más bien hacia un aspecto práctico de como pasar una aplicación de desarrollo a producción y que cosas se podrían tomar en cuenta. | | Bueno, este documento está enfocado más bien hacia un aspecto práctico de como pasar una aplicación de desarrollo a producción y que cosas se podrían tomar en cuenta. |
− |
| |
− | ==== Preparar los archivos ====
| |
| | | |
| Primero, en caso de ser necesario, deberás tener seteado los valores correctos de tu servidor en el apartado "[production]" de tu archivo /app/config/databases.ini | | Primero, en caso de ser necesario, deberás tener seteado los valores correctos de tu servidor en el apartado "[production]" de tu archivo /app/config/databases.ini |
| + | Luego, para poder -activar- el sitio en producción, deberás cambiarle el valor de production a On, es decir production = On en el archivo /config/config.ini de tu aplicación, |
| | | |
− | <source lang=ini>
| + | A continuación, puedes abrir tu archivo /public/index.php y comentar el error_reporting() o llevarlo al nivel que desees. |
− | | |
− | [production]
| |
− | host = localhost
| |
− | username = root
| |
− | password =
| |
− | name = test
| |
− | type = mysqli
| |
− | | |
− | </source>
| |
− | | |
− | | |
− | Luego, para poder activar el sitio en producción, deberás cambiarle el valor de production a TRUE, es decir define ('PRODUCTION', TRUE) en el archivo /public/index.php de tu aplicación.
| |
− | | |
− | | |
− | ==== Subir archivos al FTP ====
| |
− | | |
− | Teniendo todos los archivos preaparados, nos conectamos al servidor mediante FTP. En este ejemplo las imágenes son utilizando el cliente FTP [https://filezilla-project.org/ Filezilla], pero ustedes podrán utilizar el que les quede cómodo.
| |
− | | |
− | La razón de subir los archivos de la forma que detallaremos a continuación, es poder darle un grado más de seguridad a nuestro sitio web / aplicación, manteniendo todos los archivos del CORE y APP fuera del directorio público, y en nuestro directorio público solo dejar los assets css/js/files/etc.
| |
− | | |
− | 1) Subir en nuestro / la carpeta /core con todo su contenido
| |
− | | |
− | [[Archivo:core.jpg|800px]]
| |
− | | |
− | 2) Crear en / una carpeta /default
| |
− | | |
− | [[Archivo:default.jpg|800px]]
| |
− | | |
− | 3) Subir en el directorio /default creado previamente toda la carpeta /app
| |
− | | |
− | [[Archivo:app.jpg|800px]]
| |
− | | |
− | 4) En nuestro /public_html subir todo el contenido de /app/public. Acá en este punto es importante entender que solo hay que subir el CONTENIDO de la carpeta public (css, javascript, files, .htaccess, index.php, etc)
| |
− | | |
− | [[Archivo:public_html.jpg|800px]]
| |
− | | |
− | Resumen de como deberían quedar los directorios en el servidor
| |
− | | |
− | [[Archivo:estructura-directorios.jpg]]
| |
− | | |
− | 5) Dar permisos de escritura a las carpetas /default/app/temp, /default/app/temp/cache y /default/app/temp/logs
| |
− | | |
− | Editar el archivo subido en /public_html/index.php
| |
− | | |
− | * Si existe la constante define('PRODUCTION', FALSE); cambiarla a define('PRODUCTION', TRUE);
| |
− | | |
− | * Comentar las líneas de reporte de errores para que no queden visibles a los usuarios:
| |
− | | |
− | <source lang=php>
| |
− | | |
− | //error_reporting(E_ALL ^ E_STRICT);
| |
− | | |
− | //ini_set('display_errors', 'On');
| |
| | | |
− | </source>
| + | Dentro del mismo archivo, podrás tambien: |
| | | |
− | * Y decomentar o agregar si no está la línea ini_set('display_errors', 'Off');
| + | 1) Indicarle la dirección de tu server donde está hubicado el core. Esto toma valor al poder tener múltiples aplicaciones corriendo bajo un mismo core. |
| | | |
− | * Cambiar los valores de las constantes APP_PATH y CORE_PATH (recordemos que las hemos cambiado un nivel más arriba que public_html)
| + | 2) Evitar el cálculo del PUBLIC_PATH comentando las lineas donde se realiza, y suplantarlo simplemente por el dominio de tu aplicación, ej: define('PUBLIC_PATH', 'http://www.tudominio.com/'); |
| | | |
− | define('APP_PATH', '/home/[nombre_cuenta]/default/app/');
| + | Una vez subidos al servidor, revisar que tu carpeta /public/temp/ de tu aplicación tenga permisos de escritura, así mismo como para las carpetas que están dentro /log/ y /cache/. |
− | | |
− | define('CORE_PATH', '/home/[nombre_cuenta]/core/');
| |
− | | |
− | Donde [nombre_cuenta] es el usuario creado por cpanel (mismo que el FTP )
| |
− | | |
− | * Por úlitimo comentar el cálculo de la variable PUBLIC_PATH y definir directamente con el dominio y no olvidar la barra “/” al final.
| |
− | define('PUBLIC_PATH', 'http://www.tudominio.com');
| |
− | | |
− | Una vez subidos al servidor, revisar que tu carpeta /temp/ de tu aplicación (app/temp/ por ej) tenga permisos de escritura, así mismo como para las carpetas que están dentro /log/ y /cache/. | |
| | | |
| Algo para recordar es que la cache se activa automáticamente al pasar la aplicación a producción (production = On), y si realiza cambios en sus modelos de datos y necesita que se re-mapeen, los cambios no tendrán efectos hasta que no borre el contenido de /temp/cache. | | Algo para recordar es que la cache se activa automáticamente al pasar la aplicación a producción (production = On), y si realiza cambios en sus modelos de datos y necesita que se re-mapeen, los cambios no tendrán efectos hasta que no borre el contenido de /temp/cache. |
− |
| |
− |
| |
− |
| |
− | '''NOTA''': Variable de entorno $_SERVER["PATH_INFO"]
| |
− |
| |
− |
| |
− | Se han dado un ''bajo porcentaje'' de casos en los cuales, aún teniendo mod_rewrite activado, cuando se navega las secciones de un sitio siempre muestra la página de inicio.
| |
− | Si tienes la suerte de entrar en ese bajo porcentaje, deberás verificar lo siguiente en nuestro archivo /public_html/index.php
| |
− |
| |
− | 1) Haz un print_r($_SERVER)
| |
− |
| |
− | 2) Verifica que exista la variable $_SERVER["PATH_INFO"]
| |
− |
| |
− | 3) En caso de que no exista, y en su lugar esté $_SERVER["ORIG_PATH_INFO"] deberemos buscar la línea donde se declara la variable $url:
| |
− |
| |
− | $url = empty($_SERVER['PATH_INFO']) ? '/' : $_SERVER['PATH_INFO'];
| |
− |
| |
− | Y la reemplazamos por:
| |
− |
| |
− | $url = empty($_SERVER['ORIG_PATH_INFO']) ? '/' : $_SERVER['ORIG_PATH_INFO'];
| |
− |
| |
− | ***
| |
− | NOTA: Puede que no esté presente $_SERVER["PATH_INFO"] ni $_SERVER["ORIG_PATH_INFO"], en ese caso puede intentarse:
| |
− | $url = !empty($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : (!empty($_SERVER['ORIG_PATH_INFO']) ? $_SERVER['ORIG_PATH_INFO'] : '');
| |
− | ***
| |
− | ¡Listo!
| |
− |
| |
− | Eso es todo, ahora, si tu servicio de hosting es un servidor con Cpanel, entonces deberás pegarle una mirada al [http://wiki.kumbiaphp.com/KumbiaPHP_en_servidor_con_CPanel siguiente enlace]
| |
− |
| |
− | [[Categoría:Tutoriales KumbiaPHP]]
| |