2017-09-30 48 views
0

私はmod_wsgiでApacheを使って私のdjangoプロジェクトを展開していました。私がやったことだった:Djangoのチュートリアルガイドとしてmod_wsgiでApacheがタイムアウトするのはなぜですか?

  1. python manage.py startproject mysite
  2. は、Apacheのconf/httpd.confの以下の構成に追加します。

    ServerName www.example.com 
    ServerAlias example.com 
    ServerAdmin [email protected] 
    
    WSGIDaemonProcess example.com processes=2 threads=15 display-name=%{GROUP} python-path=/root/mysite python-home=/usr 
    WSGIProcessGroup example.com 
    
    WSGIScriptAlias//root/mysite/mysite/wsgi.py 
    
    <Directory /root/mysite/mysite> 
    Require all granted 
    </Directory> 
    

  3. アドレスバーにexample.comと入力し、応答がタイムアウトする:

    ゲートウェイタイムアウト

    ゲートウェイは、アップストリームサーバーまたはアプリケーションからタイムリーな応答を受信しませんでした。

ちょうどおもちゃのdjangoアプリの場合にこのタイムアウトを処理する方法はありますか?私はそれがパフォーマンスの問題に関係していないと思うが、いくつかの誤った設定によって引き起こされるかもしれない。誰でも助けてくれますか?ありがとう!

答えて

0

あなたは必要ありません:あなたは、システムのPythonを使っているよう

python-home=/usr 

。 Python仮想環境を使用する場合にのみ必要です。

WSGIApplicationGroup %{GLOBAL} 
をし、それが何かを変更した場合に参照してください。

今すぐ追加します。これはまったく新しいDjangoプロジェクトではないはずですが、変更してPythonサブインタープリタで動作しない特定のPythonパッケージをインポートしている場合は、その必要があります。

また、Apacheエラーログをチェックすると、タイムアウトが発生した理由についてのより正確な理由がわかります。あなたがmod_wsgiを自分でコンパイルし、それは、Pythonのインストールに/usr/local/python3を使用したい場合は


UPDATE 1

、あなたが追加する必要があります。

WSGIPythonHome /usr/local/python3 

をちょうどwsgi_moduleためLoadModule行の後。これは、バージョン3.6用のシステムPythonをインストールしている場合には非常に重要です。

また、正しい共有ライブラリを取得しているかどうかを確認する必要があります。で説明したようにlddを使用します。

は、Pythonはそれを拾うと、それはその/usr/local/python3/lib下かを見つけているかどうかをされた共有ライブラリかを確認します。それが問題の原因となる/usr/libから1つをピックアップしている場合。

+0

こんにちは、グラハム。書式設定やコンテンツ制限の理由から、私は別の場所で回答しました。 –

関連する問題