在腾讯云服务器(Ubuntu)部署本地Django+Apache+MySQL项目

云服务器的环境配置

更新源

sudo apt update

本地已经自带python2和python3(3.6)了,安装pip

sudo apt install python3-pip

本项目在本地并没有使用python虚拟环境,因此也不对虚拟环境配置
安装Django

python3 -m pip install django

安装mysql

sudo apt install mysql-server 
sudo apt install mysql-client

安装apache2

sudo apt install apache2

安装mod_wsgi

sudo apt install libapache2-mod-wsgi-py3

项目和数据库的迁移

Django项目内容和MySQL数据库内容都在本地,需要迁移到云服务器上。可以直接通过scp命令将Django项目文件夹拷贝到云服务器上,但是云服务器上的python有很多库都还没有安装,可以在运行时需要什么再安装什么,也可以通过如下方式:

# 在本地执行:
python -m pip freeze > plist.txt # 这个plist文件保存了所有本地python安装过的包,拷贝到云服务器

#在云服务器执行安装库
python3 -m pip install -r plist.txt

但是这种方法会应为版本问题很多库装不上,不用担心,直接在plist中删除下不了的库就行

本地将MySQL数据库迁移:

下面的过程参考:https://blog.csdn.net/weixin_45459224/article/details/102991951

# 在云服务器创建和本地同名的数据库
create database myblog;
 
# 数据的迁移:先在本地生成备份文件,myblog是要备份的数据库,myblog.sql是导出的备份文件,scp到云服务器
mysqldump -u root -p myblog >myblog.sql 
 
# 在云服务器执行:
mysql -u root -p myblog < myblog.sql
 
mysql配置:找到mysqld.cnf文件注释掉bind-address这一行

/etc/mysql/mysql.conf.d/mysqld.cnf   #配置文件路径
#bind-address		= 127.0.0.1   #注释掉这一行

#修改mysql配置使得无需sudo
sudo vim /etc/mysql/my.cnf
# 添加
[mysqld]
skip-grant-tables

#执行
sudo service mysql stop
sudo service mysql start

配置apache2

先创建一个站点的配置文件:

sudo vim /etc/apache2/sites-available/MyBlog.conf

写入如下内容

# apache2监听的端口
<VirtualHost *:80>
# 填写自己服务器的域名或者ip
ServerName www.dslab525.cn
# 其他域名(此处可以不填),多个域名指向同一个站点时可以使用,要多少个就加多少个,空格隔开 
ServerAlias dslab525.cn
# 项目文件的根目录
DocumentRoot /home/ubuntu/MyBlog/

# 静态文件文件存放的路径
Alias /static/ /home/ubuntu/MyBlog/static/
# 多媒体文件存放的路径
Alias /media/ /home/ubuntu/MyBlog/media

# 文件授权
<Directory /home/ubuntu/MyBlog/media>
        Require all granted
</Directory>

# 文件授权
<Directory /home/ubuntu/MyBlog/static>
        Require all granted
</Directory>

# 通过wsgi.py 连接apache2和你的Django项目
WSGIScriptAlias / /home/ubuntu/MyBlog/MyBlog/wsgi.py

# 文件授权
<Directory /home/ubuntu/MyBlog/MyBlog>
        <Files wsgi.py>
                Require all granted
        </Files>
</Directory>

</VirtualHost>

修改wsgi.py文件

sudo vim /home/ubuntu/MyBlog/MyBlog/wsgi.py

#添加到前面!(不要放到后面,我也不知道为什么...)
from os.path import join,dirname,abspath 
import sys

PROJECT_DIR = dirname(dirname(abspath(__file__))) 	
sys.path.insert(0,PROJECT_DIR)

apache2 相关权限设置(apache服务器在运行的时候默认的用户是“www-data”)

cd /home/ubuntu/
sudo chmod -R 644 MyBlog
sudo find MyBlog -type d | xargs chmod 755
sudo chgrp www-data MyBlog
sudo chmod g+w MyBlog

还要注意和项目相关的所有目录都必须有可执行权限,比如/home/ubuntu/MyBlog,那么/home,/home/ubuntu,
/home/ubuntu/*都需要添加可执行权限!!

启动项目

sudo a2ensite MyBlog.conf
sudo service apache2 restart

这时就可以直接通过域名来访问启动的django项目了!!

参考

django项目部署阿里云服务器(ubuntu16.04)
Ubuntu下利用Apache2实现Django部署

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值