0

(免責事項: 私は Linux を使い始めたばかりで、Apache と Python の構成についてはあまり経験がありません。)

ここでより詳細に説明されているかなり一般的な問題がありますhttp://code.google.com/p/modwsgi/wiki/IssuesWithExpatLibrary。基本的に、私の主な問題は私の Apache が expat ライブラリのバージョン 1.95.7 を使用しているのに対し、私の Python は expat ライブラリのバージョン 2.0.1 を使用していることだと 99% 確信しています。したがって、それらを一緒に使用すると、セグメンテーション違反が発生します。

ページの一番下にあるリンクで説明されているように、Apache で使用されている expat ライブラリのバージョンを Python で使用されているバージョンに置き換える/更新する必要があります。どうすればいいですか?(私はこの種のことに非常に慣れていないことに注意してください。)

編集: この問題は解決されました。以下に、私が Apache をインストールし、ソース コードから Python をビルドし、mod_wsgi をインストールし、恐ろしい国外居住者の問題を解決するために私が行ったすべてのことを文書化しました。

1) Wubi で Ubuntu をインストール

アパッチのインストール

2) Ubuntu では、Apache Unix ソース httpd-2.2.21.tar.gz をダウンロードします。

3) Apache HTTPDd tarbell からソースを抽出:

gzip -d httpd-2.2.21.tar.gz
tar xvf httpd-2.2.21.tar

4) 抽出したディレクトリ内から Apache HTTPd ソース ツリーを構成します。

sudo ./configure --prefix=/usr/local/apache2

5) Apache HTTPd パッケージを形成するさまざまなパーツを構築しました。

sudo make

6) 手順 4 で指定したディレクトリにパッケージをインストールしました

sudo make install

7) Apache HTTP サーバーを開始しました。

sudo /usr/local/apache2/bin/apachectl -k start

8) localhost を確認すると、「動作します!」と出力されました。

9) Apache HTTP サーバーを停止しました。

sudo /usr/local/apache2/bin/apachectl -k stop

ソースコードからの Python のインストール

10) 何かをビルドするために必要なすべての共通パッケージを取得しました (例: コンパイラーなど)。

sudo apt-get install build-essential

11) /etc/apt の sources.list ファイルを編集し、「deb-src」を除いて、ファイルに含まれているのとまったく同じ「deb」行を最後に追加します。

sudo nano /etc/apt/sources.list

12) 変更を認識するように apt-get を更新しました。

sudo apt-get update

13) Python のビルドに必要なすべてのライブラリを取得しました。

sudo apt-get build-dep python2.7

14) Python ソース コード Python-2.7.2.tgz をダウンロードして展開し、ディレクトリ内から次のコマンドを実行しました。

sudo ./configure --enable-shared --prefix=/usr/local

15) 構築された Python:

sudo make

16) インストール済みの Python:

sudo make install

mod_wsgi のインストール

17) ダウンロードした mod_wsgi ソース コード tar ボール mod_wsgi-3.3.tar.gz

18) 解凍され、解凍されたディレクトリ内から python で構成されます。

sudo ./configure --with-apxs=/usr/local/apache2/bin/apxs \
  --with-python=/usr/local/bin/python2.7

19) 構成されたパッケージをビルド:

sudo make

20) Apache モジュールにインストール:

sudo make install

21) ダウンロードした Django-1.3.1.tar.gz

22) 抽出されたファイル:

tar xzvf Django-1.3.1.tar.gz

23) ディレクトリ内から Django プロジェクトをインストール:

sudo python setup.py install

24) 編集された Apache httpd.conf ファイル:

sudo nano /usr/local/apache2/conf/httpd.conf

ファイルの末尾に次のディレクティブを追加しました。

LoadModule wsgi_module /usr/local/apache2/modules/mod_wsgi.so
WSGIScriptAlias / /usr/local/lib/python2.7/site-packages/django/test.wsgi
<Directory /usr/local/lib/python2.7/site-packages/django>
Order deny,allow
Allow from all
</Directory>

25) django プロジェクト ディレクトリにテスト ファイルを作成しました。

sudo nano /usr/local/lib/python2.7/site-packages/django/test.wsgi

次のコンテンツをファイルに追加しました。

def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'
    response_headers = [('Content-type', 'text/plain'),
    ('Content-Length', str(len(output)))]
    start_response(status, response_headers)
    return [output]

26) Apache を開始しました。

sudo /usr/local/apache2/bin/apachectl -k start

27) localhost をテストしたところ、「Hello World!」と出力されました。

28) アパッチを止めた:

sudo /usr/local/apache2/bin/apachectl -k stop

恐ろしい外国人問題のテスト:

29) 編集された test.wsgi ファイル:

sudo nano /usr/local/lib/python2.7/site-packages/django/test.wsgi

ファイルの先頭に次のコンテンツを追加しました。

import pyexpat

30) Apache を起動しました:

sudo /usr/local/apache2/bin/apachectl -k start

31) 「Hello World!」と表示されます。神がいます。

32) アパッチを止めた:

$ sudo /usr/local/apache2/bin/apachectl -k stop
4

1 に答える 1

1

これをお探しですか?それはかなりよく知られています-私はこれを自分で数回フォローしました。

于 2011-11-09T22:04:24.550 に答える