欢迎来真孝善网,为您提供真孝善正能量书籍故事!

Django 2.1 在 Apache2 服务器上部署教程(阿里云 Ubuntu 16 + Python 3)第二部分

时间:11-22 神话故事 提交错误

这篇文章给大家聊聊关于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项目 deployed 到 Apache 上,这篇文章对我很有帮助!

    有13位网友表示赞同!

Edinburgh°南空

Ubuntu16 + Python3 这段组合配置得挺完美,就是不知道用nginx会不会更好?

    有10位网友表示赞同!

念旧是个瘾。

部署 Django 确实是一件不简单的事,总要自己一步步来才行。

    有12位网友表示赞同!

顶个蘑菇闯天下i

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位网友表示赞同!

【Django 2.1 在 Apache2 服务器上部署教程(阿里云 Ubuntu 16 + Python 3)第二部分】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活