2017-01-23 1 views
1

donc on m'a conseillé d'utiliser wsgi au lieu de cgi, donc j'ai essayé de le configurer avec les paramètres suivants pour un exemple de base , sans Django:apache - wsgi - python - exemple de base

spécifications :

  • linux Kubuntu, apache 2.4, python 3.5
  • apache est en cours d'exécution, mod_wsgi installé et activé
  • fichiers de site Web sont root/var/www/html /, j'ai accès sudo dans ce dossier
  • le chemin python 3.5 est usr/bin/env python3
  • le script python: « index.py, des scripts simples , a été fait exécutable
  • la vie exécutables python dans la racine/var/www/scripts

Questions:

  • comment puis-je faire cette fonction recracher il le résultat

  • quel est le problème avec ce script wsgi? Je n'ai pas besoin pour cela, je ne veux pas aussi des extensions de wsgi

  • ce que la directive apache dois-je présenter pour exécuter un script
  • Alors, où vit la fonction « d'application »?

vraiment perdu dans cette idée wsgi, des éclaircissements pourrait aider

+0

utilisation 'Flask',' Bottle', etc. Web Framework et construire la page web. Ils ont un serveur intégré de sorte que vous n'avez pas besoin d'Apache au démarrage. – furas

+0

Avez-vous essayé d'accéder à index.py à partir d'un navigateur? Si oui, quel résultat obtenez-vous? –

+0

@furas: Je ne veux délibérément utiliser aucun framework web – hewi

Répondre

0

donc commençons par ce que je sais et que vous souhaitez, en utilisant la minimalistic approche:

plus utile informations provenant deshellhacks.com et modwsgi.readthedocs.io

  • télécharger le dernier module mod-wsgi de here et extraire
  • $ ./configure --with-python =/usr/local/bin/python3.5
  • $ font
  • $ sudo make install
  • $ cd etc/apache2/mods-disponible/
  • $ sudo kate wsgi.load

LoadModule wsgi_module/mod_wsgi.so

  • $ sudo a2enmod wsgi
  • $ sudo Service apache2 restart

  • lieu après « étincelle.script « py dans le document dossier racine de apache (qui est la racine/var/www/html pour moi) en utilisant votre éditeur de texte favori (qui dans ce cas est Kate pour moi)

    $ kate /var/www/html/spark.py 
    
    def application(environ, start_response): 
        status = '200 OK' 
        output = b'Hello World!\n' 
        response_headers = [('Content-type', 'text/plain'), 
           ('Content-Length', str(len(output)))] 
        start_response(status, response_headers) 
        return [output] 
    
  • ajouter la directive alias de script WSGI aux etc/apache2/sites disponibles/000 default.conf

    $ sudo kate etc/apache2/sites-available/000-default.conf 
    
    <VirtualHost *:80> 
        #lots and lots of comments 
        some actual directives 
        like DocumentRoot /var/www/html 
    
        # more comments 
        more directives 
    
        # and all the way at the end 
        # THE ACTUAL DIRECTIVE 
        WSGIScriptAlias//var/www/html/spark.py 
    
    </VirtualHost> 
    
  • $ sudo service de redémarrage apache

  • Parcourir pour localhost (si vous configurez sur le serveur apache local) et vous devriez voir les mots les plus célèbres dans toute l'histoire de la programmation et l'homme se sent-bon de voir ceux-ci:)

choses à faire: créer l'application, pointez le script que ...