2017-02-20 5 views
0

私は何時間もこの問題の原因を突き止めようとしています。またすべてのライブラリをインポートできるにもかかわらず、Apache/mod_wsgi/django/arch linuxの不具合が64ビットアップグレードされて以来

>>> import struct 
>>> print struct.calcsize("P") * 8 
64 

と私:

64ビットに私のアーチのLinuxのインストールを移行するので、私は64ビットである私はpython2を使用していますエラー500、と、私のDjangoのサイトでは動作しないことがわかりました64ビットmod_wsgi2いる:https://www.archlinux.org/packages/community/x86_64/mod_wsgi2/

ここでは一例ログです:

[Mon Feb 20 21:42:40.312829 2017] [wsgi:error] [pid 19537] [client 146.179.195.99:62898] mod_wsgi (pid=19537): Target WSGI script '/home/james/sites/dse/django.wsgi' cannot be loaded as Python module. 
[Mon Feb 20 21:42:40.312872 2017] [wsgi:error] [pid 19537] [client 146.179.195.99:62898] mod_wsgi (pid=19537): Exception occurred processing WSGI script '/home/james/sites/dse/django.wsgi'. 
[Mon Feb 20 21:42:40.312916 2017] [wsgi:error] [pid 19537] [client 146.179.195.99:62898] Traceback (most recent call last): 
[Mon Feb 20 21:42:40.312953 2017] [wsgi:error] [pid 19537] [client 146.179.195.99:62898] File "/home/james/sites/dse/django.wsgi", line 12, in <module> 
[Mon Feb 20 21:42:40.312997 2017] [wsgi:error] [pid 19537] [client 146.179.195.99:62898]  from django.core.wsgi import get_wsgi_application 
[Mon Feb 20 21:42:40.313006 2017] [wsgi:error] [pid 19537] [client 146.179.195.99:62898] File "/usr/lib/python2.7/site-packages/django/__init__.py", line 3, in <module> 
[Mon Feb 20 21:42:40.313056 2017] [wsgi:error] [pid 19537] [client 146.179.195.99:62898]  from django.utils.version import get_version 
[Mon Feb 20 21:42:40.313066 2017] [wsgi:error] [pid 19537] [client 146.179.195.99:62898] File "/usr/lib/python2.7/site-packages/django/utils/version.py", line 3, in <module> 
[Mon Feb 20 21:42:40.313078 2017] [wsgi:error] [pid 19537] [client 146.179.195.99:62898]  import datetime 
[Mon Feb 20 21:42:40.313103 2017] [wsgi:error] [pid 19537] [client 146.179.195.99:62898] ImportError: /usr/lib/python2.7/lib-dynload/datetime.so: wrong ELF class: ELFCLASS64 
[Mon Feb 20 21:42:40.313185 2017] [access_compat:error] [pid 19537] [client 146.179.195.99:62898] AH01797: client denied by server configuration: /usr/share/httpd/error/HTTP_INTERNAL_SERVER_ERROR.html.var 

だから、私はいや、私はエラーを得たかどうかを確認するために、手動でこれらすべてのものを輸入しようとした:

[[email protected] ~]$ python2 
Python 2.7.13 (default, Dec 21 2016, 07:16:46) 
[GCC 6.2.1 20160830] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import datetime 
>>> import django 
>>> from django.core.wsgi import get_wsgi_application 
>>> from django.utils.version import get_version 

私は私が持っていることをチェックしました: ます。LoadModule wsgi_moduleモジュール私のhttpd.confに/ mod_wsgi.so

、および/ホーム/ジェームズ/サイトの内容/ DSE /ジャンゴ(!)エラーに関与.wsgiファイルには、約3年で変更され、次のようにしているしていない。

[[email protected] dse]$ cat django.wsgi 
import os 
import sys 

sys.path.append('/home/james/sites/dse/django_dse') 
sys.path.append('/home/james/sites/dse') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'django_dse.settings' 

from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

だから私は何をすべきかわかりません。私はそれが32/64ビットの互換性問題のように聞こえるのですが、ImportErrorというエラーがあります:/usr/lib/python2.7/lib-dynload/datetime.so:ELFクラスが間違っています:ELFCLASS64 - しかし何が原因であるのか分かりません。

アイデア?

+0

Python仮想環境を使用している場合は、再作成しましたか? –

答えて

0

エラーは実際には64ビットではない別のApacheモジュールにロードされていたことが判明しました。私は私のhttpd.confの32ビットモジュールをロードした

LoadModule fastcgi_module modules/mod_fastcgi.so 

これはその後、私の32ビットモジュールのインポートに関連するエラーを与えた「apachectlの」プログラムを実行していた私は実際に識別方法を。

これがコメントアウトされたとき、私の64ビットdjangoのウェブサイトはすべて元気になりました。なぜかこれがどういう形で現れたのか分かりません...

関連する問題