Lancer Python localement sur Mountain Lion

J’ai mon environnement local configuré pour exécuter MySQL et PHP. Je commence à me lancer dans d’autres langues et à essayer d’exécuter Java, Python et Ruby sur mon serveur Web local. Toutes les langues sont installées correctement mais apache ne les reconnaît pas ou ne me donne pas de permission.

J’ai commencé avec Python et après beaucoup de problèmes pour qu’Apache reconnaisse le fichier .mod, je reçois maintenant une erreur 403 lorsque je vais sur cette page.

Je ne sais pas quelle est la prochaine étape pour essayer de faire en sorte que cela fonctionne correctement.

403 Interdit

Interdit

Vous n’êtes pas autorisé à accéder / sur ce serveur.

 DocumentRoot "/Library/Webserver/Documents/python-mn" ServerName python.local ServerAlias www.python.local WSGIScriptAlias / /Library/WebServer/Documents/python-mn/wsgi.py  #Options Indexes FollowSymLinks MultiViews Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny allow from all   

Vérifié le journal des erreurs Apache:

 tail -f /var/log/apache2/error_log [Fri Sep 06 15:30:51 2013] [error] [client 127.0.0.1] mod_hfs_apple: Mis-cased URI or unacceptable Unicode in URI: /Library/WebServer/Documents/python-mn/wsgi.py, wants: /Library/Webserver/Documents/python-mn/ 

