Python网站部署阿里云Centos

涉及语言及框架

前端语言 :HTML,CSS,Javascript
前端框架:bootstrap
后端语言:Python
后端框架:Django
数据库:MySQL
集成开发环境:PyCharm
服务器:uwsgi+nginx
操作系统:Centos
django项目在阿里云的部署流程:
1.在阿里云租用服务器ECS,操作系统选centOS,创建实例;
2.远程连接密码,以及实例密码,默认实例用户名为root;
3.安全组配置
4.下载xftp,连接远程服务器,将文件传到服务器上;
5.环境配置:

1)查看当前python版本:python -V
python 2.7.5 (不要删除,因为很多命令都依赖于它,比如yum;如果删除了,一些命令就用不了了)
2)下载新的python包并安装,进入官网,选择版本
yum install gcc gcc-c++ -y 下载编译器
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz 下载python包
tar xvf Python-3.7.3.tar.xz 解压压缩包
cd Python-3.7.3/ 跳转目录
./configure
make
make install
3)验证:
python -V
Python 2.7.5
python3 -V
Python 3.7.3
4)设置3.X为默认版本
查看python的路径,在/usr/bin下面
ll python*
更改软连接:
mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python3 /usr/bin/python
6.配置yum(由于上一步将python指向python3,导致yum不能正常使用,yum需要python2支持)
vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down
修改#!/usr/bin/python改为#!/usr/bin/python2.7,:wq保存并退出
7.现在可以继续使用yum安装包了,安装pip3
yum install python3-pip
8.现在python3与pip3都以安装成功
python-V
pip3 -V
9.安装虚拟环境
pip install virtualenv
pip install virtualenvwrapper 安装虚拟环境管理工具
在HOME下创建虚拟环境的安装目录:
mkdir .virtualenvs 所有虚拟环境都在此目录下
进入.bashrc
vi ~/.bashrc
末尾加上:export WORKON_HOME=$HOME/.virtualenvs export是把变量变成全局变量
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh 可用which virtualenvwrapper.sh看一下它的位置
使配置文件生效
source ~/.bashrc 如果之前已经创建了虚拟环境的目录,会一直以旧的作为目录,新的不会生效,ctrl+d重启一下终端可解决
创建虚拟环境,默认命令创建的是python2的虚拟环境,指定python3
mkvirtualenv -p /usr/bin/python3 myDemoenv
此时在.virtualenvs目录下会生成一个python3的虚拟环境myDemoenv
10.进入myDemoenv虚拟环境,workon myDemoenv;(若退出使用deactivate)
workon myDemoenv
在myDemoenv虚拟环境中配置各种安装包:
pip install 安装包==版本
11.安装mysql数据库
下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安装mysql源:
yum localinstall mysql57-community-release-el7-8.noarch.rpm
yum install mysql-devel
安装mysql
yum install mysql-community-server
启动mysql
systemctl start mysqld 如果关闭使用systemctl start mysqld
查看mysql的启动状态
systemctl status mysqld
开机启动
systemctl enable mysqld
修改root本地登录密码
grep ‘temporary password’ /var/log/mysqld.log 查询密码
mysql -uroot -p 用上面的密码登录
set password for ‘root’@‘localhost’=password(‘Wwl@123456’)
修改配置文件(修改/etc/my.cnf)—主要防止后期mysql数据库中不能存储汉字中文;
vi /etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
[mysql]
default-character-set=utf8
做完以上更改后,重启mysql,进入mysql查看数据库和数据表是否是utf8编码
可用命令:show variables like ‘character%’;检查各编码规则
±-------------------------±---------------------------+
| Variable_name | Value |
±-------------------------±---------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
±-------------------------±---------------------------+
确保client,connection,database,server是utf8编码规则;
如果不是,可使用:set character_set_client=utf8;改变编码规则
12.创建数据库
mysql -u root -p
输入密码,进入mysql
create database apeal;
13.配置settings.py
DEBUG = False
ALLOW_HOST=‘8.133.176.75’ 使用公网IP
连接数据库:(pymysql)
ENGINE >>> mysql
NAME >>> apeal
USER >>> root
PASSWORD >>> Wwl@123456
HOST >>> localhost 这里只有用localhost才能连接数据库,ip地址不行
PORT >>> 3306 在阿里云安全组里配置3306端口
14.将localhost换成IP地址
mysql -uroot -p 登录mysql
输入密码:Wwl@123456
grant all privileges on . to ‘root’@‘%’ identified by ‘Wwl@123456’; 为所有ip赋予权限
flush privileges; 刷新权限;
重新登录mysql
mysql -h 172.27.9.231 -uroot -p
输入密码:Wwl@123456
重新给localhost赋予权限
grant all privileges on . to ‘root’@‘localhost’ identified by ‘Wwl@123456’;
flush privileges;
15.将settings.py中连接mysql的HOST换成IP
HOST = 172.27.9.231
至此mysql安装及配置全部完成
16.迁移文件
进入虚拟环境:workon myDemoenv
进入项目目录:cd myDemo
执行文件迁移:python manage.py makemigrations
同步到数据库:python manage.py migrate
17.可以进入数据库查看一下表是不是被创建了,同时检查数据库以及表的编码规则,如果不是utf8,则不能存储汉字,需回至11处检查mysql配置
mysql -u root -p
输入密码:Wwl@123456
show databases; 展示所有的数据库
show create database 数据库名; 检查数据库编码;
use apeal; 使用哪个数据库
show tables; 展示这个数据库中的所有表
show create table 数据表名; 检查数据表编码;
如果表都存在,且编码为utf8规则,则可进行下一步
18.运行项目
python manage.py runserver 0.0.0.0:80 这样才能用IP访问到项目
19.下载nginx
yum update
yum install nginx
20.访问阿里云外网IP,看是否出现画面
如果没有:
/usr/sbin/nginx -c /etc/nginx/nginx.conf 指定nginx配置文件
/usr/sbin/nginx -s reload 重启nginx
21.配置nginx(如果之后重启报错,可以看下pig文件)
cd /etc/nginx/nginx.conf
进行如下设置:
server_name 8.133.176.75
localtion /{
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
}
location /static {
alias /root/myDemo/static;(另一种制定静态资源的方法:root /root/myDemo;制定/static的根目录)
}
如果加载不出静态资源,将user=nginx改成root
22.编译方式安装uWSGI(不推荐pip方式)
cd ~ 切换到根目录下
mkdir uwsgi 新建uwsgi文件夹(在此文件夹下进行uwsgi的安装及配置)
cd uwsgi 切换到uwsgi目录
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz 下载压缩包
tar zxvf uwsgi-latest.tar.gz 解压压缩包
cd uwsgi-2.0.19.1 切换目录
python3 uwsgiconfig.py --build 用python3编译
python3 setup.py install 安装
ls 会发现有一个绿色的可执行文件uwsgi
ln -s /root/uwsgi/uwsgi-2.0.19.1/uwsgi /usr/bin/uwsgi 创建软连接
在uwsgi文件夹下,新建uwsgi的配置文件uwsgi.ini
[uwsgi]
chdir = /root/myDemo/
module = myDemo.wsgi:application
socket = 172.27.9.231:8000
master = true
daemonize = /root/uwsgi/uwsgi.log
disable-logging = true
wsgi-file = /root/myDemo/myDemo/uwsgi.py
pidfile = /root/uwsgi/uwsgi.pid
processes = 10
threads =2
vacuum = true
vhost = false
no-site = false
virtualenv = /root/.virtualenvs/myDemoenv
harakiri = 30
新建uwsgi的配置文件uwsgi_params
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMNET_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $scheme;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
23.nginx和uwsgi常用命令:
nginx:
启动:nginx
停止:nginx -s stop
重启:nginx -s reload
uwsgi:
启动:uwsgi --ini uwsgi.ini
停止:uwsgi --stop uwsgi.pid
重启:uwsgi --reload uwsgi.pid
杀死进程:
kill -9 进程
fuser -k 80/tcp 杀死端口
netstat -lpnt 端口占用情况
ps aux |grep nginx 查看进程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林沐栖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值