蓝色字体为本人注解
原文出自:How To Install Django On Debian Etch (Apache2/mod_python)
1 安装 MySQL
Django 可以使用多种类型的数据库, 例如:. PostgreSQL, MySQL, SQLite, etc. 如果你打算使用mysql,可以按照一下步骤操作:
apt-get install mysql-server mysql-client #debian的apt工具真牛!
我们希望mysql可以通过多种接口连接, 不单单localhost方式链接, t要实现这点,我们需要修改/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:~#
继续
mysql -u root password yourrootsqlpassword
mysql -h server1.example.com -u root password yourrootsqlpassword
给root用户设置一个密码 (不然任何用户都能登录你的mysql数据库了!)
2 安装 Apache 和 mod_python
如果apache和mod_python还没有安装到服务器上去,你可以安装下面步骤进行安装:
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-python
3 安装 Django
#前提是python要安装,版本要和django对应,debian默认安装的是python2.4,即使安装了python2.5,对应的软链接还是指向python2.4的,即使修改了也没用。这里我的解决方法是,升级debian
apt-get update
apt-get dist-upgrade
之后继续安装django就可以了
为了同时安装django和python_mysqldb,我们运行下面命令:
apt-get install python-django python-mysqldb
4 设置Apache
#这里是关键中的关键
使用 /var/www 作为apache的根目录(#默认就是如此,不用设置)
使用/etc/apache2/sites-available/default 做虚拟目录. 调整你的环境. #这段翻译不好,简单的说就是设置下apache的虚拟路径和主路径,apache相关设置资料中文一大堆
在设置apache之前, 我们先创建一个django项目(e.g. called mysite) (see http://www.djangoproject.com/documentation/tutorial01/). 出去安全考虑,我新建的项目不安装到apache更根目录下去 /var/www (e.g. in /home/mycode):
mkdir /home/mycode #新建一个目录
cd /home/mycode #打开刚才创建的目录
/usr/share/python-support/python-django/django/bin/django-admin.py startproject mysite #在打开的目录下创建一个django项目
这里会创建一个目录 /home/mycode/mysite with 一些python文件在里面
现在,mysite这个项目我们已经创建好了, 我们继续设置apache. 我设置我的虚拟目录,在/etc/apache2/sites-available/default 在<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>[...] |
重启apache
/etc/init.d/apache2 restart
我们可以看到打开的效果如下:
5 在django项目里设置mysql的链接
#不翻译这段废话了,看下面的就知道了
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.[...] |
原文讲的很清晰,可以我配置起来还是有点问题,第一次成功,后面就一直失败,莫名其妙~~
目前我还未解决一下问题,望高手指教:
1、mysql对外开发链接,不能成功,期待解决方案
2、mysql中文问题,即使我都设置了utf8 还是有乱码现象
3、暂时未发现,但一定还有问题
本人无论E文还是python水平都有限,望大家见谅。算是为python&django在中国推广做点贡献!
近期评论