2016-04-13 6 views
1

を私はのmod_wsgiを使用してのapacheサーバー上HTSQLを統合したいと思います。 apacheとmod_wsgiの両方が正しく設定されましたhello world pythonスクリプトが実行され、動作します!カントの接続を確立:mod_wsgiを経由HTSQL(ファイルが見つかりません)

私は(htsql_wsgi.pyと、これらの命令を使用して命名:http://htsql.org/doc/admin/deploy.html)HTSQLのPythonスクリプトを実行しようとすると、しかし、私は500内部サーバーエラーを取得します。私に解決策を教えてもらえますか?

Apacheのエラーログが示しています。私はすでに試した

[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1] mod_wsgi (pid=5760): Target WSGI script 'C:/MAMP/scripts/htsql_wsgi.py' cannot be loaded as Python module. 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1] mod_wsgi (pid=5760): Exception occurred processing WSGI script 'C:/MAMP/scripts/htsql_wsgi.py'. 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1] Traceback (most recent call last): 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1] File "C:/MAMP/scripts/htsql_wsgi.py", line 8, in <module> 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1]  application = HTSQL(DB) 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1] File "C:\\MAMP\\bin\\python\\lib\\site-packages\\htsql\\core\\application.py", line 186, in __init__ 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1]  % (addon.name, exc)) 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1] ImportError: failed to initialize 'htsql': failed to establish database connection: file does not exist: htsql_demo.sqlite 

もの:(現在MAMPに取り組んで)Linux上で直接作業

  1. 複製エラー

  2. が正常スクリプトを実行 同じサーバー上でホストされている同じファイル(htsql_demo.sqlite)上のpython(cmdとxUbuntu端末の両方)経由で直接アクセスできます。問題は、MAMP(Windowsを使用して発生した権限を持つ

  3. プレイ(htsql_demo.sqliteを含むフォルダに777を設定)
  4. (ディレクトリを使用して設定を変更し、ファイル、場所)のhttpd.confの権限を持つプレイ

7、Apache 2.2、Python 2.7)またはxUbuntu(Apache 2.4。、Python 2.7。どちらのマシンでも、エラーは同じです。

ご意見ありがとうございました

+0

データベース・ファイル用に使用しているパス名は何ですか?プロセスの現在の作業ディレクトリがコードのどこにもないため、相対パス名は使用しないでください。 –

+0

sqlite:/// C:\ MAMP \ Scripts \ htsql_demo.sqliteのようないくつかの異なるパスを試してみました。 sqlite:C:\ MAMP \ Scripts \ htsql_demo.sqlite; sqlite:// C:/MAMP/Scripts/htsql_demo.sqlite;あなたは正しいものを知っていますか? – Dfinzgar

+0

"sqlite:/// C:/MAMP/Scripts/htsql_demo.sqlite"を試してください。バックスラッシュは次の文字をエスケープすると解釈されるため、Pythonの文字列にはバックスラッシュを使用しないでください。 –

答えて

0

問題は絶対パスを定義することにありました。代わりに「:」1「は%3Aの」 を使用する必要がありますので、正しいパスは次のようになります。

'sqlite:///C%3A/MAMP/Scripts/htsql_demo.sqlite' 
+0

2つの ':'がありますが、1つ置き換えてください! 'import urllib; s = 'sqlite:/// C:/ MAMP/Scripts/htsql_demo.sqlite''の場合、出力は 'print urllibです。'' sqlite%3A /// C%3A/MAMP/Scripts/htsql_demo.sqlite'を引用してください。この返信は問題を解決するだけです。 – dsgdfg

関連する問題