私は自分のユーザーでスクリプトを実行しています:
# from /etc/lighttpd/lighttpd.conf
server.document-root = "/opt/app/current/bin/"
server.username = "klenwell"
fastcgi.server = (
".py" => (
"localhost" => (
"socket" => "/tmp/klenwell-fastcgi.socket",
"bin-path" => "/opt/app/current/bin/app.py",
"max-procs" => 5
)
)
)
私のpythonスクリプトでは、シバンを次のように設定しています。
#!/usr/bin/env python
しかし、スクリプトを実行すると、pip でインストールしたモジュールをロードできないというエラーが表示されます。これは、pyenv バージョンではなく、システム python を使用していることを示しています。
/usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf start
(traceback omitted)
ImportError: No module named requests
pyenv python install を明示的に使用するようにシバンを変更すると、次のようになります。
#!/home/klenwell/.pyenv/versions/2.7.8/bin/python
lighttpd を正常に起動できました。
現在、同じ基本構成で、pyenv ではなく pythonbrew を使用して Web アプリケーションを正常に実行しています。しかし、pythonbrew が非推奨になったので、pyenv に移行しようとしています。ユーザーの pyenv を正常にロードするように lighttpd を構成する方法についてのアイデアはありますか?