首先要以root用户登陆你的服务器,如果不是,只用在每条语句前加上sudo即可
apt-get install software-properties-common
add-apt-repository ppa:jonathonf/python-3.6
apt-get update
apt-get install python3.6
在中间如果需要你输入Y or N,请输入Y然后继续就可以了
这个时候你的python3的版本仍然是python3.5,这就需要我们更改一下了
which python3 # 找到你的python3这个位置
cd [path] # 进入这个目录
rm python3 # 删除python3文件
ln -s python3.6 python3 # 重新生成一个软链接
python3 -V # 查看python3的版本
你也可以使用同样的方法,将python也指定为3.6版本
也可以查看python的版本,将你不需要的版本删除
python + tab +tab # 查看你的python的所有版本
apt autoremove pythonx.x # 删除你不需要的python版本
接下来就是安装pip了
apt-get install python3-pip
pip3 install --upgrade pip # 升级pip的版本到最新
同样的你可以看看pip3指向的是不是python3.6,如果不是,可以用上面的方法更改问python3.6
创建一个虚拟环境并激活
virtualenv mysite_env
cd mysite_env
source bin/activate
安装mysql
wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb # 这个是mysql下载的一个链接
dpkg -i mysql-apt-config_0.8.13-1_all.deb
apt-get update
apt-get install mysql-server
这样就可以安装好mysql了,中间会让你选择哪个版本,还有输入密码,选择插件。依次进行就行了,插件选择哪个都行,我选择的是5.x版本。
安装mysqlclient
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/libmysqlclient-dev_8.0.16-2ubuntu16.04_amd64.deb # 一定要与你的mysql服务器的版本相同
dpkg -i libmysqlclient-dev_8.0.16-2ubuntu19.04_amd64.deb
apt-get update
apt-get install libmysqlclient-dev # 这一步如果出现错误的话,就根据提示输入命令即可,我的提示的是使用 apt-get -f install
apt-get install python3.6-dev # 安装过了就不需要重复安装
apt-get install libssl-dev
pip install mysqlclient
安装uwsgi
apt-get install python3.6-dev # 安装过的可以不用安装
pip3 install uwsgi
安装nginx
apt-get install nginx
将uwsgi与nginx联系起来,提供服务
我们需要修改一些配置
cd /etc/nginx/sites-enabled/
rm default
cd ..
cd sites-available
vim projectname.conf
文件里的内容
server {
listen 80; # 监听80端口
server_name projectname; # 自定义的
charset utf-8;
client_max_body_size 75M;
location /static {
alias /home/mysite/static; # 路径是你静态文件的路径
} # 静态文件
location /media {
alias /home/mysite/media; # 与上一个类似
} # 静态文件
location / {
uwsgi_pass 127.0.0.1:8000; # 服务的端口
include /etc/nginx/uwsgi_params; # uwsgi_params的路径
} # 动态链接
}
接下来就回到我们的home路径
cd /home
mkdir projectname_uwsgi
cd projectname_uwsgi
vim projectname.ini
文件中的内容
[uwsgi]
chdir = your/project/path
home = your/virtualenv/path
module = your/project/path.wsgi:application
master = True
processes = 4 # 最多几个线程进行请求
max-requests = 5000 # 一个线程最多请求5000个
harakiri = 60 # 超时时间(s)
socket = 127.0.0.1:8000
uid = 1000
gid = 2000
pidfile = your/projectname_uwsgi/path/master.pid
daemonize = your/projectname_uwsgi/path/projectname.log # 后台运行,日志文件
vacuum = True # 当服务器关闭或退出会对上面两个文件回溯
接下来进行测试一下,启动uwsgi
uwsgi --ini your/projectname.ini/path
ps -aux | grep uwsgi # 查看进程
使用的是socket协议
接下来需要对projectname.conf文件进行一下设置,移动它的位置
ln -s your/projectname.conf/path /etc/nginx/sites-enabled/projectname.conf
使用uwsgi以ini文件启动
uwsgi --ini uwsgi.ini # 你的ini路径
ps- aux | grep uwsgi # 查询uwsgi是否启动
启动nginx服务
service nginx start
其他一些操作
service nginx start/stop/restart # 启动/停止/重启nginx
ps -aux | grep uwsgi # 查询uwsgi的相关进程
uwsgi --stop uwsgi.pid # 停止服务
uwsgi --reload uwsgi.pid # 重新加载服务
ps -aux | grep uwsgi |awk '{print $2}'|xargs kill -9 # 关闭所有uwsgi服务