Ping l’environnement local:

 ping python.local PING python.local (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.041 ms 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.054 ms 64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.153 ms 64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.159 ms 64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.130 ms 64 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=0.134 ms 64 bytes from 127.0.0.1: icmp_seq=6 ttl=64 time=0.054 ms 64 bytes from 127.0.0.1: icmp_seq=7 ttl=64 time=0.073 ms 64 bytes from 127.0.0.1: icmp_seq=8 ttl=64 time=0.135 ms 64 bytes from 127.0.0.1: icmp_seq=9 ttl=64 time=0.111 ms 64 bytes from 127.0.0.1: icmp_seq=10 ttl=64 time=0.130 ms 64 bytes from 127.0.0.1: icmp_seq=11 ttl=64 time=0.131 ms 64 bytes from 127.0.0.1: icmp_seq=12 ttl=64 time=0.133 ms 64 bytes from 127.0.0.1: icmp_seq=13 ttl=64 time=0.136 ms 64 bytes from 127.0.0.1: icmp_seq=14 ttl=64 time=0.132 ms 64 bytes from 127.0.0.1: icmp_seq=15 ttl=64 time=0.140 ms 64 bytes from 127.0.0.1: icmp_seq=16 ttl=64 time=0.136 ms 64 bytes from 127.0.0.1: icmp_seq=17 ttl=64 time=0.105 ms 64 bytes from 127.0.0.1: icmp_seq=18 ttl=64 time=0.052 ms 64 bytes from 127.0.0.1: icmp_seq=19 ttl=64 time=0.074 ms 

MacBook Pro (Retina, 15 pouces, début 2013), OS X Mountain Lion (10.8.4)

—modifier—

Fichier wsgi.py:

 import bottle import os def application(environ, start_response): data = "Hello World!" start_response("200 OK", [ ("Content-Type", "text/plain"), ("Content-Length", str(len(data))) ]) return iter([data]) 

— edit 9/9/13 11:46 —

Nouvelle erreur maintenant:

Erreur Interne du Serveur

Le serveur a rencontré une erreur interne ou une configuration incorrecte et n’a pas pu terminer votre demande.

Veuillez contacter l’administrateur du serveur, [email protected], et l’informer de l’heure à laquelle l’erreur s’est produite et de tout ce qui a pu être à l’origine de l’erreur.

Plus d’informations sur cette erreur peuvent être disponibles dans le journal des erreurs du serveur.

journal des erreurs apache

 [Mon Sep 09 11:43:08 2013] [notice] caught SIGTERM, shutting down [Mon Sep 09 11:43:08 2013] [warn] Init: Session Cache is not configured [hint: SSLSessionCache] httpd: Could not reliably determine the server's fully qualified domain name, using Micheles-MacBook.local for ServerName [Mon Sep 09 11:43:08 2013] [warn] mod_wsgi: Comstackd for Python/2.6.1. [Mon Sep 09 11:43:08 2013] [warn] mod_wsgi: Runtime using Python/2.6.7. [Mon Sep 09 11:43:08 2013] [notice] Digest: generating secret for digest authentication ... [Mon Sep 09 11:43:08 2013] [notice] Digest: done [Mon Sep 09 11:43:08 2013] [notice] Apache/2.2.22 (Unix) mod_wsgi/3.3 Python/2.6.7 PHP/5.5.3 mod_ssl/2.2.22 OpenSSL/0.9.8x DAV/2 configured -- resuming normal operations [Mon Sep 09 11:43:18 2013] [error] [client 127.0.0.1] mod_wsgi (pid=7888): Target WSGI script '/Library/WebServer/Documents/python-mn/wsgi.py' cannot be loaded as Python module. [Mon Sep 09 11:43:18 2013] [error] [client 127.0.0.1] mod_wsgi (pid=7888): Exception occurred processing WSGI script '/Library/WebServer/Documents/python-mn/wsgi.py'. [Mon Sep 09 11:43:18 2013] [error] [client 127.0.0.1] Traceback (most recent call last): [Mon Sep 09 11:43:18 2013] [error] [client 127.0.0.1] File "/Library/WebServer/Documents/python-mn/wsgi.py", line 1, in  [Mon Sep 09 11:43:18 2013] [error] [client 127.0.0.1] import bottle [Mon Sep 09 11:43:18 2013] [error] [client 127.0.0.1] ImportError: No module named bottle [Mon Sep 09 11:43:18 2013] [error] [client 127.0.0.1] mod_wsgi (pid=7888): Target WSGI script '/Library/WebServer/Documents/python-mn/wsgi.py' cannot be loaded as Python module. [Mon Sep 09 11:43:18 2013] [error] [client 127.0.0.1] mod_wsgi (pid=7888): Exception occurred processing WSGI script '/Library/WebServer/Documents/python-mn/wsgi.py'. [Mon Sep 09 11:43:18 2013] [error] [client 127.0.0.1] Traceback (most recent call last): [Mon Sep 09 11:43:18 2013] [error] [client 127.0.0.1] File "/Library/WebServer/Documents/python-mn/wsgi.py", line 1, in  [Mon Sep 09 11:43:18 2013] [error] [client 127.0.0.1] import bottle [Mon Sep 09 11:43:18 2013] [error] [client 127.0.0.1] ImportError: No module named bottle 

C’est ce que j’attendais, c’est la même structure de fichiers et le même code que mon installation AppFog: http://python-mn.aws.af.cm/

— edit 09/09/13 13:03 —

J’ai fait une commande de terminal pour installer la bouteille … je ne sais pas comment faire en sorte que le fichier wsgi.py ou vhosts sache où le trouver. Apparemment, le serveur AppFog avait cela nativement et c’est pourquoi je n’avais besoin de rien de plus pour le faire fonctionner.

 easy_install -U bottle Searching for bottle Reading https://pypi.python.org/simple/bottle/ Best match: bottle 0.11.6 Downloading https://pypi.python.org/packages/source/b/bottle/bottle- 0.11.6.tar.gz#md5=0bafdc4e13ea2b1a3bddf36b5af108c4 Processing bottle-0.11.6.tar.gz Writing /var/folders/hc/dtnjvkvn1dd931bkkxty_05w0000gn/T/easy_install-QS4GZM/bottle-0.11.6/setup.cfg Running bottle-0.11.6/setup.py -q bdist_egg --dist-dir /var/folders/hc/dtnjvkvn1dd931bkkxty_05w0000gn/T/easy_install-QS4GZM/bottle-0.11.6/egg-dist- tmp-pQrFpa zip_safe flag not set; analyzing archive contents... bottle: module references __file__ bottle: module references __path__ Adding bottle 0.11.6 to easy-install.pth file Installing bottle.py script to /usr/local/bin Installed /usr/local/lib/python2.7/site-packages/bottle-0.11.6-py2.7.egg Processing dependencies for bottle Finished processing dependencies for bottle 

Essayez ceci (ou basculez éventuellement WebServer sur le serveur Web (ce que j’ai changé, c’est que tous les chemins d’access soient WebServer; vous aviez un serveur Web (S minuscule) et un serveur Web)

  DocumentRoot "/Library/WebServer/Documents/python-mn" ServerName python.local ServerAlias www.python.local WSGIScriptAlias / /Library/WebServer/Documents/python-mn/wsgi.py  #Options Indexes FollowSymLinks MultiViews Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny allow from all   

Selon le mod_hfs_guide d’Apple , votre message d’erreur est dû au fait qu’Apple essaie de vous protéger contre une personne qui profite de l’insistance de HFS pour accéder à quelque chose qui devrait être protégé en utilisant une version en casse du nom.

Je vois que tu l’as compris, mais pour référence future …

Il semble que la bottle ne fasse pas partie de votre chemin système Python. Pour l’append à votre chemin, vous avez deux options:

  1. Ajoutez manuellement la bottle à votre chemin Python en le téléchargeant ici:

    https://pypi.python.org/pypi/bottle/0.11.6

    Une fois téléchargé, exécutez:

     tar xvf bottle-0.11.6.tar.gz cd bottle-0.11.6/ sudo python setup.py install 
  2. Utilisez un gestionnaire de paquets pour le tirer pour vous. Vous pouvez installer pip (vous pouvez également utiliser easy_install, brew ou macports) à partir d’ici:

    https://pypi.python.org/pypi/pip/1.4.1

    Et puis, une fois installé (similaire à ci-dessus), exécutez:

     pip install bottle