这篇文章给大家聊聊关于Django 2.1 在 Apache2 服务器上部署教程(阿里云 Ubuntu 16 + Python 3)第二部分,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
1.修改安全组规则
进入阿里云服务器管理界面,选择更多--网络和安全组--安全组配置:
安全组配置
然后,点击“修改规则”,点击右上角“添加安全组规则”,设置规则:
安全组规则
2.设置服务器防火墙
接下来远程连接服务器,输入命令:
服务apache2 状态
检查apache2是否已经启动。如果返回结果中有“active”,则表示已经启动。否则,运行:
服务apache2 启动
要启动apache2,然后在防火墙中打开端口80并输入:
ufw 允许80/tcp
就是这样。
这时在浏览器地址栏输入IP地址应该跳转到apache2的默认界面。如果不行,可以参考阿里云的文档:检查TCP 80端口是否正常。
这时我们每次访问只能得到apache2的默认界面。为了看到我们自己的网站,我们需要执行以下部署
部署Django到Apache
1.建立网站配置文件
首先确定apache的版本号,输入:
apachectl -v
接下来,在apache2配置文件目录中创建自己网站的配置文件:
在根目录下输入:
sudo vi /etc/apache2/sites-available/mysite.conf
这里的Mysite是网站的名称,配置文件内容为:
WSGIScriptAlias//home/hardy/django_site/golab/wsgi.py
别名/static//home/hardy/django_site/static/
别名/media//home/hardy/django_site/media/Require all grantedRequire all grantedRequire all grantWSGIPythonHome /var/www/VENV/bin 如果apache的版本号是2.2.x,那么需要将Require all grant 替换为下列:
订单拒绝、允许
下面简单说明一下允许来自所有的配置文件。 WSGIScriptAlias将默认地址请求交给wsgi.py处理。下面的static和media是存放静态文件和媒体文件的地方。最后一个WSGIPythonHome指定了python解释器的路径。如果不指定,则默认使用python2。这种情况下是无法运行我们的django2的,可以网上搜索Linux下的python3解释器的路径。需要特别注意的是,如果你使用默认的python3解释器,不要写这一行。如果您使用的是Virtual Env,则只需在此处编写此行即可。除了这种配置方法之外,还可以使用WSGIDaemonProcess,这里略过。
顺便说一下我的目录结构。 Hardy 是我的Linux 用户名。我将项目的所有文件存储在django_site 目录中。 manage.py 存在于django_site/下,golab 是我的项目名称,go 是我创建的名称。应用程序名称wsgi.py 存在于golab/下
2.设置django中的配置文件
编写完apache配置文件后,我们需要对我们项目的settings.py和wsgi.py进行一些修改。在settings.py中找到"ALLOWED_HOSTS"项并将其更改为:
ALLOWED_HOSTS=["*",]
这意味着允许来自任何主机的访问。然后在wsgi.py中添加以下内容:
from os.path import join,目录名,abspath
PROJECT_DIR=目录名(目录名(abspath(__file__)))
导入系统
sys.path.insert(0,PROJECT_DIR) 用于让脚本找到django项目的位置
3.设置目录和文件权限
目录权限一般设置为755,文件权限设置为644(参考)。进入包含manage.py的上层目录,假设目录名为django_site:
cd /home/哈迪/
sudo chmod -R 644 django_site # -R表示向下递归执行
sudo 查找django_site -type d | xargs chmod 755
对于静态文件夹static和media文件夹,如果要写,需要给予apache默认的www-data用户写权限。例如,如果我想写入static下的img文件夹,则需要更改权限:
sudo chgrp -R www-data img
sudo chmod -R g+w img 如果使用的是sqlite3数据库,也会提示尝试写入只读数据库,所以我们需要给予www-data用户写入数据库的权限:
sudo chgrp www-data django_site # 设置目录的用户组为www-data
sudo chmod g+w django_site # g+w 表示为目录所属用户组(即www-data)设置写权限
sudo chgrp www-data django_site/db.sqlite3 # 更改为你的数据库名称
sudo chmod g+w django_site/db.sqlite3
4.激活网站
在命令行输入:
sudo 服务apache2 重新加载
sudo a2dissite 000-默认sudo a2ensite mysite
OK,关于Django 2.1 在 Apache2 服务器上部署教程(阿里云 Ubuntu 16 + Python 3)第二部分和的内容到此结束了,希望对大家有所帮助。
【Django 2.1 在 Apache2 服务器上部署教程(阿里云 Ubuntu 16 + Python 3)第二部分】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我最近也在尝试把django项目 deployed 到 Apache 上,这篇文章对我很有帮助!
有13位网友表示赞同!
Ubuntu16 + Python3 这段组合配置得挺完美,就是不知道用nginx会不会更好?
有10位网友表示赞同!
部署 Django 确实是一件不简单的事,总要自己一步步来才行。
有12位网友表示赞同!
Apache2 配置文档有时候太复杂了,这篇博文讲得比较通俗易懂。
有13位网友表示赞同!
Django2.1新特性不少,好像也发布了好久时间了吧?
有17位网友表示赞同!
阿里云的ubuntu服务越来越稳定了,对于新手也很好上手。
有10位网友表示赞同!
看了这篇文章之后感觉部署 Django 再也不恐怖了!
有12位网友表示赞同!
虚拟环境很重要吧,这样可以避免不同项目之间的依赖冲突。
有16位网友表示赞同!
Apache2 和 Python 的集成一直是常用的组合方式。
有14位网友表示赞同!
学习 Django 其实和部署很有关系,一篇好文章能让人受益良多!
有6位网友表示赞同!
Django 项目的配置文件总是让我头疼,希望这篇文章能教会我一些技巧。
有19位网友表示赞同!
以后要用 Apache2 部署其他 web 应用的时候可以参考这篇博文了。
有17位网友表示赞同!
在阿里云上使用 Ubuntu 可以直接用 apt-get 安装软件,省去了很多麻烦。
有17位网友表示赞同!
这篇文章写的深入浅出,适合初学者阅读学习!
有17位网友表示赞同!
部署到服务器之后还需要配置 SSL 证书才能确保安全的连接吧?
有17位网友表示赞同!
我准备也尝试一下 Ubuntu 环境中的 Django 开发。
有12位网友表示赞同!
Django 的框架确实很强大,使用起来越来越方便了!
有9位网友表示赞同!
阿里云的服务器租金比较便宜,很多开发者都选择了它。
有9位网友表示赞同!
部署到服务器之后需要定期检查日志,防止出现问题。
有19位网友表示赞同!