Django 설치 · 3 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

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.