新服务器运行django站点
远程登录服务器
1 | sudo ssh root@user_name |
延长服务器ssh超时自动断开时间,此处为30分钟
1 | #默认情况下,SSH 配置文件位于 /etc/ssh/sshd_config。 |
建议安装FTP
软件代替scp
命令,本处使用FileZilla
首先更新服务器的软件
1 | #用户为root用户 |
升级python版本,安装pip
1 | apt install python3 |
我的服务器上,上一步的环境没解决好,有问题,pip不能切换,使用conda创建虚拟环境
下载 Miniconda 安装脚本:
在终端中执行以下命令,从 Miniconda 的官方网站下载适用于你的操作系统的安装脚本。你可以选择适用于 Python 3.x 的版本。
1
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
运行安装脚本:
在终端中执行以下命令,运行下载的安装脚本(请注意,文件名可能会因下载的版本而有所不同):
1
bash Miniconda3-latest-Linux-x86_64.sh
按照安装向导完成安装:
按照安装向导的提示进行安装。
ctrl + c
跳过解释,通常情况下,选择默认选项即可。启动一个新的终端窗口:
安装完成后,你需要启动一个新的终端窗口,以使新的 Conda 环境变量生效。
测试 Conda 安装:
在终端中运行以下命令,检查 Conda 是否正确安装:
1
conda --version
如果显示了 Conda 的版本信息,则表示安装成功。
现在,你可以使用 Conda 创建虚拟环境、安装软件包等。使用以下命令来创建一个名为 “myenv” 的虚拟环境:
1 | conda create -n myenv python=3.8 |
然后激活这个环境:
1 | conda activate myenv |
在激活的环境中,你可以使用 Conda 安装所需的软件包,管理依赖项等。当你完成项目后,可以使用以下命令退出虚拟环境:
1 | conda deactivate |
安装requirements.txt库
1 | pip install -r requirements.txt |
上传并解压文件(推荐上传压缩包替代文件夹),
1 | unzip MyBlog.zip |
pip
换国内源
1 | mkdir ~/.pip |
安装数据库,此处为MySql
1 | apt install mysql-server |
为mysql root用户设置密码
登录到 MySQL 服务器: 打开终端并使用以下命令登录到 MySQL 服务器。你将需要输入安装过程中设置的 MySQL root 用户密码。
1
mysql -u root -p
如果成功登录,你将进入 MySQL 命令行界面。
设置 root 用户密码: 在 MySQL 命令行中,使用以下命令来设置 root 用户的密码。将
new_password
替换为你想要设置的实际密码。1
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'new_password';
替换
'new_password'
为你要设置的实际密码。刷新权限: 在设置密码后,需要刷新权限以确保更改生效。
1
FLUSH PRIVILEGES;
退出 MySQL 命令行: 输入以下命令退出 MySQL 命令行界面。
1
exit
运行django程序
mysql建立相应的数据库
使用迁移命令建立相应的表
1
2python3 manage.py makemigrations
python3 manage.py migrate开启防火墙
1 | #在配置nginx前,开启防火墙,不然下次可能无法通过ssh访问服务器 |
安装nginx
1 | apt install nginx |
配置nginx文件
1 | nano /etc/nginx/sites-available/default |
1 | server { |
1 | service nginx reload |
apt换源
- 备份当前sources.list文件:
1 | cp /etc/apt/sources.list /etc/apt/sources.list.bak |
- 编辑sources.list文件:
1 | nano /etc/apt/sources.list |
- 注释掉原有的源,加入新的软件源:
1 | deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse |
收集静态文件
1 | # 静态文件收集目录 |
1 | python3 manage.py collectstatic |
运行gunicorn
1 | gunicorn --bind unix:/tmp/117.72.9.46.socket MyBlog.wsgi:application |
gunicorn –bind unix:/tmp/117.72.9.46.socket –log-file /logfile.log MyBlog.wsgi:application
使用nginx获取真实ip
1 | #如果你使用了Nginx作为反向代理服务器,并且在Nginx配置中有一些代理相关的设置,那么在Django中通过#self.request.META.get('REMOTE_ADDR')获取到的IP地址可能会不准确,甚至为空。这是因为Nginx会将用户的真实IP地址放在特定的#HTTP头中,而不是直接传递给Django。 |
当然你也可以不安装nginx、gunicorn等服务,直接部署项目
- 开启防火墙,配置服务器防火墙规则:
确保服务器的防火墙允许来自外部网络的连接到达你选择的Django运行端口
1 | #查看防火墙状态 |
2.启动Django应用:
1 | #切记运行接口是(0.0.0.0),而不仅仅是本地接口127.0.0.1 |
3.访问django程序
1 | 浏览器访问 公网IP:8000 |