Django インストール · 2 min read · Dec 04, 2025

Mandriva 2008.1 に Django をインストールする方法 (Apache2/mod_python)

Mandriva 2008.1 に Django をインストールする方法 (Apache2/mod_python)

バージョン 1.0
著者: Falko Timme

このチュートリアルでは、Mandriva 2008.1 サーバーに Django をインストールする方法を説明します。Django は、できるだけ自動化された形で Python ウェブアプリケーションを迅速に開発できるウェブフレームワークです。このガイドでは、Apache2 と mod_python を使用します。

このハウツーは実用的なガイドとして意図されています。理論的な背景についてはカバーしていません。それらはウェブ上の他の多くの文書で扱われています。

この文書は、いかなる種類の保証もありません!これは、このようなシステムを設定する唯一の方法ではないことを言いたいです。この目標を達成する方法はたくさんありますが、これは私が取る方法です。これがあなたにとって機能することを保証するものではありません!

1 MySQL をインストールする

パッケージをインストールする前に、main、main_updates、contrib、および contrib_updates リポジトリを有効にする必要があります。http://easyurpmi.zarb.org/ にアクセスしてください。これにより、これらのリポジトリを有効にするために実行する必要があるコマンドが表示されます。私の場合、次のコマンドを実行しました。

urpmi.addmedia contrib ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/release with media_info/hdlist.cz
urpmi.addmedia --update contrib_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/updates with media_info/hdlist.cz
urpmi.addmedia main ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/release with media_info/hdlist.cz
urpmi.addmedia --update main_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/updates with media_info/hdlist.cz

Django は、PostgreSQL、MySQL、SQLite など、複数のデータベースバックエンドを使用できます。MySQL を使用したい場合は、次のようにインストールできます。

urpmi MySQL MySQL-client

デフォルトでは、Mandriva 2008.1 の MySQL パッケージではネットワーキングが有効になっていません。これを変更するには、/etc/my.cnf の skip-networking 行をコメントアウトします。

vi /etc/my.cnf

| [...] # TCP/IP ポートで全くリッスンしません。これはセキュリティの強化になる可能性があります。 # mysqld に接続する必要があるすべてのプロセスが同じホストで実行される場合。 # mysqld とのすべてのやり取りは Unix ソケットまたは名前付きパイプを介して行う必要があります。 # Windows で名前付きパイプを有効にせずにこのオプションを使用すると # (「enable-named-pipe」オプションを介して) mysqld は無用になります! # #skip-networking [...] |

その後、MySQL のシステム起動リンクを作成します…

chkconfig mysqld on

… そしてそれを起動します:

/etc/init.d/mysqld start

ネットワーキングが有効になっているか確認します。次のコマンドを実行します。

netstat -tap | grep mysql

出力は次のようになります:

[root@server1 ~]# netstat -tap | grep mysql  
tcp        0      0 *:mysql-im                     *:*                     LISTEN      3746/mysqlmanager  
tcp        0      0 *:mysql                         *:*                     LISTEN      3754/mysqld  
[root@server1 ~]#

次のコマンドを実行して、root ユーザーのパスワードを設定します(さもなければ誰でもあなたの MySQL データベースにアクセスできます!)。

mysqladmin -u root password yourrootsqlpassword  
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

2 Apache と mod_python をインストールする

Apache2 と mod_python がまだシステムにインストールされていない場合は、次のようにインストールできます。

urpmi apache-mod_python

(これにより、Apache2 がまだインストールされていない場合は、Apache2 もインストールされます。)

3 Django をインストールする

Django と Python MySQL バインディングをインストールするために、次のコマンドを実行します。

urpmi python-django python-mysql

4 Apache を設定する

Apache を設定する前に、Django プロジェクト(例:mysite と呼ばれる)を作成する必要があります(http://www.djangoproject.com/documentation/tutorial01/ を参照)。セキュリティ上の理由から、私はそのプロジェクトをドキュメントルートの外に作成します(ここではデフォルトの Mandriva ドキュメントルート /var/www/html を使用しています)(例:/home/mycode に)。

mkdir /home/mycode  
cd /home/mycode  
/usr/bin/django-admin.py startproject mysite

これにより、/home/mycode/mysite ディレクトリが作成され、その中にいくつかの Python ファイルが作成されます。

プロジェクト mysite が作成されたので、Apache を設定できます。元の /etc/httpd/modules.d/16_mod_python.conf ファイルのバックアップコピーを作成し、次のように新しいものを作成します。

cp /etc/httpd/modules.d/16_mod_python.conf /etc/httpd/modules.d/16_mod_python.conf_orig  
cat /dev/null > /etc/httpd/modules.d/16_mod_python.conf  
vi /etc/httpd/modules.d/16_mod_python.conf

| LoadModule python_module extramodules/mod_python.so SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonDebug On PythonPath "['/home/mycode'] + sys.path" |

(この設定は、/var/www/html のデフォルトの Mandriva vhost に対して有効です - Django を使用したい他の vhost をすでに定義している場合は、 セクションを適切な vhost 設定に配置してください。ただし、LoadModule 行は /etc/httpd/modules.d/16_mod_python.conf に残してください。)

最初の行のパス()は URL を指します - つまり、この設定は URL で /mysite を使用した場合に使用されます(例:http://www.example.com/mysite)。これをお好みに変更できます。他の値(SetEnv DJANGO_SETTINGS_MODULE mysite.settings および PythonPath “[‘/home/mycode’] + sys.path”)をプロジェクトの名前とその場所に合わせて調整してください。

その後、Apache を再起動します:

/etc/init.d/httpd restart

これで、ブラウザで http://www.example.com/mysite にアクセスできます。すべてがうまくいけば、次のようなものが表示されるはずです:

これは Django が正常にインストールされたことを意味し、これで Python ウェブアプリケーションを開発するために使用できます(Django を使用してウェブアプリケーションを開発する方法については、http://www.djangoproject.com/documentation/ を参照してください)。

5 Django プロジェクトから MySQL データベースに接続する

Django プロジェクトで MySQL データベースを使用したい場合は、まずそのデータベース(例:mysite)とそのデータベース用のデータベースユーザー(例:mysiteadmin)を作成する必要があります。

mysql -u root -p
CREATE DATABASE mysite;  
GRANT ALL ON mysite.* TO 'mysiteadmin'@'localhost' IDENTIFIED BY 'mysiteadmin_password';  
GRANT ALL ON mysite.* TO 'mysiteadmin'@'localhost.localdomain' IDENTIFIED BY 'mysiteadmin_password';  
FLUSH PRIVILEGES;  
quit;

次に、プロジェクトフォルダー(例:/home/mycode/mysite)の settings.py ファイルを開き、データベース設定を次のように変更します。

vi /home/mycode/mysite/settings.py

| [...] DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' または 'ado_mssql'。 DATABASE_NAME = 'mysite' # sqlite3 を使用している場合はデータベースファイルへのパス。 DATABASE_USER = 'mysiteadmin' # sqlite3 では使用されません。 DATABASE_PASSWORD = 'mysiteadmin_password' # sqlite3 では使用されません。 DATABASE_HOST = '' # localhost の場合は空の文字列に設定します。sqlite3 では使用されません。 DATABASE_PORT = '' # デフォルトの場合は空の文字列に設定します。sqlite3 では使用されません。 [...] |

6 リンク

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。