Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Apache e script python

  1. #1

    Apache e script python

    ciao!

    volevo far eseguire uno script python usando apache.
    ho abilitato il modulo:
    codice:
    # a2enmod cgi
    # service apache2 restart
    poi ho modificato il mio file default-ssl.conf:
    codice:
    <IfModule mod_ssl.c>
        <VirtualHost _default_:443>
           ......................
    
            <FilesMatch "\.(cgi|shtml|phtml|php)$">
                    SSLOptions +StdEnvVars
            </FilesMatch>
           
            # PRESENTE DI DEFAULT
            <Directory /usr/lib/cgi-bin>
                    SSLOptions +StdEnvVars
            </Directory>
            
            # AGGIUNTO IO
            <Directory /var/www/html>
                Options +ExecCGI
                    AddHandler cgi-script .py
              </Directory>
    
            BrowserMatch "MSIE [2-6]" \
                    nokeepalive ssl-unclean-shutdown \
                    downgrade-1.0 force-response-1.0
            # MSIE 7 and newer should be able to use keepalive
            BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
    
        </VirtualHost>
    </IfModule>
    e riavviato il server.

    poi ho creato un file python:
    codice:
    #!/usr/bin/python3
    
    import cgitb
    
    cgitb.enable()
    print("Content-Type: text/html;charset=utf-8")
    print("Hello World!")
    se provo ad andare su www.sito.it/test.py, il file non lo esegue ma me lo fa scaricare.
    cosa sto sbagliando secondo voi??

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Forse il file non è eseguibile? Prova a fare un chmod +x su test.py e vedi se funziona.

  3. #3
    si avevo già provato:
    codice:
    # ls -l test.py 
    -rwxr-xr-x 1 root root 119 Sep 19 08:12 test.py
    cmq me lo fa scaricare.
    ho anche provato a dargli permessi massimi (777), ma niente da fare!

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Al file ci accedi tramite https giusto? Sembra che qualcosa non funzioni correttamente nell'handler.

  5. #5
    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    Al file ci accedi tramite https giusto? Sembra che qualcosa non funzioni correttamente nell'handler.
    si tramite https.
    ho anche provato a spostare questo pezzo:
    codice:
      <Directory /var/www/html>
                Options +ExecCGI
                    AddHandler cgi-script .py
              </Directory>

    dentro a /conf-available/serve-cgi-bin.conf.
    ma così ottengo proprio un errore 500.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    E' già meglio. Controlla i log di apache dopo che ti ha dato l'errore 500 e posta quello che ti dice.
    Dai comandi immagino tu sia su ubuntu giusto?

  7. #7
    sono su debian!

    questo il mio file serve-cgi-bin.conf:
    codice:
    <IfModule mod_alias.c>
            <IfModule mod_cgi.c>
                    Define ENABLE_USR_LIB_CGI_BIN
            </IfModule>
    
            <IfModule mod_cgid.c>
                    Define ENABLE_USR_LIB_CGI_BIN
            </IfModule>
    
            <IfDefine ENABLE_USR_LIB_CGI_BIN>
                    #ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
                    #<Directory "/usr/lib/cgi-bin">
                            #AllowOverride None
                            #Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                            #Require all granted
                    #</Directory>
    
                    <Directory "/var/www/html/cgi-bin">
                            AllowOverride None
                            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                            Require all granted
                            AddHandler cgi-script .py
                    </Directory>
            </IfDefine>
    </IfModule>
    se vado su www.sito.it/cgi-bin/test.py, ottengo 500 Internal Server Error.

    l'errore che ho dai log è questo:
    codice:
    malformed header from script 'test.py': Bad header: Hello World!
    quindi suppongo sia un errore dello script python!

  8. #8
    risolto:
    codice:
    #!/usr/bin/python3
    
    import cgitb
    
    cgitb.enable()
    print("Content-Type: text/html;charset=utf-8\r\n")
    print("Hello World!")
    in pratica l'header deve terminare con \r\n.
    adesso funziona tutto!

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Ottimo, la configurazione infatti mi sembrava corretta.
    Però lo script non lo avevo proprio guardato.

  10. #10
    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    Ottimo, la configurazione infatti mi sembrava corretta.
    Però lo script non lo avevo proprio guardato.
    ma infatti me ne sono accorto cercando l'errore del log in giro.
    solo che mi ero attenuto ad una guida che non considerava questa cosa....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.