[python web]linux下apache + django + mod_wsgi + sqlite3配置
2014-02-21 17:27
579 查看
apache 2.2
django 1.6.2
mod_wsgi 3.4
python 2.7
sqlite 3.6.2
1,linux机器上已部署好apache和python,安装sqlite后要重装python,再安装django和mod_wsgi。
2,安装sqlite3,和一般软件安装流程一样:
解压,进入解压后的文件夹,运行 ./configure
--prefix=/home/work/sqlite3
运行:make
运行:make install
重装python:
在Python解压后的文件中,setup.py中修改:
在
sqlite_inc_paths 中添加sqlite的include 路径(后两行):
sqlite_inc_paths = [
'/usr/include/sqlite3',
'/usr/local/include',
'/usr/local/include/sqlite',
'/usr/local/include/sqlite3',
'/home/work/sqlite/include',
'/home/work/sqlite/include/sqlite3',
]
安装python:
./configure --enable-shared --prefix=/home/work/python
make
make install
若没有“--enable-shared“编译一些共享库,则import一些共享库时会报错:libpython2.7.so.1.0: cannot open shared object file:
No such file or directory
在python中import sqlite3 如果没有报错,则表示安装成功。
3,安装mod_wsgi ,参照官网文档(https://code.google.com/p/modwsgi/wiki/QuickInstallationGuide):
解压,进入解压后的文件夹,运行(需要指定apx和python路径)./configure--with-apxs=/usr/local/apache/bin/apxs --with-python=/home/work/python/bin/python
make
make install
安装成功后,apache配置文件httpd.conf中会新增一行:LoadModule
wsgi_module modules/mod_wsgi.so
4,测试mod_wsgi是否安装成功:
在/home/work/test/目录下创建test.wsgi,内容如下:
在httpd.conf中配置:
<VirtualHost *:8087>
WSGIScriptAlias / "/home/work/test/test.wsgi"
<Directory "/home/work/test">
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
注意:
a. <Directory>...</Directory>是为wsgi文件所在目录打开访问权限,不配置的话会在apache中有error信息:client denied by server configuration
b. Deny,Allow 逗号后面没有空格,否则会有语法错误
c. 如果使用VirtualHost,要在httpd.conf添加Listen 8087打开端口;如果不使用,则不用输入第一行和最后一行,端口为apache默认端口。本文使用VirtualHost。
重启apache,用浏览器访问http://域名:端口号,可看到“Hello World!”
5,配置django项目
这里很容易出问题,是因为django不同版本创建的工程,目录结构不一样,django1.6创建的如下目录结构:
修改wsgi.py:
注意:因为项目文件夹和下面的子文件夹是同个名字,容易搞混,sys.path.append的路径,到项目文件夹就可以了,否则下一行的“update.settings”将找不到项目的setting.py文件,而引发“internal server error”.
httpd.conf配置修改如下:
<VirtualHost *:8087>
WSGIScriptAlias / "/home/work/test/mysite/mysite/wsgi.py"
<Directory "/home/work/test/mysite">
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
重启apache:
apachectl restart
django 1.6.2
mod_wsgi 3.4
python 2.7
sqlite 3.6.2
1,linux机器上已部署好apache和python,安装sqlite后要重装python,再安装django和mod_wsgi。
2,安装sqlite3,和一般软件安装流程一样:
解压,进入解压后的文件夹,运行 ./configure
--prefix=/home/work/sqlite3
运行:make
运行:make install
重装python:
在Python解压后的文件中,setup.py中修改:
在
sqlite_inc_paths 中添加sqlite的include 路径(后两行):
sqlite_inc_paths = [
'/usr/include/sqlite3',
'/usr/local/include',
'/usr/local/include/sqlite',
'/usr/local/include/sqlite3',
'/home/work/sqlite/include',
'/home/work/sqlite/include/sqlite3',
]
安装python:
./configure --enable-shared --prefix=/home/work/python
make
make install
若没有“--enable-shared“编译一些共享库,则import一些共享库时会报错:libpython2.7.so.1.0: cannot open shared object file:
No such file or directory
在python中import sqlite3 如果没有报错,则表示安装成功。
3,安装mod_wsgi ,参照官网文档(https://code.google.com/p/modwsgi/wiki/QuickInstallationGuide):
解压,进入解压后的文件夹,运行(需要指定apx和python路径)./configure--with-apxs=/usr/local/apache/bin/apxs --with-python=/home/work/python/bin/python
make
make install
安装成功后,apache配置文件httpd.conf中会新增一行:LoadModule
wsgi_module modules/mod_wsgi.so
4,测试mod_wsgi是否安装成功:
在/home/work/test/目录下创建test.wsgi,内容如下:
<span style="font-size:14px;"> def application(environ, start_response): status = '200 OK' output = 'Hello World!' response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output] </span>
在httpd.conf中配置:
<VirtualHost *:8087>
WSGIScriptAlias / "/home/work/test/test.wsgi"
<Directory "/home/work/test">
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
注意:
a. <Directory>...</Directory>是为wsgi文件所在目录打开访问权限,不配置的话会在apache中有error信息:client denied by server configuration
b. Deny,Allow 逗号后面没有空格,否则会有语法错误
c. 如果使用VirtualHost,要在httpd.conf添加Listen 8087打开端口;如果不使用,则不用输入第一行和最后一行,端口为apache默认端口。本文使用VirtualHost。
重启apache,用浏览器访问http://域名:端口号,可看到“Hello World!”
5,配置django项目
这里很容易出问题,是因为django不同版本创建的工程,目录结构不一样,django1.6创建的如下目录结构:
mysite #项目名称 | --mysite | ----__init__.py | ----settings.py | ----urls.py | ----wsgi.py #wsgi配置文件,由django自动生成 | --manage.py
修改wsgi.py:
<span style="font-size:14px;">import sys import os sys.path.append("/home/work/test/mysite") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "update.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application()</span>
注意:因为项目文件夹和下面的子文件夹是同个名字,容易搞混,sys.path.append的路径,到项目文件夹就可以了,否则下一行的“update.settings”将找不到项目的setting.py文件,而引发“internal server error”.
httpd.conf配置修改如下:
<VirtualHost *:8087>
WSGIScriptAlias / "/home/work/test/mysite/mysite/wsgi.py"
<Directory "/home/work/test/mysite">
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
重启apache:
apachectl restart
相关文章推荐
- 对于org.apache.commons.dbcp.BasicDataSource的配置认知
- 【转】修复关于apache-xampp的问题:Port 443 in use by “vmware-hostd.exe”!
- java转换json需要导入的jar包,org/apache/commons/lang/exception/NestableRuntimeException
- 禁止显示或发送Apache版本号(设置ServerTokens)
- 安装Apache提示APR not found的解决办法
- 安装Apache提示APR not found的解决办法
- apchae commons-validator 初体验
- Apache的rewrite重写相关的参数详解说明(伪静态)
- apache CXF wsdl2java工具的使用
- apache2.4下载地址
- apache不允许目录列出索引
- java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory的解决办法
- apache加载php模块失败
- Apache中 RewriteRule 规则参数介绍
- Apache CXF学习-创建基于spring的web service 推荐
- Apache Kafka Replication Design – High level
- Apache CXF学习- 利用jaxws创建一个"code first" web service 推荐
- 使用ampser集成工具启动 apache报错
- Apache Log4j 2.0-rc1 发布
- apache安装