需要软件
mysql nginx python(版本2.7.4) django-1.2.5 uwsgi
1 安装mysql nginx python 此步略
2
安装django-1.2.5
tar -zxvf django-1.2.5.tar.gz
cd django-1.2.5
python2.7 setup.py install
安装setuptools-0.6c11
python2.7 setup.py install
安装uwsgi-latest.tar.gz
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
python2.7 uwsgiconfig.py --build
下面将make的编译产生的可执行文件移动到/usr/local/uwsgi/bin/里面去
mkdir -p /usr/local/uwsgi/bin/
cp uwsgi /usr/local/uwsgi/bin/
mkdir -p /usr/local/uwsgi/logs
mkdir -p /usr/local/uwsgi/conf
cat >> /usr/local/uwsgi/conf/uwsgi.xml < EOF
<uwsgi>
<socket>127.0.0.1:8000</socket>
<listen>200</listen>
<master>true</master>
<pidfile>/usr/local/uwsgi/logs/uwsgi.pid</pidfile>
<processes>8</processes>
<chdir>/dir/my_django</chdir>
<pythonpath>/dir</pythonpath>
<pythonpath>/dir/my_django</pythonpath>
<module>django_wsgi</module>
<profiler>true</profiler>
<memory-report>true</memory-report>
<enable-threads>true</enable-threads>
<logdate>true</logdate>
<limit-as>6048</limit-as>
<daemonize>/usr/local/uwsgi/logs/django.log</daemonize>
</uwsgi>
EOF
创建应用模块
cd /dir
django-admin.py startproject my_django
目录树
my_django/
|-- __init__.py
|-- __init__.pyc
|-- django_wsgi
|-- django_wsgi.py
|-- django_wsgi.pyc
|-- manage.py
|-- settings.py
|-- settings.py.bk
|-- settings.pyc
|-- urls.py
|-- urls.py.bk
|-- urls.pyc
|-- uwsgi.xml
`-- views.py
[root@my_django]# cat >> django_wsgi.py < EOF
import os
import django.core.handlers.wsgi
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
application = django.core.handlers.wsgi.WSGIHandler()
EOF
Nginx配置
server {
listen 80;
server_name 192.168.2.1;
location / {
root /dir/my_django;
uwsgi_pass 127.0.0.1:8000;
include uwsgi_params;
access_log /usr/local/nginx/logs/access.log;
error_log /usr/local/nginx/logs/error.log;
}
}
继续安装
MySQL-python-1.2.3
python2.7 setup.py build
python2.7 setup.py install
vi site.cfg
将mysql_config = /usr/local/mysql/bin/mysql_config 指向mysql安装路径
错误1.
>>> import MySQLdb
Traceback (most recent call last):
File "", line 1, in
File "build/bdist.linux-i686/egg/MySQLdb/__init__.py", line 19, in
File "build/bdist.linux-i686/egg/_mysql.py", line 7, in
File "build/bdist.linux-i686/egg/_mysql.py", line 6, in __bootstrap__
ImportError: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory
解决方法
首先查找模块
export LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql
# find / -name libmysqlclient_r.so.16
/usr/local/src/mysql-5.1.44-linux-i686-glibc23/lib/libmysqlclient_r.so.16
/usr/local/mysql/lib/libmysqlclient_r.so.16
将模块路径加入动态链接库设置为共享
vim /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/lib
/usr/local/lib
/usr/local/mysql-5.1.56/lib/mysql
/root/mysql-5.1.56/packages/mysql-5.1.56/libmysql_r/.libs
加载 ldconfig -v
测试import MySQLdb
django连接mysql
进入mysql新建一个数据库aaa,create database bbb并且 GRANT ALL PRIVILEGES ON bbb.* TO root@localhost IDENTIFIED BY '' WITH GRANT OPTION;
退出mysql进入一个工程,修改settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'bbb', # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
保存后可以在python shell中测试是否连接正确
python manage.py shell
>>> from django.db import connection
>>> cursor = connection.cursor()
然后创建你的models,完成之后执行以下命令
python manage.py validate #检查modes语法逻辑是否正确
python manage.py sqlall bbb #bbb为工程名,执行这步产生creattable的sql语句,但没有真正的在数据库中创建表
python manage.py syncdb #初始化数据库,真正创建表
ok,没什么错误就可以runserver了
另外:若修改了表结构就是models中的内容,需python manage.py sqlreset bbb 或者 python manage.py reset bbb
启动uwsgi 命令:
/usr/local/uwsgi/bin/uwsgi -x /usr/local/uwsgi/conf/uwsgi.xml
转载于:https://blog.51cto.com/tuifeiyaozi/1204973