django部署到Apache踩过的坑
1.找不到mod_wsgi.so
部分教程只是说需要在Apache 的配置文件httpd.conf 中写 LoadModule wsgi_module modules/mod_wsgi.so
实际上这个modules/mod_wsgi.so 需要我们自己安装,并做相应修改
安装方法参考:这是其他大佬写的
以上方法如果安装不成功,就使用以下链接下载压缩文件,解压后使用setup.py文件安装
https://files.pythonhosted.org/packages/b6/54/4359de02da3581ea4a17340d87fd2c5a47adc4c8e626f9809e2697b2d33f/mod_wsgi-4.9.0.tar.gz
2.配置文件httpd.conf 修改好后,访问不到django项目
这是我犯傻了,将配置内容写到了其他封闭标签中,注意不要将内容写道其他配置项的子内容中啊!!
3.django安装完成后,访问不到一些项目文件
这里的问题不是访问不到静态资源。访问不到静态资源如css,js,html模板文件的问题前期摸索django 开发模式和生产模式的区别的时候已经解决了。就是需要配置STATIC_ROOT
我的views.py 中的视图中使用了一些文件,这些文件写的是相对路径,将这些路径修改为绝对路径就可以了
app_dir = os.path.dirname(__file__)
# line_path = 'mycharts/render/tabledata/charts_%s.html' % table_name.split('.')[1]
# 部署到apache服务器后需要使用绝对路径
line_path = os.path.join(app_dir,'render/tabledata/charts_%s.html' % table_name.split('.')[1])
同时菜鸟的我也了解到,sys.path 是用来搜索模块的,而不能用来搜索文件,所以不要使用sys.path.append(app_dir)的方式来增加文件搜索路径
先到这里吧