User Tools

Site Tools


django_con_apache_y_mod_python

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
django_con_apache_y_mod_python [07/07/2008 14:15]
fernando
django_con_apache_y_mod_python [01/05/2009 21:08]
fernando
Line 39: Line 39:
  
 La documentación oficial de Django nos da una guía para configurar Apache apropiadamente en este aspecto: [[http://​www.djangoproject.com/​documentation/​modpython/#​serving-media-files|Serving media files]]. La documentación oficial de Django nos da una guía para configurar Apache apropiadamente en este aspecto: [[http://​www.djangoproject.com/​documentation/​modpython/#​serving-media-files|Serving media files]].
 +
  
 === Bases ISIS === === Bases ISIS ===
  
-El ítem **3** requiere una atención particular. A diferencia de los otros dos ítems, aquí no se trata de atender peticiones "​externas"​ --esto es, desde un browser-- sino peticiones "​internas",​ hechas desde el código Python (pywxis.py) que se ejecuta en el servidor del ítem **1**. Esta distinción no es de importancia mientras trabajemos en forma local --servidor y browser en la misma máquina--, pero debe ser tenida en cuenta al poner la aplicación en un servidor accesible en forma remota, pues no queremos que wxis sea directamente accesible desde otros clientes. Aquí también tenemos la opción de usar el mismo servidor (o host virtual), o bien usar uno separado; la opción elegida se registrará en el archivo ''​settings.py''​.+El ítem **3** requiere una atención particular. A diferencia de los otros dos ítems, aquí no se trata de atender peticiones "​externas" ​---esto es, desde un browser--- sino peticiones "​internas",​ hechas desde el código Python (pywxis.py) que se ejecuta en el servidor del ítem **1**. Esta distinción no es de importancia mientras trabajemos en forma local ---servidor y browser en la misma máquina---, pero debe ser tenida en cuenta al poner la aplicación en un servidor accesible en forma remota, pues no queremos que wxis sea directamente accesible desde otros clientes. Aquí también tenemos la opción de usar el mismo servidor (o host virtual), o bien usar uno separado; la opción elegida se registrará en el archivo ''​settings.py''​.
  
  
Line 62: Line 63:
  
 **NOTA:** El artículo [[http://​articles.slicehost.com/​2007/​9/​18/​apache-virtual-hosts-permissions|Apache Virtual Hosts - permissions]] explica de manera sencilla el tema de configuración de permisos en el contexto de un host virtual de Apache. Aún no entiendo bien por qué el usuario principal (es decir, el dueño de los archivos de Catalis) debería agregarse al grupo //​www-data//​. **NOTA:** El artículo [[http://​articles.slicehost.com/​2007/​9/​18/​apache-virtual-hosts-permissions|Apache Virtual Hosts - permissions]] explica de manera sencilla el tema de configuración de permisos en el contexto de un host virtual de Apache. Aún no entiendo bien por qué el usuario principal (es decir, el dueño de los archivos de Catalis) debería agregarse al grupo //​www-data//​.
 +
 +
 +
 +
 +
 +
 +
 +
 +
  
  
Line 72: Line 82:
 El siguiente ejemplo usa un único host virtual para ocuparse de las tres funciones descriptas más arriba. Fue testeado en Apache 2.2 sobre Ubuntu 8.04 (Hardy). El siguiente ejemplo usa un único host virtual para ocuparse de las tres funciones descriptas más arriba. Fue testeado en Apache 2.2 sobre Ubuntu 8.04 (Hardy).
  
-**NOTA 1:** debe reemplazarse **''​<​nowiki>​{{/path/to/catalis}}</​nowiki>​''​** por el path que corresponda.+**NOTA 1:** debe reemplazarse **''/​PATH/TO/CATALIS''​** por el path que corresponda.
  
-**NOTA 2:** El uso del puerto ​81 es sólo a modo de ejemplo. Si se opta por usar un puerto ​especial ​para el virtual host, posiblemente la directiva ''​Listen''​ deba moverse al archivo de configuración ''​ports.conf''​.+**NOTA 2:** El uso del puerto ​8080 es sólo a modo de ejemplo. Si se opta por usar un puerto ​alternativo ​para el virtual host, posiblemente la directiva ''​Listen''​ deba moverse al archivo de configuración ''​ports.conf'' ​(sólo aplicable a Debian/​Ubuntu?​).
  
  
-<file>+<code apache>
 # Apache config for Catalis with Django, 2008-07-03 # Apache config for Catalis with Django, 2008-07-03
 # Modified 2008-07-04 # Modified 2008-07-04
Line 83: Line 93:
 # See http://​catalis.uns.edu.ar/​doku/​doku.php/​django_con_apache_y_mod_python # See http://​catalis.uns.edu.ar/​doku/​doku.php/​django_con_apache_y_mod_python
  
-Listen ​81 +Listen ​8080 
-NameVirtualHost *:81+NameVirtualHost *:8080
  
-<​VirtualHost *:81>+<​VirtualHost *:8080>
  
     # ------------------------------------------------------     # ------------------------------------------------------
     # Optional directives     # Optional directives
     # ------------------------------------------------------     # ------------------------------------------------------
-    ​#ServerName 127.0.0.1 ​(correct as appropriate)+    ServerName 127.0.0.1
     #​DocumentRoot (not needed!)     #​DocumentRoot (not needed!)
     #CustomLog     #CustomLog
Line 108: Line 118:
  
         # Specify which settings file is used         # Specify which settings file is used
-        SetEnv DJANGO_SETTINGS_MODULE ​catalis_pack.settings+        SetEnv DJANGO_SETTINGS_MODULE settings 
 + 
 +        # Add the directory where the settings live 
 +        PythonPath "​['/​PATH/​TO/​CATALIS/​django_files'​] + sys.path"​
  
         # Change this to '​Off'​ in a production environment         # Change this to '​Off'​ in a production environment
         PythonDebug On         PythonDebug On
- 
-        # *Both* directories have to be included in PythonPath (why?) 
-        PythonPath "​['​{{/​path/​to/​catalis}}/​django',​ '​{{/​path/​to/​catalis}}/​django/​catalis_pack'​] + sys.path"​ 
     </​Location>​     </​Location>​
  
Line 123: Line 133:
     # Turn off mod_python for serving static files (css, js, images, xml, ...).     # Turn off mod_python for serving static files (css, js, images, xml, ...).
     # Note: in a virtual host we could use instead an appropriate value for DocumentRoot.     # Note: in a virtual host we could use instead an appropriate value for DocumentRoot.
-    Alias /​catalis/​media/​ "{{/path/to/catalis}}/media/"+    Alias /​catalis/​media/​ "/PATH/TO/CATALIS/static_files/"
     <​Location "/​catalis/​media/">​     <​Location "/​catalis/​media/">​
         SetHandler None         SetHandler None
     </​Location>​     </​Location>​
-    ​#<​Directory "{{/path/to/catalis}}/media/">​ +    <​Directory "/PATH/TO/CATALIS/static_files/">​ 
-    # ​    Options ​-Indexes +        Order Allow,​Deny 
-    ​#</​Directory>​+        Allow from all 
 +        ​Options ​+Indexes 
 +    </​Directory>​
  
  
Line 136: Line 148:
     # ------------------------------------------------------     # ------------------------------------------------------
     # We want to run wxis using '/​catalis/​cgi-bin/​wxis'​     # We want to run wxis using '/​catalis/​cgi-bin/​wxis'​
-    ScriptAlias /​catalis/​cgi-bin/​ "{{/path/to/catalis}}/​cgi-bin/"​+    ScriptAlias /​catalis/​cgi-bin/​ "/PATH/TO/CATALIS/​cgi-bin/"​
     # Turn off mod_python here too     # Turn off mod_python here too
     <​Location "/​catalis/​cgi-bin/">​     <​Location "/​catalis/​cgi-bin/">​
Line 142: Line 154:
     </​Location>​     </​Location>​
     # Restrict access only to clients running on the same machine.     # Restrict access only to clients running on the same machine.
-    <​Directory "{{/path/to/catalis}}/cgi-bin/">+    <​Directory "/PATH/TO/CATALIS/​cgi-bin">​
         Order Deny,Allow         Order Deny,Allow
         Deny from all         Deny from all
Line 149: Line 161:
  
 </​VirtualHost>​ </​VirtualHost>​
-</file> +</code>
  
 ===== Testeo de la configuración ===== ===== Testeo de la configuración =====
  
 **TO-DO:** agregar algo aquí, p.ej. verificar que no se pueda acceder a wxis desde afuera, pero sí en forma local. **TO-DO:** agregar algo aquí, p.ej. verificar que no se pueda acceder a wxis desde afuera, pero sí en forma local.
 +
 +
 +
 +
 +
 +
 +
 +===== Para Windows =====
 +
 +(En construcción!)
 +
 +  * Python 2.5
 +
 +  * Django 0.96
 +
 +  * [[http://​httpd.apache.org/​download.cgi|Apache 2.2]] (versión: ''​apache_2.2.9-win32-x86-openssl-0.9.8h-r2.msi''​). Instalacion tipica, como servicio.
 +
 +  * [[http://​httpd.apache.org/​modules/​python-download.cgi|mod_python]] (versión: ''​mod_python-3.3.1.win32-py2.5-Apache2.2.exe''​)
 +    * instalar (ejecutar el ''​.exe''​);​ cuando pregunta por la carpeta de Apache, indicar la carpeta ''​Apache2.2''​.
 +    * agregar línea en ''​httpd.conf'':​
 +
 +<code apache>
 +LoadModule python_module modules/​mod_python.so
 +</​code>​
 +
 +  * Configuración de Apache: crear un archivo ''​conf/​extra/​catalis.conf''​ y pegar allí la configuración sugerida más arriba (haciendo los cambios apropiados). Agregar esta línea al final de ''​conf/​httpd.conf'':​
 +
 +<code apache>
 +Include conf/​extra/​catalis.conf
 +</​code>​
 +
 +{{tag>​catalis desarrollo django apache}}
django_con_apache_y_mod_python.txt · Last modified: 02/05/2009 00:00 (external edit)