sudo apt-get install apache2 libapache2-mod-wsgi-py3 -y
编辑配置文件
sudo vi /etc/apache2/apache2.conf
在文件的最后 添加
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so-3.6
配置apache网站字符编码, /etc/apache2/conf.d/charset文件取消注释#AddDefaultCharset UTF-8
cd /etc/apache2/conf-available
sudo vi charset.conf
ubuntu的apache2配置文件在 /etc/apache2/ 下,在文件夹sites-available下新建一个网站配置文件:mysite.conf
配置文件解析
# 服务端口号 web服务默认80不推荐修改
ServerName www.dd.cn # 指定域名 刚刚修改的hosts文件添加的域名
ServerAdmin [email protected] # 邮箱随便
# wsgi文件目录 将apache和django连接在一起
WSGIDaemonProcess python-path=/var/www/mywebsite # python-path=/var/www/项目名字
WSGIScriptAlias / /var/www/mywebsite/mywebsite/wsgi.py # /var/www/项目名/项目同名的文件夹/wsgi.py
# /var/www/项目名/项目同名目录
Require all granted
# 项目文件目录
DocumentRoot /var/www/mywebsite # /var/www/项目名 指定项目目录
Require all granted
# 静态文件目录 # 指定项目静态资源路径
Alias /static/ /var/www/mywebsite/static/ # /var/www/项目名/static/
Require all granted
# 错误日志 日志名可以自己定义
ErrorLog ${APACHE_LOG_DIR}/django-myproject-error.log
CustomLog ${APACHE_LOG_DIR}/mywebsite-django.log combined
cd /etc/apache2/sites-available
sudo vi mysite.conf
输入的内容
ServerName www.dd.cn
ServerAdmin [email protected]
WSGIDaemonProcess python-path=/var/www/mywebsite
WSGIScriptAlias / /var/www/mywebsite/mywebsite/wsgi.py
Require all granted
# 项目文件目录
DocumentRoot /var/www/mywebsite
Require all granted
Alias /static/ /var/www/mywebsite/static/
Require all granted
ErrorLog ${APACHE_LOG_DIR}/django-myproject-error.log
CustomLog ${APACHE_LOG_DIR}/mywebsite-django.log combined
保存退出
配置软连接
将当前的配置文件创建一个软连接到/etc/apache2/sites-enabled
cd /etc/apache2/sites-enabled
sudo ln -s ../sites-available/自定义名字推荐域名.conf ./
sudo a2ensite mysite.conf
如果需要让这个配置失效,可以执行 sudo a2dissite myproject.conf
首先把mywebsite项目目录拷贝至 /var/www/目录下
在将其ALLOWED_HOSTS=[]改为
ALLOWED_HOSTS=[‘www.pyweb.cn’],多个域名可以通过逗号隔开.
首先把myproject项目目录拷贝至 /var/www/目录下
你们默认是*,如果不想操纵也可以不做
修改setttings.py
在将其ALLOWED_HOSTS=[]改为
ALLOWED_HOSTS=['www.pyweb.cn'],多个域名可以通过逗号隔开.
import os
os.environ["DJANGO_SETTINGS_MODULE"] = "mywebsite.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()
sudo service apache2 restart
和python manage.py runserver测试环境不同,在Apache下每次修改都要重启apache
给你的文件夹授权
授权: sudochmod -R 777 mywebsite
或者
给static文件夹或项目目录文件递归追加一个www-data用户权限
sudo setfacl -R -m u:www-data:rwx 项目文件夹名/
我们进入日志去查看
vi django-myproject-error.log
掐指一算,貌似ubuntu 默认是py2.7啊。
而且pip中没有装django
Ubuntu默认Python为2.7,所以安装Python包时安装的为py2的包。
利用alternatives机制将python3.x改为默认。
打开终端,依次输入如下两条命令即可:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
django
与pillow(pillow 默认存在pip3)
安装pip3
sudo apt-get install python3-pip
安装django
sudo pip3 install django==1.11.*
其他环境
sudo pip3 install pymysql
修改数据库配置
settings.py
进入我们项目 初始化数据库 利用数据迁移(或者直接导入sql文件建议直接导入)
使用命令行导入sql
自己完成!
想想,是不是无法打开资源!
你忘了字体文件吗!