2

Apache22とMercurialの問題の根本を見つけるのに苦労しています。すべてが正しく機能しているようです—リポジトリの作成、hgweb.cgiが適切に構成されたフォルダー、権限の設定など。

ここに主な問題があります。すべてが機能するのは、Apacheを手動で(再)起動した場合、それ以外の場合、システム全体の起動中、またはシステム全体の起動中に、Webサイトにアクセスできる状態でApacheを起動して実行している場合のみです。しかし、Webインターフェイスにアクセスしようとすると、ブラウザに「内部サーバーエラー」が表示され、次のメッセージが表示されます。/usr/local/etc/rc.d/apache22 restartservice apache22 restarthttp-error.log

[Fri Apr 20 17:49:40 2012] [error] [client 10.20.30.34] env: 
[Fri Apr 20 17:49:40 2012] [error] [client 10.20.30.34] python
[Fri Apr 20 17:49:40 2012] [error] [client 10.20.30.34] : 
[Fri Apr 20 17:49:40 2012] [error] [client 10.20.30.34] No such file or directory
[Fri Apr 20 17:49:40 2012] [error] [client 10.20.30.34] Premature end of script headers: hgweb.cgi

service私の推測では、これは環境変数の問題である可能性がありますが、スクリプトの実行と直接呼び出しの違いは何/usr/local/rc.d/ですか?私は何かが足りないのですか?

4

2 に答える 2

2

PATHを確認してください。Pythonがパスに含まれていないようです。たぶん、wwwユーザーのパスに/ usr / local/binを追加します

于 2012-04-20T16:22:58.780 に答える
0

解決策は、実際には、httpd(私の場合はwww )を実行しているユーザーに$PATHを調整させることです。しかし、それは誰にとっても明白ではないかもしれないので、これが私がしたことです:

コンテンツを含む/usr/local/etc/apache22/envvars.d/path.envを作成しました

#!/bin/bash
export PATH=$PATH:/usr/local/bin:/usr/local/sbin

これには、Apacheにenv_moduleをロードする必要がありますが、これはデフォルト構成でロードされる標準モジュールのように見えます。

于 2014-08-15T12:40:24.477 に答える