AYUDA conf apache + web2py

55 views
Skip to first unread message

nicolás rosbaco

unread,
Jan 30, 2017, 9:26:42 PM1/30/17
to web2py-...@googlegroups.com
Hola gente, estoy desde hace unos días rompiendo un poco con consultas. Es que retomé la senda de web2py.

Tengo un servidor en producción (datatec) con apache+mysql, con tres dominios sirviendo ahí.

Ahora quiero agregar mi proyecto web2py, pero no logro que me ande.... les paso la data.

Por el momento no tengo el dominio activo, el que registré en nic.ar y pretendo utilizar; por eso pretendía, para pruebas, robarme uno que si estaba "andando", y pretendía usar esa dirección para hacer las pruebas.

El dominio es ctarionegro.com.ar, digo esto para que se entienda lo que pegaré abajo:

Siguiente la info del libro web2py, en recetas de implementación (http://www.web2py.com/books/default/chapter/41/13/recetas-de-implementacion?search=implementaci%C3%B3n#Recetas-de-implementaci%C3%B3n) instalé y activé todos los módulos de apache (no logré descargar el script, parece no esta ya disponible¿?)

Metí la carpeta web2py dentro del directorio /var/www/html/choiquenet (no se porque no opté por la oferta que hace el manual de usar un sub direcotrio del home... pero no creo sea el problema).

Creo ambos archivos de configuración en sites-enables y sites-avaibles con este contenido el archivo ctarionegro.conf (recuerden que si tenía andando el dominio ctarionegro.com.ar)

<VirtualHost *:80>
  ServerName ctarionegro.com.ar
  WSGIDaemonProcess web2py user=www-data group=www-data display-name=%{GROUP}
  WSGIProcessGroup web2py
  WSGIScriptAlias / /var/www/html/choiquenet/web2py/wsgihandler.py

  <Directory /var/www/html/choiquenet/web2py>
    AllowOverride None
    Order Allow,Deny
    Deny from all
    <Files wsgihandler.py>
      Allow from all
    </Files>
  </Directory>

  AliasMatch ^/([^/]+)/static/(.*) \
           /users/www-data/web2py/applications/$1/static/$2
  <Directory /users/www-data/web2py/applications/*/static/>
    Order Allow,Deny
    Allow from all
  </Directory>

  <Location /admin>
  Deny from all
  </Location>

  <LocationMatch ^/([^/]+)/appadmin>
  Deny from all
  </LocationMatch>

  CustomLog /private/var/log/apache2/access.log common
  ErrorLog /private/var/log/apache2/error.log
</VirtualHost>

El contenido anterior de ctarionegro.conf es este:

<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    ServerName ctarionegro.com.ar

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/ctarionegro

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

Bueno, si intento iniciar apache me sale este mensaje:

root@vps-cccccccx:/etc/apache2# service apache2 start
 * Starting web server apache2                                                                                                                                                                   *
 * The apache2 configtest failed.
Output of config test was:
(2)No such file or directory: AH02291: Cannot access directory '/private/var/log/apache2/' for error log of vhost defined at /etc/apache2/sites-enabled/ctarionegro.conf:1
AH00014: Configuration check failed
Action 'configtest' failed.
The Apache error log may have more information.

Ando más perdido que turco en la neblina.... agradeceré mucho vuestra ayuda.

Desde ya muchas gracias!!!




nicolás rosbaco

unread,
Jan 31, 2017, 7:45:52 AM1/31/17
to web2py-...@googlegroups.com
Hola gente, sigo con este problema.... sigo sin obtener funcionar... pero con algunos cambios.

Advertí que el archivo wsgihandler.py no estaba en la carpeta web2py, lo copié desde web2py/handlers/ (no modifiqué para nada el contenido)

En su interior encuentro unas lineas, comentadas del autor, que indican lo siguiente:


In httpd.conf put something like:

    LoadModule wsgi_module modules/mod_wsgi.so
    WSGIScriptAlias / /path/to/wsgihandler.py

No se si es algo correspondiente a versiones anteriores de apache o no.... pero no encuentro el archivo httpd.conf... el tema es que la linea 2 se parece mucho a lo que se escribe en la declaración del host virtual dentro de sites-aviables ¿?

Les vuelvo a copiar para que vean (porque lo modifiqué) el archivo /etc/apache2/sites-available/ctarionegro.conf correspondiente a la declaración de host virtual que tengo en funcionamiento (para otra cosa, pero lo quería de prueba).

Yo imaginaba que llegado el requerimiento ctarionegro.com.ar se realizaba la llamada a web2py... bueno no ocurre, se carga el host por default (patagoniko.com.ar)

WSGIDaemonProcess web2py user=www-data group=www-data
<VirtualHost *:80>

 WSGIProcessGroup web2py
  WSGIScriptAlias / /var/www/html/choiquenet/web2py/wsgihandler.py
  WSGIPassAuthorization On
  <Directory /var/www/html/choiquenet/web2py>
    AllowOverride None
    Require all denied
    <Files wsgihandler.py>
      Require all granted
    </Files>
  </Directory>
  AliasMatch ^/([^/]+)/static/(?:_[\d]+.[\d]+.[\d]+/)?(.*) \
        /var/www/html/choiquenet/web2py/applications/$1/static/$2
  <Directory /var/www/html/choiquenet/web2py/applications/*/static/>
    Options -Indexes
    ExpiresActive On
    ExpiresDefault "access plus 1 hour"
    Require all granted
  </Directory>
  CustomLog /var/log/apache2/access.log common
  ErrorLog /var/log/apache2/error.log
</VirtualHost>
<VirtualHost *:443>
  SSLEngine on
  SSLCertificateFile /etc/apache2/ssl/self_signed.cert
  SSLCertificateKeyFile /etc/apache2/ssl/self_signed.key

  WSGIProcessGroup web2py
  WSGIScriptAlias / /var/www/html/choiquenet/web2py/wsgihandler.py
  WSGIPassAuthorization On
  <Directory /var/www/html/choiquenet/web2py>
    AllowOverride None
    Require all denied
    <Files wsgihandler.py>
      Require all granted
    </Files>
  </Directory>
  AliasMatch ^/([^/]+)/static/(?:_[\d]+.[\d]+.[\d]+/)?(.*) \
        /var/www/html/choiquenet/web2py/applications/$1/static/$2
  <Directory /var/www/html/choiquenet/web2py/applications/*/static/>
    Options -Indexes
    ExpiresActive On
    ExpiresDefault "access plus 1 hour"
    Require all granted
  </Directory>
  CustomLog /var/log/apache2/ssl-access.log common
  ErrorLog /var/log/apache2/error.log
</VirtualHost>



Si alguién lee y tiene uno andando por ahí me tira la conf y de ahí lo intento adaptar.

Desde ya muchas gracias








Marco Mansilla

unread,
Jan 31, 2017, 9:22:37 PM1/31/17
to web2py-...@googlegroups.com
El Tue, 31 Jan 2017 09:45:51 -0300
nicolás rosbaco <anti...@gmail.com> escribió:
Hola Nico, en principio despues de haber movido y creado los archivos
correspondientes fijate que pertenezcan al usuario y grupo www-data de
apache, el modulo mod_wsgi.so lo habilitas con:

$ sudo a2enmod mod_wsgi

en /etc/apache2 debes tener dos carpetas de modulos, una que dice
mods-available y mods-enabled, despues de ejecutar el comando anterior
el modulo wsgi deberia habilitarse, si estas usando debian o derivados.

te adjunto mi configuracion funcionando en DigitalOcean sobre Debian y
apache2.

<VirtualHost *:80>
ServerName midominio.com.ar
WSGIDaemonProcess web2py user=www-data group=www-data
display-name=%{GROUP} WSGIProcessGroup web2py
WSGIScriptAlias / /opt/web2py/wsgihandler.py

#This is Apache 2.2.x permission syntax. See Apache docs for 2.4 syntax
# http://httpd.apache.org/docs/2.4/upgrading.html#run-time

<Directory /opt/web2py>
AllowOverride None
Order Allow,Deny
Deny from all
<Files wsgihandler.py>
Allow from all
</Files>
</Directory>

AliasMatch
^/([^/]+)/static/(.*) /opt/web2py/applications/$1/static/$2
<Directory /opt/web2py/applications/*/static/> Order Allow,Deny
Allow from all
</Directory>

<Location /admin>
Deny from all
</Location>

<LocationMatch ^/([^/]+)/appadmin>
Deny from all
</LocationMatch>

CustomLog /etc/apache2/logs/web2py-access.log common
ErrorLog /etc/apache2/logs/web2py-error.log
</VirtualHost>

espero que te sea util, saludos.

PS: normalmente puede ser problema de permisos, que tipo de servicio
tenes en dattatec?.

nicolás rosbaco

unread,
Feb 1, 2017, 12:17:18 AM2/1/17
to web2py-...@googlegroups.com
Hola Marco, antes que nada: millón de gracias por tu tiempo.
Revisé tu ejemplo contra lo que yo tenía y terminó andando... copio acá abajo los detalles para futuras consultas (luego veré algún detalle o duda, pero esta funcionando).

Tengo un VPS en DATATEC (Apache sin panel de configuración) con dos virtual host más uno que era el por defecto u original

patagoniko.com.ar (original, 00default.conf)
gnupatagonia.com.ar -> virtual host
ctarionegro.com.ar-> virtual host

Como no tengo aún el dominio sobre el que debería funcionar mi aplicación web2py, me robo por unos días ctarionegro.com.ar---> es decir reescribo el archivo de configuración de este virtual host (eso porque no se como hacer para poder funcionar web2py en patagoniko.com.ar/web2py, por ejemplo)

Como dice marco tengo dos directorios en los que se configurarían los host de mi equipo:

/etc/apache2/sites-available/
y
/etc/apache2/sites-enabled/

(carezco de información sobre el detalle de estos dos directorios en los que apache habilita y configura los host que atenderá) pero si se que en ambos hay los mismos archivos, de hecho se crean en sites-avaible y se linkean al otro directorio.

Lo que tenía era:

root@xxxxx:/home/nicolas# ls -ali /etc/apache2/sites-available/
total 28
41299 drwxr-xr-x 2 root root 4096 Jan 31 09:25 .
41156 drwxr-xr-x 9 root root 4096 Jan 31 09:03 ..
41300 -rw-r--r-- 1 root root 1332 Jan  7  2014 000-default.conf
 5089 -rw-r--r-- 1 root root 1675 Jan 31 13:53 ctarionegro.conf
41301 -rw-r--r-- 1 root root 6437 Jan  7  2014 default-ssl.conf
 1209 -rw-r--r-- 1 root root 1343 Jan 31 09:03 gnupatagonia.conf

y

root@vps-xxxx:/home/nicolas# ls -ali /etc/apache2/sites-enabled/
total 8
41289 drwxr-xr-x 2 root root 4096 Jan 31 09:29 .
41156 drwxr-xr-x 9 root root 4096 Jan 31 09:03 ..
41343 lrwxrwxrwx 1 root root   35 Aug 26  2014 000-default.conf -> ../sites-available/000-default.conf
 1128 lrwxrwxrwx 1 root root   45 Jan 31 09:29 ctarionegro.conf -> /etc/apache2/sites-available/ctarionegro.conf
 3324 lrwxrwxrwx 1 root root   46 Jan 31 09:07 gnupatagonia.conf -> /etc/apache2/sites-available/gnupatagonia.conf


El contenido de estos archivos era el habitual para un virtual host.... como a mi me interesaba robarme ctarionegro.com.ar (SOLO POR UNOS DÍAS) modifico su contenido (esto lo armé bien con el aporte de Marco, antes no andaba...)

<VirtualHost *:80>
 ServerName ctarionegro.com.ar
 WSGIDaemonProcess web2py user=www-data group=www-data



Para ir terminando, seguí todos los pasos del libreo donde establece las recetas de implementación (instalé todo lo necesario manualmente porque no encontré el mentado script de instalación y configuración... pero algo faltaba, creo, en el archivo de configuración del host porque no me funcionaba... no recuerdo que agregué de lo que leí de Marco, pero ahora funciona y lo tengo en pruebas con ese dominio afanado...

Me gustaría saber como, en lugar de iniciar web2py a la llamada de ctarionegro.com.ar hacerlo a algún "sub dominio" de patagoniko.com.ar (por ejemplo patagoniko.com.ar/web2py).

PD: si miran el sitio todavía esta medio fulero.... viene marchando ;-)

GRACIAS MIL^3 Marco y demás gente que viene leyendo.






--
Has recibido este mensaje porque estás suscrito al grupo "web2py-usuarios" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a web2py-usuarios+unsubscribe@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/d/optout.

Marco Mansilla

unread,
Feb 1, 2017, 12:55:28 AM2/1/17
to web2py-...@googlegroups.com
El Wed, 1 Feb 2017 02:17:16 -0300
nicolás rosbaco <anti...@gmail.com> escribió:
> <http://www.web2py.com/books/default/chapter/41/13/recetas-de-implementacion?search=recetas+de+imple#Recetas-de-implementaci%C3%B3n>
> (instalé todo lo necesario manualmente porque no encontré el mentado
> script de instalación y configuración... pero algo faltaba, creo, en
> el archivo de configuración del host porque no me funcionaba... no
> recuerdo que agregué de lo que leí de Marco, pero ahora funciona y lo
> tengo en pruebas con ese dominio afanado...
>
> Me gustaría saber como, en lugar de iniciar web2py a la llamada de
> ctarionegro.com.ar hacerlo a algún "sub dominio" de patagoniko.com.ar
> (por ejemplo patagoniko.com.ar/web2py).
>
> PD: si miran el sitio todavía esta medio fulero.... viene
> marchando ;-)
>
> GRACIAS MIL^3 Marco y demás gente que viene leyendo.
>
>
>
>
>

Es un gusto ayudar, asi uno devuelve de a poco a la comunidad todo lo
que aprende.

Vamos por partes, si ya tenes ctarionegro.conf andando podrias intentar
duplicarlo y crear un subdominio cambiando la linea

ServerName ctarionegro.com.ar

por

ServerName web2py.ctarionegro.com.ar

en un archivo llamado web2py.ctarionegro.conf dentro de
sites-available, una vez que esta creado ejecutas:

$ sudo a2ensite web2py.ctarionegro.conf

eso deberia activar tu app web2py y crear en enlace del archivo en
sites-enabled.

de esa manera deberias tener el dominio y subdominio funcionando, esto
teniendo en cuenta que tu app en web2py sea welcome o init, de otra
manera deberias acceder de la siguiente manera:

http://web2py.ctarionegro.com.ar/myApp

y ahi puedes tener mas de una app funcionando, de hecho, yo tengo una
sola instancia de web2py en el servidor y sobre esa corro varias
aplicaciones. Para que sea mas comodo le dejo esa tarea a web2py usando
routes.py

Sobre los archivos de apache, en las nuevas versiones se manejan las
carpetas sites-available, sites-enabled, mods-available y mods-enabled
respectivamente y tienen sus comandos para activarlos o desactivarlos
como:

$ sudo a2ensite miDominio.conf #para activar un dominio

$ sudo a2dissite otroDominio.conf #para desactivar el dominio

$ sudo a2enmod mod_foo #activar modulo

$ sudo a2dismod mod-bar #desactivar modulo

para que esto funcione correctamente ambos archivos deben existir en
lar carpetas *-available respectivamente y por lo general se recomienda
reiniciar el servicio despues de cualquiera de las tareas.

$ sudo service apache2 restart

Con eso deberia salir andando casi todo lo que necesites.

OJO, la documentacion sobre apache esta desactualizada por que en la
lista oficial se recomienda Nginx como servidor o alguna alternativa,
imagino que es la causa de que se hayan eliminado los scripts de
instalacion, pero ya ves que tampoco es la gran ciencia. Si es cierto
que web2py corre mejor sobre Nginx hasta donde he probado y probalmente
pronto migre.

Espero que te sea util. Un abrazo.

Marco.

nicolás rosbaco

unread,
Feb 1, 2017, 1:04:26 AM2/1/17
to web2py-...@googlegroups.com
Marco, mil gracias....
Un montón de info me estás tirando... y por prudente (mirando la hora) no voy a probarlo ahora... pero mañana sin falta!!!
Millón de grecias che!!!!
Nos leemos!




nicolás rosbaco

unread,
Feb 1, 2017, 1:25:38 PM2/1/17
to web2py-...@googlegroups.com
Bueno Marco, te comento.
Estoy probando lo que me pasaste, era justo lo que necesitaba: tener un subdominio temporal para probar sin resignar ninguno de los otros. Pero no anda...

Lo que hice: el ctarionegro.conf que tenía andando para mi app web2py lo renombre como choiquenet.ctarionegro.conf (modifiqué el ServerName choiquenet.ctarionegro.com.ar)

ctarionegro.conf lo reemplacé por el que originalmente tenía y funciona perfecto!!!

Habilito el nuevo dominio, como vos me indicas (verifico qu ene sites-enabled este el enlace y así es), reinicio el servicio de apache2 pero al conectarme desde el navegador (http://choiquenet.ctarionegro.com.ar/) sale "servidor no encontrado".

Te pregunto: los dns me los maneja datatec, debo avisarles que pretendo usar el subdominio de ctarinonegro.com.ar??? yo creería que no es necesario... pero por las moscas te pregunto... de todos modos ya les tire al soporte técnico la consulta.

Muchas gracias de nuevo y nos seguimos leyendo




Marco Mansilla

unread,
Feb 1, 2017, 1:29:03 PM2/1/17
to web2py-...@googlegroups.com
Debería funcionar, reiniciaste el servicio de apache?, en el peor de los casos deberías editar /etc/hosts pero no creo que sea necesario

Para acceder a más opciones, visita https://groups.google.com/d/optout.

nicolás rosbaco

unread,
Feb 2, 2017, 7:40:59 AM2/2/17
to web2py-...@googlegroups.com
Marco, tenías razón. Estaba todo bien, los de datatec me tenían que crear una zona dns para mi subdominio (yo imaginé no era necesario).

Abrazo y millón de gracias por tanta ayuda



Marco Mansilla

unread,
Feb 2, 2017, 8:24:34 AM2/2/17
to web2py-...@googlegroups.com
Bien, no tengo nada contra dattatec, pero si podes contratar un servicio en digitalocean o similar seria mas rápido administrar esas cosas, ahí no tenés limitaciones de nada y haces lo que quieras, cuando quieras. Esto sobre todo cuando estas en etapas de prueba y necesitas pequeños cambios a montones y sobre la marcha, ahí te conviene un servicio auto administrado.

Yo tengo algunas vps que comparten distintos clientes y es bastante económico, pero sobre todo rápido y flexible.

Un gusto ayudarte, un gran abrazo Único.
Reply all
Reply to author
Forward
0 new messages