User Tools

Site Tools


proyecto:armar_la_aplicacion_inicial

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
proyecto:armar_la_aplicacion_inicial [2022/04/20 06:35] – [Opción 4: Algo diferente] ahoganproyecto:armar_la_aplicacion_inicial [2025/06/23 16:46] (current) ahogan
Line 1: Line 1:
 ====== Armar la Aplicación ====== ====== Armar la Aplicación ======
- 
-OJO: en cualquier parte del tutorial donde se mencione XX, este es el NÚMERO DE LA MÁQUINA, no su número de grupo. 
  
 ===== Objetivo ===== ===== Objetivo =====
Line 8: Line 6:
  
    * Como fue mencionado antes, hay que tener al menos tres consultas demostrando una mezcla de rasgos de SQL, es decir, joins, consultas anidadas, agregación, etc.     * Como fue mencionado antes, hay que tener al menos tres consultas demostrando una mezcla de rasgos de SQL, es decir, joins, consultas anidadas, agregación, etc. 
 +   * Al menos dos de las consultas deberían incluir uno o más parámetros ingresados por el usuario de la aplicación web.
    * No es necesario tener todos los rasgos en todas las consultas. La idea es que se demuestren los rasgos en alguna consulta. Se puede empezar con una consulta simple.    * No es necesario tener todos los rasgos en todas las consultas. La idea es que se demuestren los rasgos en alguna consulta. Se puede empezar con una consulta simple.
    * Es importante usar indices, vistas, etc., para optimizar las consultas.    * Es importante usar indices, vistas, etc., para optimizar las consultas.
Line 26: Line 25:
 <code> <code>
 CREATE USER webuser WITH PASSWORD 'contrasena'; CREATE USER webuser WITH PASSWORD 'contrasena';
 +GRANT CONNECT ON DATABASE cc3201 TO webuser;
 GRANT USAGE ON SCHEMA proyecto TO webuser; GRANT USAGE ON SCHEMA proyecto TO webuser;
 ... ...
Line 32: Line 32:
  
 ... y después usar ''webuser'' y su contraseña en la aplicación. Hay más información sobre [[https://www.postgresql.org/docs/11/static/sql-grant.html|GRANT aquí]]. ... y después usar ''webuser'' y su contraseña en la aplicación. Hay más información sobre [[https://www.postgresql.org/docs/11/static/sql-grant.html|GRANT aquí]].
 +
 +Hay que tener cuidado con consultas como:
 +
 +<code>
 +SELECT * FROM tabla WHERE col = 'val';
 +</code>
 +
 +En particular, esta consulta no ha especificado el esquema, así que Postgres usará el ''SEARCH_PATH'' del usuario para identificar el primer esquema con la relación ''tabla''. Pero ''webuser'' puede tener un ''SEARCH_PATH'' diferente al ''SEARCH_PATH'' de ''cc3201''. Una solución sería definir bien el ''SEARCH_PATH'' de ''webuser'', pero ojo que si cambia el ''SEARCH_PATH'' en el futuro, la aplicación puede dejar de funcionar. Si una consulta va a ser usada durante mucho tiempo (por ejemplo, está codificada en una aplicación), la mejor solución es siempre especificar los esquemas de las tablas (o de las vistas, etc.) referenciadas:
 +
 +<code>
 +SELECT * FROM esquema.tabla WHERE col = 'val';
 +</code>
 +
 +Así funcionará ante cambios al ''SEARCH_PATH'' del usuario de la aplicación.
 ===== Servidor Web ===== ===== Servidor Web =====
  
Line 106: Line 120:
 PHP (PHP: Hypertext Preprocessor) es un lenguaje para crear scripts que se ejecutan en el servidor (al contrario de Javascript, por ejemplo, que se ejecuta normalmente en el lado del cliente). PHP (PHP: Hypertext Preprocessor) es un lenguaje para crear scripts que se ejecutan en el servidor (al contrario de Javascript, por ejemplo, que se ejecuta normalmente en el lado del cliente).
  
-Para instalar PHP con soporte para apache2 y postgres:+Para instalar PHP con soporte para apache2 y postgres (ojo que si no hay la versión exacta, también se puede usar una versión más nueva):
  
-<code>sudo apt-get install php7.libapache2-mod-php7.3 php7.3-pgsql</code>+<code>sudo apt-get install php8.libapache2-mod-php8.2 php8.2-pgsql</code>
  
 Ahora, tenemos que reiniciar Apache: Ahora, tenemos que reiniciar Apache:
Line 1341: Line 1355:
  
 ... pero no podremos ofrecerles soporte si hay problemas. ... pero no podremos ofrecerles soporte si hay problemas.
 +
 +====== Conexión Externa =====
 +
 +Finalmente, se deben configurar los puertos de modo que la aplicación web quede disponible para acceder a través de una URL. Puede encontrar instrucciones de como hacerlo visitando [[proyecto:conexion_externa|este enlace]].
proyecto/armar_la_aplicacion_inicial.1650436504.txt.gz · Last modified: 2022/04/20 06:35 by ahogan