Apache2 服务配置 ubuntu16.04 + django1.11
(步骤)
环境
- Ubuntu 16.04
- Python 3.5.2
- Django 1.11
- Apache 2.4
1.Apache2安装
sudo apt-get install apache2
查看版本
apachectl -v
Server version: Apache/2.4.18 (Ubuntu)
Server built: 2017-09-18T15:09:02
2.确保有127.0.0.1 localhost,修改本地hosts文件
sudo vim /etc/hosts
127.0.0.1 localhost
127.0.0.1 www.pyweb.cn
3.打开浏览器 输入 127.0.0.1或localhost
出现 Apache2 Ubuntu Default Page
或It works!
则成功
4,安装apache2解析python的包 wsgi程序包
sudo apt-get install libapache2-mod-wsgi-py3
安装完成后 进入 /usr/lib/apache2/modules 目录
cd /usr/lib/apache2/modules
查看是否存在mod_wsgi.so-3.5
5.配置使apache2加载mod-wsgi包
编辑配置文件
sudo vim /etc/apache2/apache2.conf
在文件的最后 添加
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so-3.5
6,创建网站配置文件
编辑网站配置文件
sudo vim /etc/apache2/sites-available/推荐和项目同名或者使用域名.conf
配置内容:
<VirtualHost *:80> # 服务端口号 web服务默认80不推荐修改
ServerName www.pyweb.cn # 指定域名 刚刚修改的hosts文件添加的域名
ServerAdmin py@163.cn # 邮箱随便
#wsgi文件目录 讲apache和django连接在一起
WSGIDaemonProcess python-path=/var/www/project # python-path=/var/www/项目名字
WSGIScriptAlias / /var/www/myproject/myproject/wsgi.py # /var/www/项目名/项目同名的文件夹/wsgi.py
<Directory /var/www/myproject/myproject> # /var/www/项目名/项目同名目录
<Files wsgi.py>
Require all granted
</Files>
</Directory>
#项目文件目录
DocumentRoot /var/www/myproject # /var/www/项目名 指定项目目录
<Directory /var/www/myproject>
Require all granted
</Directory>
#静态文件目录 # 指定项目静态资源路径
Alias /static/ /var/www/myproject/static/ # /var/www/项目名/static/
<Directory /var/www/myproject/static/>
Require all granted
</Directory>
#错误日志 日志名可以自己定义
ErrorLog ${APACHE_LOG_DIR}/django-myproject-error.log
CustomLog ${APACHE_LOG_DIR}/myproject-django.log combined
</VirtualHost>
7,将当前的配置文件创建一个软连接到/etc/apache2/sites-enabled
cd /etc/apache2/sites-enabled
sudo ln -s ../sites-available/自定义名字推荐域名.conf ./
8,执行命令 生效当前配
sudo a2ensite myproject.conf
如果需要让这个配置失效,可以执行 sudo a2dissite myproject.conf
9,配置Django项目目录及修改seeting.py文件,
首先把myproject项目目录拷贝至 /var/www/目录下
在将其ALLOWED_HOSTS=[]改为
ALLOWED_HOSTS=['www.pyweb.cn'],多个域名可以通过逗号隔开。
10,修改Django的wsgi.py文件
import os
os.environ["DJANGO_SETTINGS_MODULE"] = "myproject.settings" # myproject.settings 改成 项目名.settings 不改会报服务器内部错误
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
application = get_wsgi_application()
11.最后:重启apache2
sudo service apache2 restart
和python manage.py runserver 测试环境不同 在Apache 下每次修改都要重启apache
文件上传错误
给static文件夹或项目目录文件递归追加一个www-data用户权限
sudo setfacl -R -m u:www-data:rwx 项目文件夹名/
在配置apache的时候,出现了问题,好不容易把apache服务配置好
但是只能用在Ubuntu里访问那个具有标志性的网页,It works !
在ubuntu 服务器里我是这样访问的
首先,查看服务器的内网IP
然后用elinks 命令
elinks http://172.17.45.112
然后我又在我的电脑里面用外网访问,但是一直是不可以的,我一直查资料,但是就是找不到,
那些方法都解决不了,后来我想到我的是阿里云服务器,然后就去了阿里官网,找,终于找到了,
里面是这样介绍这个问题的
原因分析:安全组默认没有放行网站使用的端口(如80端口)。你需要自行放行该端口
然后顺藤摸瓜,找到了问题的解决方法
在安全组规则里面添加了一个安全组规则
添加安全组规则如下 :
这里有个教我设置,这里你可以根据他提供的设置好
然后我再打开浏览器访问我的公网地址
然后就可以访问了!!!
这样公网ip地址就可以访问远程apache了.
重点来了:
之后用公网访问阿里云服务器的apachehost地址, 只出现It works ! 页面.
最后是之前配置的问题,在6,创建网站配置文件里,Servername 写的假域名,这个只能在本地浏览器进行域名访问.是假的骗自己的.
如果想要联网远程访问,Servername 应该写自己的服务器公网IP,然后在自己配置的项目路径/var/www/web/settings.py 里 ALLOW_HOST['*'] 或者 ALLOW_HOST['自己的公网ip'] 监听所有端口,即所有端口都能访问.
linux 下 apache启动、停止、重启命令
Linux系统为Ubuntu
一、Start Apache 2 Server /启动apache服务
# /etc/init.d/apache2 start
or
$ sudo /etc/init.d/apache2 start
二、 Restart Apache 2 Server /重启apache服务
# /etc/init.d/apache2 restart
or
$ sudo /etc/init.d/apache2 restart
三、Stop Apache 2 Server /停止apache服务
# /etc/init.d/apache2 stop
or
$ sudo /etc/init.d/apache2 stop
项目最后一点验证码的问题:
首先在云服务器安装字体
以ubuntu服务器为示例:
首先,先安装字体库所需要的控件
apt-get install xfonts-utils
apt-get install fontconfig
apt-get install ttf-dejavu-core
然后,将你下载好的字体文件放置到如下位置(.ttf文件):
将下载好的字体复制到/usr/share/fonts/truetype/路径下
(Linux的字体都在/usr/share/fonts这个目录里,一种字体就是这个目录下面的一个子目录。
注意,如果把Windows某个字体的ttf文件复制到某个新建的子目录里面,
还需要在子目录里用root用户身份依次执行如下三条命令,这个字体才能用,并不是复制到/usr/share/fonts目录就可以用了.)
然后,在fonts路径下执行以下命令行
sudo mkfontscale (创建字体的fonts.scale文件,它用来控制字体旋转缩放)
sudo mkfontdir (创建字体的fonts.dir文件,它用来控制字体粗斜体产生)
sudo fc-cache -fv (建立字体缓存信息,也就是让系统认识认识雅黑)建立路径和缓存之后,重启服务器或者重启服务,让系统识别新加入的字体库。
最后就是导入验证码的Pillow包.
安装Pillow:pip install pillow 查看: pip3 list
这样验证码就好使了.
最后的最后:
在阿里云购买了二手域名. 域名解析我自己的服务器地址.
然后再项目里配置好服务器web.conf里的Servername的服务器名字改成自己的域名,之前是用公网Ip访问的, 开启Apache.
Apache2 服务配置 ubuntu16.04 + django1.11的更多相关文章
- Apache2服务配置ubuntu16.04+django1.11
话不多说直接上步骤 环境 Ubuntu 16.04 Python 3.5.2 Django 1.11 Apache 2.4 1.Apache2安装 sudo apt-get install apach ...
- 深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow
深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow 最近在公司做深度学习相关的学习和实验,原来一直 ...
- 深度学习主机环境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow
接上文<深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0>,我们继续来安装 TensorFlow,使其支持GeForce GTX 1080显卡 ...
- (转)深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0
深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0 发表于2016年07月15号由52nlp 接上文<深度学习主机攒机小记>,这台GTX10 ...
- 深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0
不多说,直接上干货! 深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0
- wsl环境下配置ubuntu16.04
wsl环境下配置ubuntu16.04 在公司同事的安利下,终于给自己用了8年的老笔记本(戴尔XPS L502X)换上了固态硬盘(WD500G,SATA3接口) 当然,系统重装了一遍,所有的软件也都没 ...
- 深度学习环境配置:Ubuntu16.04安装GTX1080Ti+CUDA9.0+cuDNN7.0完整安装教程(多链接多参考文章)
本来就对Linux不熟悉,经过几天惨痛的教训,参考了不知道多少篇文章,终于把环境装好了,每篇文章或多或少都有一些用,但没有一篇完整的能解决我安装过程碰到的问题,所以决定还是自己写一篇我安装过程的教程, ...
- 深度学习环境配置:Ubuntu16.04下安装GTX1080Ti+CUDA9.0+cuDNN7.0完整安装教程(多链接多参考文章)
本来就对Linux不熟悉,经过几天惨痛的教训,参考了不知道多少篇文章,终于把环境装好了,每篇文章或多或少都有一些用,但没有一篇完整的能解决我安装过程碰到的问题,所以决定还是自己写一篇我安装过程的教程, ...
- 配置Ubuntu16.04虚拟机 (用途:CTF_pwn)
因为学习需要16.xx的虚拟机,所以把之前18.04的Ubuntu卸掉重装了一遍Ubuntu16.04, 考虑到我有备份和重装系统的爱好,故记之,以备后用. 目录: //最后更新时间:190122·1 ...
随机推荐
- Spring-Cloud之Ribbon负载均衡-3
一.负载均衡是指将负载分摊到多个执行单元上,常见的负载均衡有两种方式.一种是独立进程单元,通过负载均衡策略,将请求转发到不同的执行单元上,例如 Ngnix .另一种是将负载均衡逻辑以代码的形式封装到服 ...
- pychrom注册码
http://angame.top/wx/web/zhucema/ YZVR7WDLV8-eyJsaWNlbnNlSWQiOiJZWlZSN1dETFY4IiwibGljZW5zZWVOYW1lIjo ...
- http请求的几种content-type
1. 2.二进制文件 3.form-data 数据:a=1 总结: 1.对于我自己的写的服务来说,只要是raw,接收到的都是二进制字符: 2.如果是urlencode,接收到的是拼接的字符串(和使用p ...
- Spire.Doc 生成pdf业务运营报告
需求:每天向全国各运营大区钉钉运营群定时发送pdf业务运营报告: 通过对各Office操作组件对比,选择Spire.Doc.它专门为开发人员进行创建,读取,写入.转换打印 word 文档文件提供便利, ...
- 【故障处理】队列等待之TX - allocate ITL entry引起的死锁处理
[故障处理]队列等待之TX - allocate ITL entry引起的死锁处理 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌 ...
- 【RAC】将RAC备份集恢复为单实例数据库
[RAC]将RAC备份集恢复为单实例数据库 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识, ...
- uuid简述
什么是UUID? UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符,参考RFC规范-RFC4122. UU ...
- Pthon魔术方法(Magic Methods)-反射
Pthon魔术方法(Magic Methods)-反射 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.反射概述 运行时,区别于编译时,指的时程序被加载到内存中执行的时候. 反射 ...
- 分布式存储-ceph
1. ceph 简介 Ceph是一种为优秀的性能.可靠性和可扩展性而设计的统一的.分布式文件系统().ceph 的统一体现在可以提供文件系统.块存储和对象存储,分布式体现在可以动态扩展.在国内一些公司 ...
- SpringCloud2.0 Hystrix Dashboard 断路器指标看板 基础教程(八)
1.启动基础工程 1.1.启动[服务中心]集群,工程名称:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) ...