Error al correr cgi en python

aNgel rEsendiz g. sonajadiabolica en gmail.com
Sab Oct 28 00:50:37 CEST 2006


Que tal.

    A primera vista todo me parece correcto, vamos a ir descartando
cosas, ahora guarda este script en /usr/lib/cgi-bin/color.py

----inicia código----
#!/usr/bin/python
import cgi

print "Content-Type: text/html\n"
form=cgi.FieldStorage()
color=form.getvalue('color')

print '''<html><header><title>Seleccionar color</title></header><body>
<form action="/cgi-bin/color.py" method="post">
<input type="radio" name="color" value="black" checked>Negro<br>
<input type="radio" name="color" value="red" >Rojo<br>
<input type="radio" name="color" value="green" >green<br>
<input type="submit" value="escojer">
</form>'''
if color:
    print '<font color=%s>El color de este texto es: %s </font>'%(color,color)
print '</body></html>'
---fin del código---

La primer linea es muy importante (#!/usr/bin/python). Despues cambia
sus permisos "chmod 755 /usr/lib/cgi-bin/color.py".

    Si este ejemplo si te funciona, envia el codigo de tu script
(hora.py) para tratar de resolver el problema, si no funciona, por
favor envia los errores que obtengas, mira si hay alguno en
/var/log/apache2/error.log

Saludos.

On 10/26/06, vicente villaveces <jvicentevilla en yahoo.es> wrote:
> Saludos.
>      Mi agradecimiento a aNgel rSendiz g.   He seguido tus indicaciones, he copiado un index.html y el script hora.py al directorio /var/www y los llamo desde el navegador, con http://localhost/index.html y se puede ver sin problema luego hago: http://localhost/hora.py  y el navegador presenta un mensaje de alerta: "El archivo  /localhost/var/www/hora.py  no puede ser hallado  por favor verifique la ubicaciòn e intente nuevamente "  Okey.
>      Tambien tengo estos dos archivos en  /usr/lib/cgi-bin y al ejecutarlos con http://localhost/cgi-bin/index.html   o  http://localhost/cgi-bin/hora.py presenta el mencionado anteriormente mensaje de alerta.
>      Anexo copia del archivo /etc/apache2/sites-enabled/default.
>
>  NameVirtualHost *
>  <VirtualHost *>
>      ServerAdmin webmaster en localhost
>
>      DocumentRoot /var/www/
>      <Directory />
>          Options FollowSymLinks
>          AllowOverride None
>      </Directory>
>      <Directory /var/www/>
>          Options Indexes FollowSymLinks MultiViews
>          AllowOverride None
>          Order allow,deny
>          allow from all
>          # This directive allows us to have apache2's default start page
>                  # in /apache2-default/, but still have / go to the right place
>                  # Commented out for Ubuntu
>                  #RedirectMatch ^/$ /apache2-default/
>      </Directory>
>
>      ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
>      <Directory "/usr/lib/cgi-bin">
>          AllowOverride None
>          Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
>          Order allow,deny
>          Allow from all
>      </Directory>
>
>      ErrorLog /var/log/apache2/error.log
>
>      # Possible values include: debug, info, notice, warn, error, crit,
>      # alert, emerg.
>      LogLevel warn
>
>      CustomLog /var/log/apache2/access.log combined
>      ServerSignature On
>
>      Alias /doc/ "/usr/share/doc/"
>      <Directory "/usr/share/doc/">
>          Options Indexes MultiViews FollowSymLinks
>          AllowOverride None
>          Order deny,allow
>          Deny from all
>          Allow from 127.0.0.0/255.0.0.0 ::1/128
>      </Directory>
>
>  </VirtualHost>
>
>  El  10/25/06
> "aNgel rEsendiz g." <sonajadiabolica en gmail.com> escribió: Primero olvidate de el script de python, y escribe una pagina sencilla
> en html, un index.html, ponlo en /var/www y dinos si puedes verlo, de
> no ser así, el archivo que tienes que revisar es
> /etc/apache2/sites-enabled/default. Recuerda que para entrar a tus
> páginas/scripts, debes poner http://localhost/index.html, o
> http://localhost/cgi-bin/hora.py en tu navegador.
>
> Saludos
>
> On 10/25/06, vicente villaveces  wrote:
> > Saludos.
> > Estoy tratando de correr un cgi de prueba en python y el navegador me ppresenta el siguiente error: "Not Found The request URL /usr/lib/cgi-bin /hora.py was not found on this server"
> >        El directorio cgi-bin existe,  el archivo hora.py, existe, fuè ejecutado en la consola de python sin error.
> >        Estoy trabajando en Ubuntu 5.04 con Apache2 version 2.0.53-5ubuntu5.6 y la libapache2-mod-python2.4.
> >        Agradezco de antemano cualquier ayuda que puedan darme,
> >  anexo copia de archivo apache.conf. y del  archivo http.conf:
> >                               Att. Jose Vicente Villaveces E.
> >                              jvicentevilla en yahoo.es
> >                        Archivo Apache.conf
> >   # Based upon the NCSA server configuration files originally by Rob McCool.
> >  # Changed extensively for the Debian package by Daniel Stone
> >  # and also by Thom May .
> >   # ServerRoot: The top of the directory tree under which the server's
> >  # configuration, error, and log files are kept.
> >  #
> >  # NOTE!  If you intend to place this on an NFS (or otherwise network)
> >  # mounted filesystem then please read the LockFile documentation
> >  # (available at );
> >  # you will save yourself a lot of trouble.
> >   ServerRoot "/etc/apache2"
> >   # The LockFile directive sets the path to the lockfile used when Apache
> >  # is compiled with either USE_FCNTL_SERIALIZED_ACCEPT or
> >  # USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally be left at
> >  # its default value. The main reason for changing it is if the logs
> >  # directory is NFS mounted, since the lockfile MUST BE STORED ON A LOCAL
> >  # DISK. The PID of the main server process is automatically appended to
> >  # the filename.
> >   LockFile /var/lock/apache2/accept.lock
> >   # PidFile: The file in which the server should record its process
> >  # identification number when it starts.
> >   PidFile /var/run/apache2.pid
> >   # Timeout: The number of seconds before receives and sends time out.
> >   Timeout 300
> >   # KeepAlive: Whether or not to allow persistent connections (more than
> >  # one request per connection). Set to "Off" to deactivate.
> >   KeepAlive On
> >   # MaxKeepAliveRequests: The maximum number of requests to allow
> >  # during a persistent connection. Set to 0 to allow an unlimited amount.
> >  # We recommend you leave this number high, for maximum performance.
> >   MaxKeepAliveRequests 100
> >   # KeepAliveTimeout: Number of seconds to wait for the next request from the
> >  # same client on the same connection.
> >   KeepAliveTimeout 15
> >   ##
> >  ## Server-Pool Size Regulation (MPM specific)
> >  ##
> >   # prefork MPM
> >  # StartServers ......... number of server processes to start
> >  # MinSpareServers ...... minimum number of server processes which are kept spare
> >  # MaxSpareServers ...... maximum number of server processes which are kept spare
> >  # MaxClients ........... maximum number of server processes allowed to start
> >  # MaxRequestsPerChild .. maximum number of requests a server process serves
> >   StartServers         5
> >  MinSpareServers      5
> >  MaxSpareServers     10
> >  MaxClients          20
> >  MaxRequestsPerChild  0
> >   # pthread MPM
> >  # StartServers ......... initial  number of server processes to start
> >  # MaxClients ........... maximum  number of server processes allowed to start
> >  # MinSpareThreads ...... minimum  number of worker threads which are kept spare
> >  # MaxSpareThreads ...... maximum  number of worker threads which are kept spare
> >  # ThreadsPerChild ...... constant number of worker threads in each server process
> >  # MaxRequestsPerChild .. maximum  number of requests a server process serves
> >   StartServers         2
> >  MaxClients         150
> >  MinSpareThreads     25
> >  MaxSpareThreads     75
> >  ThreadsPerChild     25
> >  MaxRequestsPerChild  0
> >   # perchild MPM
> >  # NumServers ........... constant number of server processes
> >  # StartThreads ......... initial  number of worker threads in each server process
> >  # MinSpareThreads ...... minimum  number of worker threads which are kept spare
> >  # MaxSpareThreads ...... maximum  number of worker threads which are kept spare
> >  # MaxThreadsPerChild ... maximum  number of worker threads in each server process
> >  # MaxRequestsPerChild .. maximum  number of connections per server process (then it dies)
> >   NumServers           5
> >  StartThreads         5
> >  MinSpareThreads      5
> >  MaxSpareThreads     10
> >  MaxThreadsPerChild  20
> >  MaxRequestsPerChild  0
> >  AcceptMutex fcntl
> >   User www-data
> >  Group www-data
> >   # The following directives define some format nicknames for use with
> >  # a CustomLog directive (see below).
> >  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
> >  LogFormat "%h %l %u %t \"%r\" %>s %b" common
> >  LogFormat "%{Referer}i -> %U" referer
> >  LogFormat "%{User-agent}i" agent
> >   # Global error log.
> >  ErrorLog /var/log/apache2/error.log
> >   # Include module configuration:
> >  Include /etc/apache2/mods-enabled/*.load
> >  Include /etc/apache2/mods-enabled/*.conf
> >   # Include all the user configurations:
> >  Include /etc/apache2/httpd.conf
> >   # Include ports listing
> >  Include /etc/apache2/ports.conf
> >   # Include generic snippets of statements
> >  Include /etc/apache2/conf.d/[^.#]*
> >   #Let's have some Icons, shall we?
> >  Alias /icons/ "/usr/share/apache2/icons/"
> >       Options Indexes MultiViews
> >      AllowOverride None
> >      Order allow,deny
> >      Allow from all
> >   # Set up the default error docs.
> >  #
> >  # Customizable error responses come in three flavors:
> >  # 1) plain text 2) local redirects 3) external redirects
> >  #
> >  # Some examples:
> >  #ErrorDocument 500 "The server made a boo boo."
> >  #ErrorDocument 404 /missing.html
> >  #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
> >  #ErrorDocument 402 http://www.example.com/subscription_info.html
> >  #
> >   #
> >  # Putting this all together, we can Internationalize error responses.
> >  #
> >  # We use Alias to redirect any /error/HTTP_.html.var response to
> >  # our collection of by-error message multi-language collections.  We use
> >  # includes to substitute the appropriate text.
> >  #
> >  # You can modify the messages' appearance without changing any of the
> >  # default HTTP_.html.var files by adding the line;
> >  #
> >  #   Alias /error/include/ "/your/include/path/"
> >  #
> >  # which allows you to create your own set of files by starting with the
> >  # /usr/local/apache2/error/include/ files and
> >  # copying them to /your/include/path/, even on a per-VirtualHost basis.
> >  #
> >       Alias /error/ "/usr/share/apache2/error/"
> >           AllowOverride None
> >          Options IncludesNoExec
> >          AddOutputFilter Includes html
> >          AddHandler type-map var
> >          Order allow,deny
> >          Allow from all
> >          LanguagePriority en es de fr
> >          ForceLanguagePriority Prefer Fallback
> >       ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
> >      ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
> >      ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
> >      ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
> >      ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
> >      ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
> >      ErrorDocument 410 /error/HTTP_GONE.html.var
> >      ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
> >      ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
> >      ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
> >      ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
> >      ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var
> >      ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
> >      ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
> >      ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
> >      ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
> >      ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
> >   DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.py
> >   # UserDir is now a module
> >  #UserDir public_html
> >  #UserDir disabled root
> >   #
> >  # AllowOverride FileInfo AuthConfig Limit
> >  # Options Indexes SymLinksIfOwnerMatch IncludesNoExec
> >  #
> >   AccessFileName .htaccess
> >       Order allow,deny
> >      Deny from all
> >   UseCanonicalName Off
> >   TypesConfig /etc/mime.types
> >  DefaultType text/plain
> >   HostnameLookups Off
> >   IndexOptions FancyIndexing VersionSort
> >   AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
> >   AddIconByType (TXT,/icons/text.gif) text/*
> >  AddIconByType (IMG,/icons/image2.gif) image/*
> >  AddIconByType (SND,/icons/sound2.gif) audio/*
> >  AddIconByType (VID,/icons/movie.gif) video/*
> >   # This really should be .jpg.
> >   AddIcon /icons/binary.gif .bin .exe
> >  AddIcon /icons/binhex.gif .hqx
> >  AddIcon /icons/tar.gif .tar
> >  AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
> >  AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
> >  AddIcon /icons/a.gif .ps .ai .eps
> >  AddIcon /icons/layout.gif .html .shtml .htm .pdf
> >  AddIcon /icons/text.gif .txt
> >  AddIcon /icons/c.gif .c
> >  AddIcon /icons/p.gif .pl .py
> >  AddIcon /icons/f.gif .for
> >  AddIcon /icons/dvi.gif .dvi
> >  AddIcon /icons/uuencoded.gif .uu
> >  AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
> >  AddIcon /icons/tex.gif .tex
> >  AddIcon /icons/bomb.gif core
> >   AddIcon /icons/back.gif ..
> >  AddIcon /icons/hand.right.gif README
> >  AddIcon /icons/folder.gif ^^DIRECTORY^^
> >  AddIcon /icons/blank.gif ^^BLANKICON^^
> >   # This is from Matty J's patch. Anyone want to make the icons?
> >  #AddIcon /icons/dirsymlink.jpg ^^SYMDIR^^
> >  #AddIcon /icons/symlink.jpg ^^SYMLINK^^
> >   DefaultIcon /icons/unknown.gif
> >   ReadmeName README.html
> >  HeaderName HEADER.html
> >   IndexIgnore .??* *~ *# HEADER* RCS CVS *,t
> >   AddEncoding x-compress Z
> >  AddEncoding x-gzip gz tgz
> >   AddLanguage da .dk
> >  AddLanguage nl .nl
> >  AddLanguage en .en
> >  AddLanguage et .et
> >  AddLanguage fr .fr
> >  AddLanguage de .de
> >  AddLanguage el .el
> >  AddLanguage it .it
> >  AddLanguage ja .ja
> >  AddLanguage pl .po
> >  AddLanguage ko .ko
> >  AddLanguage pt .pt
> >  AddLanguage no .no
> >  AddLanguage pt-br .pt-br
> >  AddLanguage ltz .ltz
> >  AddLanguage ca .ca
> >  AddLanguage es .es
> >  AddLanguage sv .se
> >  AddLanguage cz .cz
> >  AddLanguage ru .ru
> >  AddLanguage tw .tw
> >  AddLanguage zh-tw .tw
> >   LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw
> >   #AddDefaultCharset ISO-8859-1
> >   AddCharset ISO-8859-1  .iso8859-1  .latin1
> >  AddCharset ISO-8859-2  .iso8859-2  .latin2 .cen
> >  AddCharset ISO-8859-3  .iso8859-3  .latin3
> >  AddCharset ISO-8859-4  .iso8859-4  .latin4
> >  AddCharset ISO-8859-5  .iso8859-5  .latin5 .cyr .iso-ru
> >  AddCharset ISO-8859-6  .iso8859-6  .latin6 .arb
> >  AddCharset ISO-8859-7  .iso8859-7  .latin7 .grk
> >  AddCharset ISO-8859-8  .iso8859-8  .latin8 .heb
> >  AddCharset ISO-8859-9  .iso8859-9  .latin9 .trk
> >  AddCharset ISO-2022-JP .iso2022-jp .jis
> >  AddCharset ISO-2022-KR .iso2022-kr .kis
> >  AddCharset ISO-2022-CN .iso2022-cn .cis
> >  AddCharset Big5        .Big5       .big5
> >  # For russian, more than one charset is used (depends on client, mostly):
> >  AddCharset WINDOWS-1251 .cp-1251   .win-1251
> >  AddCharset CP866       .cp866
> >  AddCharset KOI8-r      .koi8-r .koi8-ru
> >  AddCharset KOI8-ru     .koi8-uk .ua
> >  AddCharset ISO-10646-UCS-2 .ucs2
> >  AddCharset ISO-10646-UCS-4 .ucs4
> >  AddCharset UTF-8       .utf8
> >   AddCharset GB2312      .gb2312 .gb
> >  AddCharset utf-7       .utf7
> >  AddCharset utf-8       .utf8
> >  AddCharset big5        .big5 .b5
> >  AddCharset EUC-TW      .euc-tw
> >  AddCharset EUC-JP      .euc-jp
> >  AddCharset EUC-KR      .euc-kr
> >  AddCharset shift_jis   .sjis
> >   #AddType application/x-httpd-php .php
> >  #AddType application/x-httpd-php-source .phps
> >   AddType application/x-tar .tgz
> >   # To use CGI scripts outside /cgi-bin/:
> >  #
> >  #AddHandler cgi-script .cgi
> >  Addhandler cgi-script .cgi .py
> >  # To use server-parsed HTML files
> >  #
> >       SetOutputFilter INCLUDES
> >   # If you wish to use server-parsed imagemap files, use
> >  #
> >  #AddHandler imap-file map
> >   BrowserMatch "Mozilla/2" nokeepalive
> >  BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
> >  BrowserMatch "RealPlayer 4\.0" force-response-1.0
> >  BrowserMatch "Java/1\.0" force-response-1.0
> >  BrowserMatch "JDK/1\.0" force-response-1.0
> >   #
> >  # The following directive disables redirects on non-GET requests for
> >  # a directory that does not include the trailing slash.  This fixes a
> >  # problem with Microsoft WebFolders which does not appropriately handle
> >  # redirects for folders with DAV methods.
> >  #
> >   BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
> >  BrowserMatch "^WebDrive" redirect-carefully
> >  BrowserMatch "^gnome-vfs" redirect-carefully
> >  BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
> >   # Allow server status reports, with the URL of http://servername/server-status
> >  # Change the ".your_domain.com" to match your domain to enable.
> >  #
> >  #
> >  #    SetHandler server-status
> >  #    Order deny,allow
> >  #    Deny from all
> >  #    Allow from .your_domain.com
> >  #
> >   # Allow remote server configuration reports, with the URL of
> >  #  http://servername/server-info (requires that mod_info.c be loaded).
> >  # Change the ".your_domain.com" to match your domain to enable.
> >  #
> >  #
> >  #    SetHandler server-info
> >  #    Order deny,allow
> >  #    Deny from all
> >  #    Allow from .your_domain.com
> >  #
> >   # Include the virtual host configurations:
> >  Include /etc/apache2/sites-enabled/[^.#]*
> >  # lineas añadidas
> >  LoadModule Python-module /usr/lib/apache2/modules/mod_python.so
> >  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
> >     AllowOverride None
> >    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
> >    Order allow,deny
> >    Allow from all
> >   DirectoryIndex /usr/cgi-bin/script.py
> >                             Archivo http.conf
> >   # This is here for backwards compatability reasons and to support
> >  #  installing 3rd party modules directly via apxs2, rather than
> >  #  through the /etc/apache2/mods-{available,enabled} mechanism.
> >  #
> >  #LoadModule mod_placeholder /usr/lib/apache2/modules/mod_placeholder.so
> >  # linea añadida
> >
> >
> > ---------------------------------
> >
> > LLama Gratis a cualquier PC del Mundo.
> > Llamadas a fijos y móviles desde 1 céntimo por minuto.
> > http://es.voice.yahoo.com
> > _______________________________________________
> > Python-es mailing list
> > Python-es en aditel.org
> > http://listas.aditel.org/listinfo/python-es
> >
>
>
> --
> aNgel rEsendiz.!
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
>
>
> ---------------------------------
>
> LLama Gratis a cualquier PC del Mundo.
> Llamadas a fijos y móviles desde 1 céntimo por minuto.
> http://es.voice.yahoo.com
>
> ---------------------------------
>
> LLama Gratis a cualquier PC del Mundo.
> Llamadas a fijos y móviles desde 1 céntimo por minuto.
> http://es.voice.yahoo.com
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>


-- 
aNgel rEsendiz.!




Más información sobre la lista de distribución Python-es