Diferencia entre revisiones de «Pasar a produccion»
(No se muestran 16 ediciones intermedias de 5 usuarios) | |||
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 | ||
− | |||
− | Teniendo todos los archivos preaparados, nos conectamos al servidor mediante FTP. | + | <source lang=ini> |
+ | |||
+ | [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. | 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 | 1) Subir en nuestro / la carpeta /core con todo su contenido | ||
+ | |||
+ | [[Archivo:core.jpg|800px]] | ||
+ | |||
2) Crear en / una carpeta /default | 2) Crear en / una carpeta /default | ||
+ | |||
+ | [[Archivo:default.jpg|800px]] | ||
+ | |||
3) Subir en el directorio /default creado previamente toda la carpeta /app | 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) | 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 | 5) Dar permisos de escritura a las carpetas /default/app/temp, /default/app/temp/cache y /default/app/temp/logs | ||
Línea 18: | Línea 53: | ||
* Comentar las líneas de reporte de errores para que no queden visibles a los usuarios: | * Comentar las líneas de reporte de errores para que no queden visibles a los usuarios: | ||
− | error_reporting(E_ALL ^ E_STRICT); | + | |
− | ini_set('display_errors', 'On'); | + | <source lang=php> |
+ | |||
+ | //error_reporting(E_ALL ^ E_STRICT); | ||
+ | |||
+ | //ini_set('display_errors', 'On'); | ||
+ | |||
+ | </source> | ||
* Y decomentar o agregar si no está la línea ini_set('display_errors', 'Off'); | * Y decomentar o agregar si no está la línea ini_set('display_errors', 'Off'); | ||
+ | |||
* Cambiar los valores de las constantes APP_PATH y CORE_PATH (recordemos que las hemos cambiado un nivel más arriba que public_html) | * Cambiar los valores de las constantes APP_PATH y CORE_PATH (recordemos que las hemos cambiado un nivel más arriba que public_html) | ||
define('APP_PATH', '/home/[nombre_cuenta]/default/app/'); | define('APP_PATH', '/home/[nombre_cuenta]/default/app/'); | ||
+ | |||
define('CORE_PATH', '/home/[nombre_cuenta]/core/'); | define('CORE_PATH', '/home/[nombre_cuenta]/core/'); | ||
Línea 35: | Línea 78: | ||
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]] |
Revisión actual del 06:47 29 jun 2021
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[editar]
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
[production]
host = localhost
username = root
password =
name = test
type = mysqli
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[editar]
Teniendo todos los archivos preaparados, nos conectamos al servidor mediante FTP. En este ejemplo las imágenes son utilizando el cliente FTP 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
2) Crear en / una carpeta /default
3) Subir en el directorio /default creado previamente toda la carpeta /app
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)
Resumen de como deberían quedar los directorios en el servidor
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:
//error_reporting(E_ALL ^ E_STRICT);
//ini_set('display_errors', 'On');
- Y decomentar o agregar si no está la línea ini_set('display_errors', 'Off');
- Cambiar los valores de las constantes APP_PATH y CORE_PATH (recordemos que las hemos cambiado un nivel más arriba que public_html)
define('APP_PATH', '/home/[nombre_cuenta]/default/app/');
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.
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 siguiente enlace