首先,服务器要安装nginx和mysql,网站文件建议放在/usr/local/www,环境python3.6+mysql5.7,阿里云的服务器可以用公共镜像有一个配置好的,不然就自己装一下环境吧。
本项目文件名称wuliu
1.nginx配置
安装nginx
请一行一行敲Linux命令,莫要心急,心急吃不着豆腐
# gcc 安装 yum install gcc-c++ # PCRE pcre-devel 安装 yum install -y pcre pcre-devel # zlib 安装 yum install -y zlib zlib-devel # OpenSSL 安装 yum install -y openssl openssl-devel #进入指定目录,一般为/usr/local下即可 cd /usr/local #下载nginx包,如果没有wget命令,就yum install wget安装即可 wget -c https://nginx.org/download/nginx-1.10.1.tar.gz # 解压 tar -zxvf nginx-1.10.1.tar.gz # 配置 cd nginx-1.10.1 ./configure # 编译 make make install # 启动,停止nginx cd /usr/local/nginx/sbin/ # 执行文件在此处
# 下面注意看注释!!!看注释!!不是让你把每一条都执行。。。别傻乎乎的连续敲,一会启动一会停止的,启动了就好了
./nginx # 启动 ./nginx -s stop # 停止 ./nginx -s reload # 重启
./nginx -t # 更改配置文件之后,此命令检测配置文件是否有问题,然后再去执行重启命令
# 查询nginx进程,确认启动状态 ps aux|grep nginx
注意配置文件位置,首先找到此文件
请看文件路径
修改配置文件
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; # 监听端口,注意浏览器用的是80端口,你可以选择8000也行,你随意 server_name yun-guo.top; # 你的域名 charset utf-8; client_max_body_size 75M; location /static { # django的项目静态文件,静态资源交给nginx来管理,如果网页样式、图片问题,基本就是此处配置问题 alias /usr/local/www/book/bookmanage/booksys/static; } location / { # uwsgi部署django项目的端口,自选,要和接下来的uwsgi服务启动的端口一致 uwsgi_pass 127.0.0.1:8001; include /usr/local/nginx/conf/uwsgi_params; # 找一找你的nginx下的uwsgi_param文件,我的是在conf这个文件夹下 } } }
然后cd /usr/local/nginx/sbin下,执行./nginx -t,检测配置文件是否有错误,没有的话执行./nginx -s reload重启nginx,前提你之前启动过,不然就./nginx即可
2.项目文件
这是我的项目路径
3.uwsgi配置
首先pip install uwsgi
安装uwsgi
uwsgi可以用命令行带参数执行,本次用配置文件执行,uwsgi.ini,文件放置在项目中即可,与manage.py的文件内。
uwsgi.ini的内容
[uwsgi] chdir = /usr/local/www/wuliu # 项目路径,根目录 module = wuliu.wsgi:application # 改一下项目名即可 master = True processes = 4 harakiri = 60 max=requests = 5000 socket = 127.0.0.1:8001 # 设置运行的端口,不要有冲突即可 uid =1000 gid = 2000 pidfile = /usr/local/www/uwsgi.pid vacuum = True
到项目目录下,执性uwsgi --ini uwsgi.ini,然后直接关掉窗口即可
如果用python虚拟环境,请添加
home = /usr/local/www/book/venv
指定虚拟环境文件
4.注意事项
mysql用pycharm连接问题
可能被拒绝远程,进行如下操作
如果想root用户使用password从任何主机连接到mysql服务器的话。
先进入mysql命令行,然后执行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
注意这个password是你另设置的远程连接密码,与你服务器mysql密码不是一个。这样就能用pycharm直接操作服务器的mysql了
django项目依赖问题
自己改一下服务器端的django版本等,执行makemigrations和migrate出现的问题,自行看报错,一般为依赖库问题
django项目更新代码处理
先FTP上传代码,覆盖原代码,然后查看你的uwsgi进程,
px aux|grep uwsgi # 查看进程号 # 暴力结束 kill -9 进程号 # 干掉即可
然后找到之前的uwsgi配置文件,uwsgi.ini,再次启动即可
uwsgi --ini uwsgi.ini # 无需过问nginx服务