如何在Debian Etch上安装Django(Apache2 / mod_python)

如何在Debian Etch上安装Django(Apache2 / mod_python)

版本1.0
作者:Falko Timme

本教程介绍如何在Debian Etch服务器上安装Django 。 Django是一个Web框架,允许以尽可能多的自动化快速开发Python Web应用程序。 我将在本指南中使用Apache2和mod_python。

这是一个实践指南; 它不包括理论背景。 他们在网络上的许多其他文档中被处理。

本文档不附带任何形式的保证! 我想说,这不是设立这样一个制度的唯一办法。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!

1安装MySQL

Django可以使用多个数据库后端,例如PostgreSQL,MySQL,SQLite等。如果要使用MySQL,可以按如下方式进行安装:

apt-get install mysql-server mysql-client

我们希望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     3085/mysqld
server1:~#

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

为用户root设置密码(否则任何人都可以访问您的MySQL数据库!)。

2安装Apache和mod_python

如果系统上尚未安装Apache2和mod_python,可以按如下方式进行安装:

apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-python

3安装Django

为了安装Django和Python MySQL绑定,我们运行:

apt-get install python-django python-mysqldb

4配置Apache

我将使用/ var / www这里作为我的虚拟主机的文件根目录和/ etc / apache2 / sites-available / default作为包含我的虚拟主机配置的文件。 根据您的情况调整。

在配置Apache之前,我们必须创建一个Django项目(例如mysite )(参见https://docs.djangoproject.com/en/1.10/intro/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.settingsPythonPath“['/ home / mycode'] + sys.path” )调整到项目的名称及其所在的路径。

之后重新启动Apache:

/etc/init.d/apache2 restart

现在,您可以在浏览器中访问http://www.example.com/mysite 。 如果一切顺利,你应该看到这样的事情:

这意味着Django已成功安装,您现在可以使用它开发您的Python Web应用程序(请参阅https://docs.djangoproject.com/en/1.10/了解如何使用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';
FLUSH PRIVILEGES;
quit;

然后打开项目文件夹中的settings.py文件(例如/ home / mycode / mysite )并修改数据库设置,例如:

vi /home/mycode/mysite/settings.py
[...]
DATABASE_ENGINE = 'mysql'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
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链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