标签:flush man 命令参数 数据库 管理系 l命令 静态 name profile
cat /etc/redhat-release 查看系统版本
cat /etc/os-release 查看系统版本
cd /etc/yum.repos.d
mkdir repobak
mv * repobak/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
?
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
##### 注意1: 必须先安装库环境
yum install -y gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
?
##### 注意2: 配置环境变量/etc/profile,python3的变量一定要放在第一位
pip3 install -i https://pypi.douban.com/simple virtualenv
pip3 install -i https://pypi.douban.com/simple virtualenvwrapper
vim ~/.bashrc
在最后添加以下内容:
export WORKON_HOME=~/Envs
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=‘--no-site-packages‘
export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3
source /opt/python36/bin/virtualenvwrapper.sh
source ~/.bashrc
mkvirtualenv book_manage
yum install -y mariadb-server mariadb
# 先启动mariadb
systemctl start mariadb
?
# 再进行初始化
mysql_secure_installation
?
# 使用 set 指令设置root密码:
MariaDB [(none)]> SET password for ‘root‘@‘localhost‘=password(‘newpassword‘);
MariaDB [(none)]> exit;
修改/etc/my.cnf配置文件,添加以下配置
修改/etc/my.cnf.d中server和client的配置
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
log-error=/var/log/mysqld.log
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
systemctl restart mariadb
mysql -uroot -p
# 如果使用的是其他用户连接后端django程序, 则需要重新创建用户并授权
?
# 1. 创建用户
create user ‘tiger‘@‘%‘ identified by ‘123456‘; # %代表所有主机
# 2. 授权用户
grant all privileges on *.* to tiger@‘%‘ identified by ‘123456‘;
# 3. 刷新授权表
flush privileges
mysqldump -u root -p --all-databases > /opt/book_manage.sql
source /opt/book_manage.sql
注意1,linux的数据库,需要对root用户设置远程链接的权限, 密码是redhat
注意,SELinux和linux的防火墙要给关闭,否则windows去链接linux的3306端口可能被拒绝!!!!!
注意,SELinux和linux的防火墙要给关闭,否则windows去链接linux的3306端口可能被拒绝!!!!!
注意,SELinux和linux的防火墙要给关闭,否则windows去链接linux的3306端口可能被拒绝!!!!!
wget http://download.redis.io/releases/redis-5.0.2.tar.gz
tar -zxvf redis-5.0.2.tar.gz
cd redis-5.0.2
make && make install
mkdir -p /opt/redis_conf
touch /opt/redis_conf/redis-6379.conf
vim /opt/redis_conf/redis-6379.conf
port 6379
daemonize yes
pidfile /data/6379/redis.pid
loglevel notice
logfile "/data/6379/redis.log"
dir /data/6379
protected-mode yes
mkdir -p /data/6379
redis-server /opt/redis_conf/redis-6379.conf
python manage.py runserver 0.0.0.0:8000
File "/opt/Envs/book_manage/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 36, in <module>
raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; you have %s.‘ % Database.__version__)
# 修改文件36行的if判断语句,直接注释即可
File "/opt/Envs/book_manage/lib/python3.6/site-packages/django/db/backends/mysql/operations.py", line 146, in last_executed_query
query = query.decode(errors=‘replace‘)
将文件中146行原decode改为encode即可
File "/root/Envs/book_manage/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 65, in check_sqlite_version
raise ImproperlyConfigured(‘SQLite 3.8.3 or later is required (found %s).‘ % Database.sqlite_version)
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
解决方法
注释掉报错文件中此函数的代码块, 并加上pass即可
ALLOW_HOSTS = ["*"]
CORS_ORIGIN_WHITELIST = (
‘http://10.0.0.5‘,
)
pip3 install uwsgi
参照博客https://www.cnblogs.com/tiger666/articles/10313069.html里面的安装uwsgi版块
创建一个测试文件testuwsgi.py, 运行简单的uWSGI站点
def application(env, start_response):
start_response(‘200 OK‘, [(‘Content-Type‘,‘text/html‘)])
return [b"Hello World"]
uwsgi --http :9000 --file testuwsgi.py
http://10.0.0.5:9000
在django项目根目录下(manage.py同级别目录)创建这个文件
[uwsgi]
#使用nginx连接时使用,Django程序所在服务器地址
# socket=0.0.0.0:9000
#直接做web服务器使用,Django程序所在服务器地址
http=0.0.0.0:9000
#项目目录
chdir=/opt/book_manage
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=LIB/wsgi.py
# 进程数
processes=1
# 线程数
threads=2
# uwsgi服务器的角色
master=True
# 存放进程编号的文件
pidfile=uwsgi.pid
# 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的
# 如果启用了supervisor工具,就将此行注释
daemonize=uwsgi.log
# 指定依赖的虚拟环境
virtualenv=/root/Envs/book_manage_env
uwsgi --ini /opt/book_manage/uwsgi.ini
修改项目里面的wsgi.py文件,将settings的配置指向dev.py
vim /opt/book_manage/book_manage/wsgi.py
修改配置文件
os.environ.setdefault(‘DJANGO_SETTINGS_MODULE‘, ‘book_manage.settings‘)
uwsgi本身是支持高并发,多进程的功能,这是它的优点
缺点: 不能处理静态文件
STATIC_ROOT=‘/opt/book_manage/static‘ # 在STATIC_URL = ‘/static/‘配置上面加这一行
STATIC_URL = ‘/static/‘
STATICFILES_DIRS=[
os.path.join(BASE_DIR,"static"),
]
那么,上述的参数STATIC_ROOT用在哪?看下面
python3 manage.py collectstatic
?
# STATIC_ROOT 文件夹 是用来将所有STATICFILES_DIRS中所有文件夹中的文件,以及各app中static中的文件都复制过来
# 把这些文件放到一起是为了用nginx等部署的时候更方便
ls /opt/book_manage/static
server {
listen 80;
server_name 10.0.0.5;
#charset koi8-r;
#access_log logs/host.access.log main;
?
location / {
include uwsgi_params;
uwsgi_pass 0.0.0.0:9000;
}
location /static {
root /opt/book_manage;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
虚拟主机: 用于接受用户发起的80端口的请求,反向代理转发给9000的uwsgi应用, 同时处理后端的静态文件static
[uwsgi]
#使用nginx连接时使用,Django程序所在服务器地址
socket=0.0.0.0:9000
#直接做web服务器使用,Django程序所在服务器地址
# http=0.0.0.0:9000
#项目目录
chdir=/opt/book_manage
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=book_manage/wsgi.py
# 进程数
processes=2
# 线程数
threads=2
# uwsgi服务器的角色
master=True
# 存放进程编号的文件
pidfile=uwsgi.pid
# 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的
# 如果启用了supervisor工具,就将此行注释
daemonize=uwsgi.log
# 指定依赖的虚拟环境
virtualenv=/root/Envs/book_manage
/root/Envs/book_manage/bin/uwsgi /opt/book_manage/uwsgi.ini
/opt/nginx116/sbin/nginx -s reload
1 先关闭nginx, 再关闭uwsgi,直接使用python manage.py runserver命令启动django项目
2 关闭刚才启动的django,使用uwsgi将项目跑起来, 使用9000端口访问,确认是否正常
3 注释掉uwsgi配置文件中的http,启用socket,再启动uwsgi,再启动nginx,再进行访问
http://10.0.3.156
supervisor 是基于 python 的任务管理工具,用来自动运行各种后台任务,当然你也能直接利用 nohup 命令使任务自动后台运行,但如果要重启任务,每次都自己手动 kill 掉任务进程,这样很繁琐,而且一旦程序错误导致进程退出的话,系统也无法自动重载任务。
由于supervisor在python3下无法使用,因此只能用python2去下载!!!!!!
由于supervisor在python3下无法使用,因此只能用python2去下载!!!!!!
由于supervisor在python3下无法使用,因此只能用python2去下载!!!!!!
easy_install supervisor # 这个是python2下面的安装模块命令,等同于python3下面的pip
?
如果easy_install命令无法使用的话,就安装一下python-setuptools工具即可
yum install python-setuptools
echo_supervisord_conf > /etc/supervisord.conf
在文件末尾添加如下配置:
[program:book_manage]
command=/root/Envs/book_manage/bin/uwsgi /opt/book_manage/uwsgi.ini
stopasgroup=true
killasgroup=true
# 如果发现关闭supervisor进程后,结束uwsgi进程无效,就需要加上这两个参数
supervisord -c /etc/supervisord.conf
supervisorctl
supervisor交互模式中基本操作命令
start 进程名 # 启动进程
stop 进程名 # 停止进程
start all # 启动所有进程
stop all # 启动所有进程
# 任务管理命令如下:有两种,一个是参数形式, 一个是交互式
# 参数形式
supervisord -c /etc/supervisor.conf stop/start/restart all
supervisord -c /etc/supervisor.conf start qishi8
?
# 交互式形式
supervisord -c /etc/supervisor.conf
一、添加好配置文件后
?
二、更新新的配置到supervisord
?
supervisorctl update
三、重新启动配置中的所有程序
?
supervisorctl reload
四、启动某个进程(program_name=你配置中写的程序名称)
?
supervisorctl start program_name
五、查看正在守候的进程
?
supervisorctl
六、停止某一进程 (program_name=你配置中写的程序名称)
?
supervisorctl stop program_name
七、重启某一进程 (program_name=你配置中写的程序名称)
?
supervisorctl restart program_name
八、停止全部进程
?
supervisorctl stop all
注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。
部署图书管理系统,安装配置redis数据库,uWSGI命令学习与使用,supervisor工具的安装与使用
标签:flush man 命令参数 数据库 管理系 l命令 静态 name profile
原文地址:https://www.cnblogs.com/youhongliang/p/12130797.html