ubuntu下配置django+apache+mysql+mod_python+Python (转载)

网上有N种安装方法,我都试过,没有一个最后能成功,浪费了一下午的时间,终于搞定,

1.install Python

最新的Ubuntu操作系统是含有Python的,可以通过 Python --version 查看的:

lab@lab:~$ python version

Python 2.7.1+

2.install MySQL

使用最简单的方法:sudo apt-get install mysql-server mysql-client

3.install Apache

继续使用命令:sudo apt-get install apache2

4.install MySQLdb

sudo apt-get install python-mysqldb

5.install mod_python

sudo apt-get install libapache2-mod-python

6.install Django

到网站上下载: www.djangoproject.org Django-x.x.x.tar.gz

解压:tar xzvf Django-1.2.1.tar.gz

安装:sudo python install setup.py

7.测试Django 和 MySQLdb是否成功

在命令行:python

import django

import MySQLdb

如果没有错误提示,则安装成功!

exit()

8.运行一个简单程序不是用apache

lab@lab:~$ cd /var/www

lab@lab:~$sudo python /usr/local/bin/django-admin.py startproject server

lab@lab:~$ cd s*

lab@lab:~$ ls

可以看到在server 中多了几个文件,不管他

lab@lab:~$ python manage.py runserver

出现如下提示:

0 errors foundDjango version 1.4 pre-alpha, using settings 'server.settings’Development server is running at http://127.0.0.1:8000/Quit the server with CONTROL-C.

证明一切OK!

打开浏览器:http://127.0.0.1:8000/server 出现如下画面:

It worked!Congratulations on your first Django-powered page.

django是个小的服务器,现在换没有运行在apache2上了

9.配置apache2

command:cd /etc/apache2

command:sudo chmod 777 httpd.conf

command:gedit httpd.conf

添加:

LoadModule python_module /usr/local/lib/apache2/modules/mod_python.so<Location “/server/”> SetHandler python-program //这一句必须有,mod_python.so 在安装mod_python时生成的,

PythonPath “[‘/var/www’] + sys.path” //这里不必添加server 目录

PythonHandler django.core.handlers.modpython

SetEnv DJANGO_SETTINGS_MODULE server.settings //工程名server

PythonOption django.root /server

PythonDebug On

重启apache2 ,网上有很多种方法,直接重新开机是最实惠的。

10.打开浏览器:http://127.0.0.1:8000

出现:
It worked!Congratulations on your first Django-powered page.
证明apache以配置完成

现在这个工程没有任何程序

继续work。

ubuntu下django部署至apache
首先需要为pache安装mod_python模块
sudo apt-get install libapache2-mod-python

安装mod-python,然后Apache的配置文件/etc/aApache2/httpd.conf,添加如下内容:
LoadModule python_module /usr/lib/apache2/modules/mod_python.so
然后对/etc/apache2/sites-available/default这个配置文件进行类似如下的设置:
<VirtualHost *:80>
ServerName www.somesite.com
DocumentRoot /home/adang/workspace/kpw #用于处理静态文件,指定静态文件根目录
Alias /admin_media /usr/share/pyshared/django/contrib/admin/media #用于处理admin模块的样式
<Directory “/usr/share/pyshared/django/contrib/admin/media”> #用于处理admin模块的样式
AllowOverride None
Options None
Order allow,deny
Allow from all

<Location “/”> #配置django项目
SetHandler python-program
PythonPath “[‘/home/adang/workspace’] + sys.path”
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE kpw.settings
PythonDebug on

<Location “/media/”> #配置静态文件,网站中所有静态文件的路径为"/media/xxxx"
SetHandler None

<Location “/admin_media/”> # 用于处理admin模块的样式
SetHandler None


接着,需要在setting文件中做如下设置:
TIME_ZONE = ‘Asia/Shanghai’ #设置时区为中国时区,代替默认的墨西哥时区
LANGUAGE_CODE = ‘zh-cn’ #设置为中文环境
ADMIN_MEDIA_PREFIX = ‘/admin_media/’ # 修改admin模块默认的静态文件路径前辍,这里和apache里的几处路径相关
最后,需要对/usr/share/pyshared/django/contrib/admin/media这个文件夹修改一下权限,sudo chmod -R 777 xxxx/media
有了以上这些准备,文件路径、中文环境、在apache上的部署等问题就基本可以解决了。

Django MySQL 中文编码问题
Django 模版 和 数据库 在使用中文的时候会报错

将模版的文件改为utf-8即可

MySQL中 需要改编码

在MySQL的安装目录下找到my.ini,如果没有就把my-medium.ini复制为一个my.ini即可,
修改my.ini 将[mysql] 和[mysqld]改为

default-character-set=utf8
保存并关闭,重启MySQL

显示编码:

mysql> show variables like ‘character%’;

先修改编码方式,再创建数据库:)