最近由于服务器到期,更换了原有的服务器提供商,因此又不得不折腾,太麻烦了。刚开始配置还是挺顺利的,但是想使用virtualenvwrapper来管理虚拟环境,更重要的原因是有个包居然不支持python3.5,因此,不得不又装python3.6,结果不知为什么使用uwsgi后就是跑不起来,报什么ModuleNotFoundError: No module named 'encodings错误,到现在都不知道原因!!!
一气之下,重装系统,装个ubuntu18.04,自带python3.6。
方便参考,这篇小记会讲一下几个方面:
1.pip安装
2.ubuntu下python3.6安装
3.安装virtualenvwrapper
4.mysql安装
5.nginx+uwsgi配置
6.supervisor配置
1.pip安装
使用sudo apt-get update
更新软件
(1)使用以下方式安装:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py # 运行安装脚本双环境,默认py2
sudo python3 get-pip.py # py3运行安装脚本。
(2)安装方法2
sudo apt install python3-pip
可以使用pip --version
显示版本和验证安装是否成功
使用python -m pip install -U pip
升级pip
2.安装python
导入第三方软件库
apt-get install software-properties-common
add-apt-repository ppa:jonathonf/python-3.6
更新软件源并安装
apt-get update
apt-get install python3.6
安装python3.6完成,接着建立软连接,因为当前系统有py2.7、py3.5、py3.6,当然也可以不建立默认使用python3.6连接py36
cd /usr/bin # 进入该目录下
rm python # 删除python软连接
ln -s python3.6 python # 指定python3.6的软连接为python
rm python3
ln -s python3.6 python3
3.安装virtualenvwrapper
1.安装virtualenv
pip3 install virtualenv
创建虚拟环境
virtualenv -p python3 /home/py36
或者
virtualenv -p /usr/bin/python3.6 /home/py36
/usr/bin/python3.6为系统中详细的python安装地址,关于查看地址,可以使用whereis python
2.安装virtualenvwrapper
pip3 install virtualenvwrapper
配置
使用vi ~/.bashrc
打开终端配置文件,这里我是使用root用户打开的,如果不是root用户,打开文件也许什么都没有。
配置文件如下:
保存后使用source ~/.bashrc
,这样每次启动终端的时候都会自动运行
使用:
创建py36虚拟环境
mkvirtualenv -p python3 py36
进入虚拟环境:
workon py36
退出环境,使用系统环境:
deactivate
删除环境:
rm -rf ~/.virtualenvs/py36
查看当前机器所有的虚拟环境
lsvirtualenv
或者workon+enter(按键)
用于直接进入pip3软件包的目录
cdsitepackages
4.mysql安装
wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
ls
dpkg -i mysql-apt-config_0.8.10-1_all.deb
执行上述命令后会弹出界面
选择Ok,安装mysql5.7
一般在ubuntu16.04系统下
运行下述命令,会继续出现界面
apt-get update
apt-get install mysql-server
提示你输入密码等。
可以查看该https://ywnz.com/linuxysjk/4780.html
我使用的ubuntu18.04没有继续出现这些界面,并且安装mysql没有初始密码。
此时可以sudo cat /etc/mysql/debian.cnf
得到以下结果
host = localhost
user = debian-sys-maint
password = C00qMhaiNYxOceuU <------------密码
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = C00qMhaiNYxOceuU
socket = /var/run/mysqld/mysqld.sock
输入:mysql -u debian-sys-maint -p,使用上面的密码进入
use mysql;
// 下面这句命令有点长,请注意。
update mysql.user set authentication_string=password('root') where user='root' and Host ='localhost';
update user set plugin="mysql_native_password";
flush privileges;
quit;
上面的password为新密码可以设置成你想设置的
重新启动mysql:
sudo service mysql restart
mysql -u root -p
具体可以参考这篇博文:https://blog.csdn.net/qq_38737992/article/details/81090373
附mysql服务常用命令:
service mysql start 启动
service mysql stop 停止
service mysql restart 重启
5.nginx+uwsgi配置
nginx安装:
sudo apt-get install nginx
进入nginx安装目录
cd /etc/nginx
进入目录下sites-enabled
删除default文件,建立myconf.conf配置文件
1.配置nginx文件
upstream django {
server 127.0.0.1:8001;
}
server {
listen 80;
server_name blog.huyu.info; # ip/域名
charset utf-8;
client_max_body_size 75M;
# Django media,图片
location /media {
alias /home/BlogSite/media;
}
# css、js...
location /static {
alias /home/BlogSite/static_collected;
}
# Finally, send all non - media requests to the Django server.
location / {
uwsgi_pass django;
include uwsgi_params;
}
}
保存,进入nginx目录下sites-enabled,删除default
建立软连接
ln -s /etc/nginx/sites-available/myconf.conf /etc/nginx/sites-enabled/myconf.conf
使用虚拟环境,进入/home/my_uwsgi下建立文件uwsgi.ini
[uwsgi]
chdir = /home/BlogSite # django项目文件
home = /home/py3-env # 虚拟环境
# Django's wsgi file
module = BlogSite.wsgi:application
master = True
# maximum number of worker processes
processes = 4
# 超时时间
harakiri = 60
max-requests = 5000
# the socket (use the full path to be safe
socket = 127.0.0.1:8001
uid = 1000
gid = 2000
# 启动主进程
pidfile = /home/my_uwsgi/master.pid
daemonize = /home/my_uwsgi/mysite.log
vacuum = True
在uwsgi.ini所在目录下执行uwsgi --ini uwsgi.ini
重启nginx,sudo nginx -s reload
,就完成了
附uwsgi及nginx常用命令
启动:uwsgi --ini uwsgi.ini
停止:uwsgi --stop uwsgi.pid
重启:uwsgi --reload uwsgi.pid
强制停止:killall -9 uwsgi
sudo nginx start #运行nginx
sudo nginx -s reload #重启nginx
sudo apt-get remove nginx卸载
6.supervisor配置
安装supervisor
sudo apt-get install supervisor
安装目录在/etc/supervisor/,目录结构如下:
配置文件就是这个supervisor.conf,基本不用大改。
要管理的进程配置文件都放在conf.d文件夹中:
[program:uwsgi] # 必填
command =/home/py36/bin/uwsgi /home/my_uwsgi/uwsgi.ini # 第一段执行的虚拟环境 配置的uwsgi.ini文件
directory=/home/BlogSite # django项目
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
user = root ; 用哪个用户启动
redirect_stderr = true; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB; stdout 日志文件大小,默认 50MB
loglevel = info ;记录等级 有critical, error, warn, info, debug, trace, or blather等; stdout 日志文件,需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /home/log/plantool_stdout.log
stderr_logfile = /home/log/plantool_err.log
uwsgi配置:
[uwsgi]
chdir = /home/BlogSite
home = /home/py36
# Django's wsgi file
module = BlogSite.wsgi:application
master = True
# maximum number of worker processes
processes = 4
# 超时时间
harakiri = 60
max-requests = 5000
# the socket (use the full path to be safe
socket = 127.0.0.1:8001
#uid = 1000
#gid = 2000
# 启动主进程
pidfile = /home/my_uwsgi/master.pid
#daemonize = /home/my_uwsgi/mysite.log
vacuum = True
配置web页面管理,在supervisor.conf文件中配置以下内容:
[inet_http_server]
port=0.0.0.0:9001 # 默认127.0.0.1:9001
username=xxxx # 用户名
password=xxx # 密码
附相关命令:
修改了Supervisor 的配置信息后,必须执行下面命令
service supervisor start # 启动
sudo supervisorctl reload # 重启
sudo supervisorctl update # 更新
评论列表
已有0条评论