在阿里云服务器上部署自己的项目
小伙伴们是不是想部署自己的项目到服务器上,让自己的朋友,还有广大的网友看到自己的网站呢?下面我就把部署项目到服务器的方法写下来给大家,希望可以帮到有需要的人!!!
前期准备:
- 买一个自己的服务器
- 选择操作系统(我下面介绍的是Ubuntu系统)
操作步骤:
1.解决python解释器的版本和执行问题
一般情况下服务器自带的python版本是2.7
的版本,也有python3.5
的版本,但是python3.5
要激活.因为现在都大家都使用的是python3.8
所以我们都安装python3.8
.
依次执行下面的命令:
git clone https://github.com/waketzheng/carstino
#换华为的镜像源
sudo ./carstino/change_ubuntu_mirror_sources.py
#更新`apt`
sudo apt update
#提供编译程序必须软件包的列表信息
sudo apt install -y build-essential checkinstall
sudo apt install -y libreadline-gplv2-dev libncursesw5-dev libssl-dev tk-dev zlib1g-dev
sudo apt install -y libsqlite3-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev libssl-dev
wget https://mirrors.huaweicloud.com/python/3.8.2/Python-3.8.2.tar.xz
tar xf Python-3.8.2.tar.xz
cd Python-3.8.2
./configure --enable-optimizations
sudo make altinstall
python3.8 -V
pip3.8 -V
修改软连接(配置全局变量)
#将原来的链接备份
mv /usr/bin/python /usr/bin/python.bak
#添加python3的软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python
#测试是否安装成功了
python -V
#更新pip命令
python -m pip install --upgrade pip
2. 虚拟环境的问题解决
首先安装虚拟环境,命令如下:
sudo pip3 install virtualenv #安装虚拟环境
接下来还要安装虚拟环境扩展包,命令如下:
sudo pip3 install virtualenvwrapper
安装虚拟环境包装器的目的是使用更加简单的命令来管理虚拟环境。
修改用户家目录下的配置文件.bashrc,添加如下内容:
(就是在根目录下面的这个文件中配置环境变量)
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
使用source .bashrc
命令使配置文件生效。
创建python3虚拟环境的命令如下:
mkvirtualenv 虚拟环境名称 # mkvirtualenv -p python3 虚拟环境名字
例:
mkvirtualenv django_1
在pycharm中生成安装依赖的文件
pip freeze>requirements.txt
#这样所有的安装依赖都会被写到该文本中.
#workon '虚拟环境的名字'
pip install -r requirements.txt
#这样所有的应用都会安装到虚拟环境中.
3. 把自己的项目上传到自己的服务器中
在这里我是使用的
xshell
,安装一个小工具上传文件比较方便.apt -y install lrzsz
把自己的项目文件夹打包成zip包,这样就可以使用
rz
命令在xshell中上传.
上传之后就用 Ubuntu的解压方式解压.sudo apt-get install unzip
unzip 包名
4.安装mysql
sudo apt install mysql-server
登录进去mysql
mysql -uroot -p 输入密码:
之后就要登录mysql.创建自己需要的数据库,要跟自己项目中的数据库的名字是一样的
导进自己的sql加载到自己的数据库中.
source /自己的sql路径
5. 部署项目安装需要的环境
- 配置
settings.py
文件
DEBUG = False # 关闭debug调试
ALLOWED_HOSTS = ['*'] # 允许任何域方法
- 收集静态文件
# 静态文件
STATIC_URL = '/static/'
# 注释掉
#STATICFILES_DIRS = [
# os.path.join(BASE_DIR, 'static')
#]
STATIC_ROOT = os.path.join(BASE_DIR,'static/')
#执行这个命令收集静态文件
python manage.py collectstatic
- 安装
uwsgi
pip install uwsgi
- 新建uwsgi.ini文件
#添加配置选择
[uwsgi]
#配置和nginx连接的socket连接
socket = 127.0.0.1:8000
#配置项目路径,项目的所在目录
chdir = /Desktop/1907/test/test_common
#配置wsgi接口模块文件路径
wsgi-file = test_common/wsgi.py
#配置启动的进程数
processes = 4
#配置每个进程的线程数
threads = 2
#配置启动管理主进程
master = True
#配置存放主进程的进程号文件
pidfile = uwsgi.pid
#配置dump日志记录
daemonize = uwsgi.log`
# 虚拟环境
virtualenv = /home/ubuntu/.virtualenvs/django_env
(备注:这里放的是虚拟环境安装的路径,后面还要跟上自己的虚拟环境名字)
- 安装
nginx
sudo apt install nginx
- 配置
nginx
# configuration of the server
server {
# 你的网站监听的端口,此处先用8000端口测试,正式部署可以改为80或其他
listen 80;
# 你的网站的域名
server_name *.com; # substitute your machine's IP address or FQDN
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
# Django media
location /media {
alias /home/mysite/media; # 你的media的文件目录
}
location /static {
alias /home/mysite/collected_static; # 你的项目收集的静态文件目录(后边会将收集静态文件)
}
# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass 127.0.0.1:8000;
include uwsgi_params; # uwsgi_params 文件所在目录
}
}
- 启动
uwsgi
uwsgi --ini uwsgi.ini
- 启动
nginx
/etc/init.d/nginx start
然后在浏览器中输入自己的公网ip,就可以看到自己的首页了…