Django Apache 搭建记录

使用Apache运行Django网站

搭建记录:

1. 代码设置

首先网站先写好
在setting.py设置

DEBUG = False

LANGUAGE_CODE = 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'

#允许其他主机访问
ALLOWED_HOSTS = ["*"]

2. 环境安装

在一台全新的ubuntu18中安装环境:

cat source.txt > /etc/apt/source.list
apt update

sudo apt install net-tools --assume-yes

#install python3
sudo apt install python3 --assume-yes
sudo apt install python3-pip --assume-yes

sudo pip3 install django
sudo apt-get install apache2 --assume-yes
# Python 2
#sudo apt-get install libapache2-mod-wsgi

# Python 3
sudo apt-get -y install libapache2-mod-wsgi-py3 --assume-yes

#install mysql
sudo apt-get install mysql-server --assume-yes

#install python mysql
apt install libmysqlclient-dev --assume-yes
pip3 install mysqlclient

pip3 install --user virtualenv
pip3 install xlrd
pip3 install mod_wsgi

sudo apt-get install apache2-dev --assume-yes
sudo apt-get install python3.6-dev --assume-yes

3. 环境配置

3.1 apache2的环境配置

其实就是改了改原来apache2.conf中的

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

下面这个是我摘出来的精简版
apache2.conf

DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
AccessFileName .htaccess

<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

3.2 将这个配置文件覆盖原来的

cp apache2.conf /etc/apache2/

3.3 下面是apache2对我们网站的配置文件

mysite.conf

<VirtualHost *:80>
  #访问网站以哪个目录开始,第二个参数填写路径
  WSGIScriptAlias / /home/ubuntu/mysite/mysite/wsgi.py  
  <Directory /home/ubuntu/mysite/mysite>
    <Files wsgi.py>
      Require all granted
    </Files>
  </Directory>
  #开放静态目录
  Alias /static/ /home/ubuntu/mysite/static/
  <Directory /home/ubuntu/mysite/static>
    Require all granted
  </Directory>

  #开放上传文件夹
  Alias /media/ /home/ubuntu/mysite/media/
  <Directory /home/ubuntu/mysite/media>
    Require all granted
  </Directory>

  #以下开始是因为使用了virtualenv部署
  #第一个路径是虚拟环境路径,第二个是项目所在路径
  WSGIDaemonProcess mysite python-path=/home/ubuntu/mysite
  #分组
  WSGIProcessGroup mysite
</VirtualHost>

3.4 将文件放到正确的位置

cp test2.conf /etc/apache2/sites-available/

4 创建数据库

我们安装完成的mysql会自动设置一个密码,我们需要改成和我们代码中的数据库密码对应的密码
由于没有密码所以我们一开始无法以普通用户的方式进入mysql
所以先切换到root用户,不使用密码直接进入设置密码

su
#输入root密码
mysql  #进入mysql
update mysql.user set authentication_string=PASSWORD('123456'),plugin='mysql_native_password' where user='root';
flush privileges;

之后我们就可以使用mysql的密码进入mysql了,然后创建数据库,设置数据库的字符为utf8,
注意linux上mysql的默认字符不是utf8,用不了中文

mysql -u root -p
#输入自己设置的密码
create database database1 character set utf8;
quit

5 初始化网站的数据库

python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py createsuperuser

6 启动apache2

sudo a2ensite mysite.conf //激活网站
sudo a2dissite 000-default.conf //关闭自身站点
apache2ctl configtest //检查配置有无问题,有的话自行解决
sudo apache2ctl restart //重启服务
全部评论

相关推荐

机械打工仔:不管啥专业,找工作改简历的第一课先把你那排版改了,简历上不要写个人简历四个字,找你要简历的谁不知道这个是简历?而且还占那么多空间,直接把自己名字和基础信息写上面,整体字体大一些。 还有这种经典两页简历一页大空白,导出PDF的时候多了一页几乎全是白的你自己看着不难受吗随手的事为啥不能改掉呢,这是态度问题,你试想一下你是HR你打开简历看到格式都没调整过会是什么感受?你自己都不重视你的简历,HR更不会在意。 然后内容你那个做两年咖啡就别往里写了,简历在精不在多,你在往你的简历里打字的时候就要想好这东西对你要找的工作有没有帮助。自我评价写一行就行了,不如给专业技能单开一栏。核心课程均分90这个真别写了,把你上过的有用的专业课列出来也行。有很多地方废话很多的精炼一下,比如你校内项目第一个写的那些,全然没有重点。 好好修改一下,我看你内容也挺优秀的,别被一个随便做的简历耽误了,我一个同专业的打工人看了都揪心更别说一天看几百份简历的HR
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务