您现在的位置是:网站首页>>Python>>python
Python 上线全过程(Python网站部署)
发布时间:2018-11-15 14:38:13作者:wangjian浏览量:752点赞量:0
这里以Python的django框架为例(Python的其它框架或原生Python上线步骤大同小异)
一:Python环境安装
1:安装编译文件yum install gcc
yum -y install zlib*
yum install openssl-devel -y
yum install python-setuptools
yum install sqlite-devel
yum install mysql-devel
2:安装pythonwget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
tar -zxvf Python-3.6.4.tgz
cd Python-3.6.4
./configure --with-ssl
make && make install
3:pip升级pip3 install --upgrade pip
4:安装你需要安装的拓展插件
(1):新建一个requirements.txt文件,里面写上要安装的插件
这里我的requirements.txt内的内容为:
django #django 框架
uwsgi #用于Python域名访问
mysqlclient #django的mysql插件
pycryptodome #Crypto加密解密插件
(2):安装拓展插件pip3 install -r requirements.txt
二:安装nginx:
1:安装编译工具及库文件yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2:安装pcrewget https://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
tar zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure --prefix=/usr/local/pcre
make && make install
3:安装nginxwget https://nginx.org/download/nginx-1.5.6.tar.gz
tar -zxf nginx-1.5.6.tar.gz
cd nginx-1.5.6
./configure --prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_gzip_static_module
make && make install
4:启动nginx
/usr/local/nginx/sbin/nginx
三:安装mysql
1:安装编译工具及库文件yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-devel
2:安装cmake 编译器wget https://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz
tar zxvf cmake-3.1.1.tar.gz
cd cmake-3.1.1
./bootstrap
make && make install
3:安装mysql# 下载mysql的repo
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# 安装mysql源安装包
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
#安装mysql
yum -y install mysql-community-server
4:配置mysql
(1):启动mysql并设置开机自启动systemctl start mysqld
systemctl enable mysqld
(2):配置mysql远程连接和设置密码
查看临时密码grep 'temporary password' /var/log/mysqld.log
设置远程连接和设置密码$ mysql -u root -p
# 进入mysql命令行,修改密码
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'XXX';
Query OK, 0 rows affected (0.00 sec)
#设置远程登录
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'XXX' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql>FLUSH PRIVILEGES;#刷新配置
mysql>exit;
Bye
四:配置防火墙#启动Firewall
systemctl start firewalld
#设置开机自启动
systemctl enable firewalld.service
# 防火墙开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 防火墙开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 刷新防火墙配置
firewall-cmd --reload
# 查看端口禁用和开启情况
iptables -L -n
五:配置django项目在服务器上
1:django项目上线配置
将django项目上传到服务器上,然后修改django项目的配置文件settings.pyDEBUG=False (从Debug状态退出)ALLOWED_HOSTS = ["*"]
修改数据库配置DATABASES,修改为你安装的mysql的账号
2:使用mysql客户端登录mysql并创建一个数据库,数据库名为django的settings.py文件配置连接mysql的数据库名,你也可是在命令行进入mysql命令行使用create project(数据库名)
创建数据库
3:使用django命令生成数据库python3 manage.py makemigrations
python3 manage.py migrate
六:配置Nginx+uwsgi实现域名访问
1:创建uwsgi脚本
新建一个uwsgi脚本文件(这里我新建了一个目录用于存放uwsgi脚本文件)cd /dara/www
mkdir script
cd script
vim uwsgi.ini
uwsgi脚本文件内容为:
# uwsig使用配置文件启动
[uwsgi]
socket = 127.0.0.1:9090
# 启用主进程
master = true
#多站模式
vhost = true
#启动uwsgi的用户名和用户组
uid=root
gid=root
# 指定静态文件
static-map=/static=/data/www/myitem/static
#多站模式时不设置入口模块和文件
no-site = true
#子进程数
workers = 2
reload-mercy = 10
#退出、重启时清理文件
vacuum = true
max-requests = 1000
limit-as = 512
buffer-size = 30000
#pid文件,用于下面的脚本启动、停止该进程
pidfile = /data/www/script/uwsgi.pid
#日志文件
daemonize = /data/www/script/uwsgi.log
#Python环境地址
pythonpath = /usr/local/lib/python3.6/site-packages
2:配置nginx
在nginx的配置文件nginx.conf文件(/usr/local/nginx/conf/nginx.conf)尾端加上include vhost/*.conf;
在conf目录下创建一个vhost目录,新建一个你要用用的域名构成的conf文件vim /usr/local/nginx/conf/vhost/www.ceshi.com.conf
文件内容为:server {
listen 80;
server_name www.ceshi.com;
#静态文件配置
location /static {
alias /data/www/project/static;
}
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090;#必须和uwsgi中的设置一致
uwsgi_param UWSGI_SCRIPT project.wsgi;#入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录
uwsgi_param UWSGI_CHDIR /data/www/project;#项目根目录
index index.html index.htm;
client_max_body_size 35m;
}
}
3:启动uwsgi并重启nginxuwsgi --ini /data/www/script/uwsgi.ini #启动uwsgi脚本
/usr/local/nginx/sbin/nginx -s reopen #重启nginx
到此django项目上线完成
0
+1