Debian+Django1.11+Apache2.4+mod_wsgi+python2.7搭建服务器
2017-09-07 17:39
531 查看
这两天都在为了搭建这个服务器而忙活着,遇到了很多坑,在网上参考了很多人的介绍,但是都不顺利,所以说一说自己的过程,为以后的人提供一下帮助。
先说一下最终效果,我之前一直不知道搭建成功是什么样子,因为我可以通过不同的端口分别访问到Apache和Django的配置成功界面,所以我就一直纠结搭建成功时什么样子。
搭建成功了,不需要在django项目下 runserver 就可以通过输入 访问Apache 的It works页面方式访问到django的it works的页面,因为已经不需要django自带的服务器了,我之前一直以为要运行自带服务器。在我的系统上就是 直接在浏览器上输入 ip+端口号(自己设置的Apache监听端口),就可以显示django的it works,第一次可能需要刷新一下。
安装好各部分以后,就是配置了。
步骤如下:
1、将django项目放到
2、修改配置文件:
解释一下:
第一行的8089是我自己端口号,需要修改成你自己Apache的端口号,默认是80,如果要改要到
下面两句 Alias 是告诉 媒体文件和静态文件的目录,接着下面是允许通过网络访问。
接下来配置wsgi,这是最重要的部分,wsgi是链接Apache和django的桥梁。your_Project_Name是你的django项目名字。
3、激活 yoursite.conf,
4、修改django项目文件。
现在还只是让Apache找到了django项目,但是django愿不愿意和他合作就不一定了。所以还需要修改django项目下的setting.py和wsgi.py。
修改setting.py中的
然后修改wsgi.py,
把上面的Your_Project_Name替换成你的项目名就可以了。
现在这一步完成,就基本完成90%了,如果没有出错的话那说明你非常幸运,我当初配置这个东西用来3天,配置成功的时候兴奋到睡不着!
5、给Apache修改数据库的权限
到此,就差不多了,在浏览器中输入你的域名或者ip+你自己设置的端口号就可以访问了,正常的应该访问到django的页面,而不应该是Apache的默认页面,否则就说明有问题啊。
切记~每次修改了Apache的文件都要
参考文章 :
http://www.jianshu.com/p/b40a4a12fff1
https://www.howtoing.com/how-to-serve-django-applications-with-apache-and-mod-wsgi-on-debian-8/
http://code.ziqiangxuetang.com/django/django-deploy.html
幸运的人看一个就配置好了,不幸的人尝试了一遍又一遍。
先说一下最终效果,我之前一直不知道搭建成功是什么样子,因为我可以通过不同的端口分别访问到Apache和Django的配置成功界面,所以我就一直纠结搭建成功时什么样子。
搭建成功了,不需要在django项目下 runserver 就可以通过输入 访问Apache 的It works页面方式访问到django的it works的页面,因为已经不需要django自带的服务器了,我之前一直以为要运行自带服务器。在我的系统上就是 直接在浏览器上输入 ip+端口号(自己设置的Apache监听端口),就可以显示django的it works,第一次可能需要刷新一下。
安装好各部分以后,就是配置了。
步骤如下:
1、将django项目放到
/var/www目录下,因为这是Apache的默认访问目录,里面的html就是 It works 的页面文件。这一步是为了方便Apache找到django项目,放到其他地方操作会复杂一点。
2、修改配置文件:
sudo nano /etc/apache2/sites-available/yoursite.conf,这个yoursite.conf是你自己创建的,名字随意,也可以用vi等其他命令,我喜欢用 nano 和Windows上的操作类似,不容易出错。yoursite.conf内容如下
#<VirtualHost *:8089> ServerName your_domain_or_ip #ServerAlias other_domain_or_ip Alias /media/ /var/www/your_Project_Name/media/ 4000 Alias /static/ /var/www/your_Project_Name/static/ <Directory /var/www/your_Project_Name/static/> Require all granted </Directory> WSGIScriptAlias / /var/www/your_Project_Name/your_Project_Name/wsgi.py <Directory /var/www/your_Project_Name/your_Project_Name/> <Files wsgi.py> Require all granted </Files> </Directory> </VirtualHost>
解释一下:
第一行的8089是我自己端口号,需要修改成你自己Apache的端口号,默认是80,如果要改要到
/etc/apache2下的 port.conf里改。
下面两句 Alias 是告诉 媒体文件和静态文件的目录,接着下面是允许通过网络访问。
接下来配置wsgi,这是最重要的部分,wsgi是链接Apache和django的桥梁。your_Project_Name是你的django项目名字。
3、激活 yoursite.conf,
sudo a2ensite yoursite.conf,然后reload Apache,输入
sudo service apache2 reload,当然如果重启服务器
sudo service apache2 restart也可以,前提是你的服务器不需要提供其他服务。这条命令才能使的Apache不去找它的默认网页而是找你django项目。
4、修改django项目文件。
现在还只是让Apache找到了django项目,但是django愿不愿意和他合作就不一定了。所以还需要修改django项目下的setting.py和wsgi.py。
修改setting.py中的
ALLOWED_HOST=[‘your_ip_or_domain’],把服务器ip或者域名加入,有多个用逗号隔开。这一步相当于允许进门来。
然后修改wsgi.py,
import os from os.path import join,dirname,abspath PROJECT_DIR =dirname(dirname(abspath(__file__))) import sys sys.path.insert(0,PROJECT_DIR) from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Your_Project_Name.settings") application = get_wsgi_application()
把上面的Your_Project_Name替换成你的项目名就可以了。
现在这一步完成,就基本完成90%了,如果没有出错的话那说明你非常幸运,我当初配置这个东西用来3天,配置成功的时候兴奋到睡不着!
5、给Apache修改数据库的权限
sudo chown www-data:www-data /var/www/your_project_name/db.sqlite3 sudo chown www-data:www-data /var/www/your_project_name
到此,就差不多了,在浏览器中输入你的域名或者ip+你自己设置的端口号就可以访问了,正常的应该访问到django的页面,而不应该是Apache的默认页面,否则就说明有问题啊。
切记~每次修改了Apache的文件都要
sudo service apache2 reload或者
sudo service apache2 restart
参考文章 :
http://www.jianshu.com/p/b40a4a12fff1
https://www.howtoing.com/how-to-serve-django-applications-with-apache-and-mod-wsgi-on-debian-8/
http://code.ziqiangxuetang.com/django/django-deploy.html
幸运的人看一个就配置好了,不幸的人尝试了一遍又一遍。
相关文章推荐
- Django1.10+Apache2.4+mod_wsgi+python3.5部署
- Python2.7 Django1.8 CentOS7 Apache2.4 mod_wsgi4.4.21 环境下部署
- linux+django+apache+mod_wsgi+eclipse+python2.7 环境的搭建
- apache2.4+python2.7+mod wsgi部署django1.10项目
- Linux+Django+Python+Wsgi配置过程 Linux下配置Apache+Mod_Wsgi+Django环境 部署django项目
- 搭建Apache+web.py+mod_wsgi python服务器
- 在apache上部署web.py项目(python2.7+web.py+mod_wsgi+apache2.2)
- Centos6.5搭建Django-1.8.3+mod_wsgi+Apache环境
- Django1.4 python2.7 apache mod_python 安装与部署实例
- CentOS7+Python3.4+Django1.6.5+Apache2.4+mod_wsgi4.2.7
- windows下安装apache2.2 + python2.7 + django(mod_wsgi集成)
- GOOD centos + apache + mod_wsgi + python2.6 + django web环境搭建
- Django+apache+python+mod_python的环境搭建
- django1.77+mod_wsgi+python2.79+apache2.24 在阿里云centos部署攻略
- apache2.2+django1.6.5+python34+mod_wsgi3.5环境搭建
- centos搭建Apache+mod_wsgi+Django环境
- Python3.5 Django1.8 apache2.4 Ubuntu 配置mod_wsgi模块
- Python + Apache + mod_python 搭建Web服务器
- Django使用Apache2.2通过Mod_wsgi搭建站点服务器
- windows2003+apache2.2+python2.7配置django mod_wsgi