如何在Debian Lenny上安装Django(Apache2 / mod_python)
本教程介绍如何在Debian Lenny服务器上安装Django 。 Django是一个Web框架,允许以尽可能多的自动化快速开发Python Web应用程序。 我将在本指南中使用Apache2和mod_python。
这是一个实践指南; 它不包括理论背景。 他们在网络上的许多其他文档中被处理。
本文档不附带任何形式的保证! 我想说,这不是设立这样一个制度的唯一办法。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!
1安装MySQL
Django可以使用多个数据库后端,例如PostgreSQL,MySQL,SQLite等。如果要使用MySQL,可以按如下方式进行安装:
aptitude install mysql-server mysql-client
您将被要求创建一个MySQL根密码:
MySQL“root”用户的新密码:
< - yourrootsqlpassword
重复MySQL“root”用户的密码:
< - yourrootsqlpassword
我们希望MySQL在所有接口上监听,而不仅仅是localhost,因此我们编辑/etc/mysql/my.cnf
并注释掉bind-address = 127.0.0.1
:
vi /etc/mysql/my.cnf
[...] # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...] |
然后我们重新启动MySQL:
/etc/init.d/mysql restart
现在检查网络是否启用。 跑
netstat -tap | grep mysql
输出应如下所示:
server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 3403/mysqld
server1:~#
2安装Apache和mod_python
如果系统上尚未安装Apache2和mod_python,可以按如下方式进行安装:
aptitude install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-python
3安装Django
为了安装Django和Python MySQL绑定,我们运行:
aptitude install python-django python-mysqldb
4配置Apache
我将使用/ var / www
这里作为我的虚拟主机的文件根目录和/ etc / apache2 / sites-available / default
作为包含我的虚拟主机配置
的文件。 根据您的情况调整。
在配置Apache之前,我们必须创建一个Django项目(例如,称为mysite
)(参见http://www.djangoproject.com/documentation/tutorial01/ )。 为了安全起见,我在文件根/ var / www
之外创建了该项目(例如/ home / mycode
):
mkdir /home/mycode
cd /home/mycode
/usr/share/python-support/python-django/django/bin/django-admin.py startproject mysite
这将创建一个目录/ home / mycode / mysite
与其中的一些Python文件。
现在随着项目mysite的
创建,我们可以配置Apache。 我在/ etc / apache2 / sites-available / default
中打开我的vhost配置,并在<VirtualHost ...> ... </ VirtualHost>
容器之间放置以下行:
vi /etc/apache2/sites-available/default
[...] <Location "/mysite"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonDebug On PythonPath "['/home/mycode'] + sys.path" </Location> [...] |
第一行( <Location“/ mysite”>
)中的路径指的是URL - 如果您在URL中使用/ mysite
(例如http://www.example.com/mysite
),则将使用此配置。 你可以把它改成你的喜好。 请将其他值( SetEnv DJANGO_SETTINGS_MODULE mysite.settings
和PythonPath“['/ home / mycode'] + sys.path”
)调整到项目的名称及其所在的路径。
之后重新启动Apache:
/etc/init.d/apache2 restart
现在,您可以在浏览器中访问http://www.example.com/mysite
。 如果一切顺利,你应该看到这样的事情:
这意味着Django已成功安装,您现在可以使用它开发Python Web应用程序(请参阅http://www.djangoproject.com/documentation/了解如何使用Django开发Web应用程序)。
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';
quit;
然后打开项目文件夹中的settings.py
文件(例如/ home / mycode / mysite
)并修改数据库设置,例如:
vi /home/mycode/mysite/settings.py
[...] DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. DATABASE_NAME = 'mysite' # Or path to database file if using sqlite3. DATABASE_USER = 'mysiteadmin' # Not used with sqlite3. DATABASE_PASSWORD = 'mysiteadmin_password' # Not used with sqlite3. DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3. DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3. [...] |
6链接
- Django: http : //www.djangoproject.com/
- Python: http : //www.python.org/
- Debian: http : //www.debian.org/