Lancer Mod_Python de Mod_WSGI sur Apache pour Django - Segmentation d'erreur (11)
Eh bien, j'ai donc besoin d'utiliser un serveur existant pour démarrer mon application Web. Django. Le serveur fonctionne sous contrôle Mac OS 10.6 Server. Il vient avec pré-installé Python 2.3, 2.5 et 2.6. J'ai édité mon fichier http.conf, Y compris ce qui suit:
ET mod_python, et mod_wsgi Définitivement chargé Apache. Preuve:
Et quand le serveur commence Apache, Mon fichier commence python django.wsgi:
Par conséquent, lorsque le serveur apache Commence dans le journal des erreurs apache Ce qui suit est affiché:
Tout a l'air bien jusqu'à ce que je puisse passer à l'URL de mon navigateur:
Eh bien, je reçois une erreur de segmentation. J'ai googlé et j'ai trouvé ça
http://code.google.com/p/modws ... dWsgi
Ce qui est génial parce que cela décrit exactement mon problème. Il m'instroie: 1. compiler python de --enable-shared ou 2. Se remettre mod_wsgi. Je ne veux pas compiler python, parce qu'il était préréglé sur le serveur Mac OS 10.6.
J'ai donc choisi l'option numéro deux. Je cours
puis ouvrez le fichier make, comme écrit et à la recherche d'une chaîne
Mais je ne peux pas le trouver. La ligne la plus proche que je puisse trouver est
Mais il est clair que je ne peux pas enlever
Si ce n'est pas là. (Je suis presque sûr que c'est la documentation de la version plus ancienne. mod_wsgi.) Je cherchais un fichier make
Mais rien ne sort.
Est-ce que quelqu'un sait comment compiler mod_wsgi 3.3 de sorte que la "bibliothèque Python En fait n'était pas lié au module mod_wsgi». ??
Aussi, ça veut dire que mod_wsgi utilisera Python 2.6 ou la version plus ancienne qui utilise évidemment mod_python?
Merci beaucoup pour votre aide!
Mise à jour sur demande Dumplton Graham:
# Force python to run in main interpreter
WSGIApplicationGroup %{GLOBAL}
# Need the wsgi module to start django up, so point to the python file that will do that.
WSGIScriptAlias /webapp/ "/WebSites/django/webapp/apache/django.wsgi"
<directory "="" apache="" django="" django.wsgi"="" webapp="" websites="">
Order deny,allow
Allow from all
</directory>
ET mod_python, et mod_wsgi Définitivement chargé Apache. Preuve:
$ apachectl -t -D DUMP_MODULES
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
...
auth_user_host_apple_module (shared)
auth_session_apple_module (shared)
python_module (shared)
php5_module (shared)
wsgi_module (shared)
passenger_module (shared)
Syntax OK
Et quand le serveur commence Apache, Mon fichier commence python django.wsgi:
import os
import sys
path = '/WebSites/django/webapp'
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'webapp.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Par conséquent, lorsque le serveur apache Commence dans le journal des erreurs apache Ce qui suit est affiché:
[Wed Aug 04 11:39:19 2010] [notice] mod_python: Creating 8 session mutexes based on 1024 max processes and 0 max threads.
[Wed Aug 04 11:39:19 2010] [notice] mod_python: using mutex_directory /tmp
[Wed Aug 04 11:39:19 2010] [notice] Apache/2.2.14 (Unix) DAV/2 SVN/1.6.5 mod_python/3.3.1 Python/2.4.6 PHP/5.3.2 mod_wsgi/3.3 Python/2.6.1 Phusion_Passenger/2.2.11 configured -- resuming normal operations
Tout a l'air bien jusqu'à ce que je puisse passer à l'URL de mon navigateur:
[Wed Aug 04 11:42:13 2010] [error] 2.6.1 (r261:67515, Feb 11 2010, 00:51:29)
[Wed Aug 04 11:42:13 2010] [error] [GCC 4.2.1 (Apple Inc. build 5646)]
[Wed Aug 04 11:42:15 2010] [notice] child pid 78097 exit signal Segmentation fault (11)
Eh bien, je reçois une erreur de segmentation. J'ai googlé et j'ai trouvé ça
http://code.google.com/p/modws ... dWsgi
Ce qui est génial parce que cela décrit exactement mon problème. Il m'instroie: 1. compiler python de --enable-shared ou 2. Se remettre mod_wsgi. Je ne veux pas compiler python, parce qu'il était préréglé sur le serveur Mac OS 10.6.
J'ai donc choisi l'option numéro deux. Je cours
./configure
puis ouvrez le fichier make, comme écrit et à la recherche d'une chaîne
LDLIBS = -lpython2.3 -lpthread -ldl -lutil
Mais je ne peux pas le trouver. La ligne la plus proche que je puisse trouver est
LDLIBS = -ldl
Mais il est clair que je ne peux pas enlever
-lpython
Si ce n'est pas là. (Je suis presque sûr que c'est la documentation de la version plus ancienne. mod_wsgi.) Je cherchais un fichier make
-lpython
Mais rien ne sort.
Est-ce que quelqu'un sait comment compiler mod_wsgi 3.3 de sorte que la "bibliothèque Python En fait n'était pas lié au module mod_wsgi». ??
Aussi, ça veut dire que mod_wsgi utilisera Python 2.6 ou la version plus ancienne qui utilise évidemment mod_python?
Merci beaucoup pour votre aide!
Mise à jour sur demande Dumplton Graham:
$ otool -L mod_python.so
mod_python.so:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.0.1)
$ otool -L mod_wsgi.so
mod_wsgi.so:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)
/System/Library/Frameworks/Python.framework/Versions/2.6/Python (compatibility version 2.6.0, current version 2.6.1)
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
1 réponses
Alice
Confirmation de:
Courir:
Pour déterminer les dépendances Python Pour chacun et spécifiez si la bibliothèque partagée est utilisée ou non, et mettez à jour la question avec cette sortie. Ensuite, je peux conseiller la prochaine étape.
Cependant, il est fortement recommandé de ne pas utiliser mod_python en même temps avec mod_wsgi, Et idéalement, vous devez refuser complètement mod_python Pour transférer des applications à une solution basée sur WSGI.
Aussi n'existent pas MacOS 1.6.