2017-03-20 7 views
0

LinuxMint18.1でApacheとmod_wsgを使用するには、djangoチュートリアルとmod_wsgiインストールガイドに従いますが、apache2ctl startを実行するとエラーが発生します。Linuxでmod_wsgiを使用しているときにエラーが発生したのはなぜですか?

Current thread 0x00007f88c10c7780 (most recent call first): 
[Mon Mar 20 21:23:28.781270 2017] [core:notice] [pid 32458:tid 140225331099520] AH00052: child pid 7962 exit signal Aborted (6) 
Fatal Python error: Py_Initialize: can't initialize sys 

私には間違いがありますか?

私はApacheとmod_wsgiをインストールするには、以下の手順に従ってください。

apt-getをapache2の
  • apt-getのインストールのapache2-devの
  • はpython3.5-devの
  • をインストールapt-getをインストール
    1. wgetのhttps://github.com/GrahamDumpleton/mod_wsgi/archive/4.5.15.tar.gz
    2. タール-zxvfのmod_wsgi-4.5.15.tar.gz
    3. CDのmod_wsgi-4.5.15
    4. に./configure --with-pythonの=は/ usr/binに/ python3.5
    5. は、make installを作る

    ls /usr/bin/ -aoh |grep pythonの出力は、次のとおりです。

    lrwxrwxrwx 1 root 26 3月 18 09:40 dh_pypy -> ../share/dh-python/dh_pypy 
    -rwxr-xr-x 1 root 1.1K 12月 10 2015 dh_python2 
    lrwxrwxrwx 1 root 29 3月 18 09:40 dh_python3 -> ../share/dh-python/dh_python3 
    lrwxrwxrwx 1 root 23 3月 18 09:40 pdb2.7 -> ../lib/python2.7/pdb.py 
    lrwxrwxrwx 1 root 23 3月 18 09:40 pdb3.5 -> ../lib/python3.5/pdb.py 
    lrwxrwxrwx 1 root 31 3月 18 09:40 py3versions -> ../share/python3/py3versions.py 
    lrwxrwxrwx 1 root 26 3月 18 09:40 pybuild -> ../share/dh-python/pybuild 
    lrwxrwxrwx 1 root 18 3月 20 18:36 python -> /usr/bin/python2.7 
    lrwxrwxrwx 1 root  9 3月 18 09:40 python2 -> python2.7 
    -rwxr-xr-x 1 root 3.4M 11月 19 17:35 python2.7 
    lrwxrwxrwx 1 root  9 3月 18 09:40 python3 -> python3.5 
    -rwxr-xr-x 1 root 4.3M 11月 18 03:23 python3.5 
    lrwxrwxrwx 1 root 33 11月 18 03:23 python3.5-config -> x86_64-linux-gnu-python3.5-config 
    -rwxr-xr-x 1 root 4.3M 11月 18 03:23 python3.5m 
    lrwxrwxrwx 1 root 34 11月 18 03:23 python3.5m-config -> x86_64-linux-gnu-python3.5m-config 
    lrwxrwxrwx 1 root 10 3月 18 09:40 python3m -> python3.5m 
    lrwxrwxrwx 1 root 29 3月 18 09:40 pyversions -> ../share/python/pyversions.py 
    lrwxrwxrwx 1 root 34 11月 18 03:23 x86_64-linux-gnu-python3.5-config -> x86_64-linux-gnu-python3.5m-config 
    -rwxr-xr-x 1 root 3.2K 11月 18 03:20 x86_64-linux-gnu-python3.5m-config 
    

    /etc/apache2/apache2.conf

    LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so 
    
    WSGIScriptAlias//home/jeffrey/桌面/Workspace/django-env/hello_django/hello_django/wsgi.py 
    WSGIPythonHome /home/jeffrey/桌面/Workspace/django-env 
    WSGIPythonPath /home/jeffrey/桌面/Workspace/django-env/hello_django 
    
    <Directory /home/jeffrey/桌面/Workspace/django-env/hello_django/hello_django> 
    <Files wsgi.py> 
    Require all granted 
    </Files> 
    </Directory> 
    

    プロジェクトファイルの構造

    django-env 
    ├── hello_django 
    │   ├── hello_django 
    │   │   └── wsgi.py 
    
    +0

    virtualenvを使用していますか? httpd.confとwsgiファイルの適切な部分は何ですか? –

    +0

    これは、一般的に、非標準の場所にPythonインストールを使用してソースコードからmod_wsgiをビルドしたことを示しますが、Pythonのバージョンはシステム全体で同じメジャー/マイナーバージョンでインストールされており、間違ったPython共有ライブラリを取得しています。使用しているPythonのバージョンとインストールされている場所の詳細。 –

    +0

    @GrahamDumpleton私はそれについて詳しく説明しましたが、あなたはそれを見てみることができますか? – Jeffery

    答えて

    0

    似たような問題が発生し、解決にかなりの時間を費やしました。最後に、私はRHEL7で作業するための以下の指示を書いた。あなたはおそらくUbuntuを使用しているので、以下のレシピを読んでそれに応じて変更してください。それは助けるかもしれない。

    Setup: RHEL 7, Apache 2.4, Python3.5 
    ------------------------------------------------------------------------- 
    1. mod_wsgi-------------------------------------------------------------- 
    ------------------------------------------------------------------------- 
    See how I used my python3.5 interpreter to install mod_wsgi. 
    wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.5.14.tar.gz 
    tar -zxvf 4.5.14.tar.gz 
    cd mod_wsgi-4.5.14 
    ./configure --with-python=/usr/bin/python3.5 
    make 
    make install 
    chmod 755 /usr/lib64/httpd/modules/mod_wsgi.so 
    
    ------------------------------------------------------------------------- 
    2. conf file------------------------------------------------------------- 
    ------------------------------------------------------------------------- 
    My website conf file in /etc/httpd/conf.d dir 
    portal.conf 
    
    LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi.so 
    <VirtualHost *:80> 
        ServerAdmin [email protected] 
        ServerName portal 
        ServerAlias portal.com 
        DocumentRoot /var/www/html/portal/src/ 
    
        WSGIDaemonProcess portal python-path=/var/www/html/portal/src:/var/www/html/portal/venv/lib/python3.5/site-packages 
        WSGIApplicationGroup portal 
        WSGIScriptAlias//var/www/html/portal/src/portal/wsgi.py process-group=portal 
    
        <Directory /var/www/html/portal/src> 
        Require all granted 
        </Directory> 
    
        <Directory /var/www/html/portal/src/portal> 
        <Files wsgi.py> 
         Require all granted 
        </Files> 
        </Directory> 
    
        Alias /static /var/www/html/portal/src/static 
        <Directory /var/www/html/portal/src/static> 
        Require all granted 
        </Directory> 
    
        Alias /static /var/www/html/portal/src/templates 
        <Directory /var/www/html/portal/src/templates> 
        Require all granted 
        </Directory> 
    
        Alias /static /var/www/html/portal/src/media 
        <Directory /var/www/html/portal/src/media> 
        Require all granted 
        </Directory> 
    
    </VirtualHost> 
    ------------------------------------------------------------------------- 
    Correct permissions on /var/www/html/------------------------------------ 
    ------------------------------------------------------------------------- 
    chgrp -R apache /var/www/html 
    find /var/www/html -type d -exec chmod g+rx {} + 
    find /var/www/html -type f -exec chmod g+r {} + 
    
    chown -R user1 /var/www/html/ 
    find /var/www/html -type d -exec chmod u+rwx {} + 
    find /var/www/html -type f -exec chmod u+rw {} + 
    
    find /var/www/html -type d -exec chmod g+s {} + 
    
    +0

    デーモンモードプロセスで使用する仮想環境を指定するときは、 '' python-path''を '' site-packages''に使用しないでください。 '' python-home''オプションを使って仮想環境のルート。 mod_wsgiを使って仮想環境を設定する方法のドキュメントを読んでください。 http://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html –

    +0

    '' WSGIApplicationGroup%{GLOBAL} ''を使うこともお勧めします。できるだけ、使用しているアプリケーショングループのサブインタープリタを避けてください。 –

    +0

    @GrahamDumpleton入力いただきありがとうございます。 – nomad

    関連する問題