ubuntu裸机启动python博客项目
关注公众号“轻松学编程”了解更多。
在linux的ubuntu(18.04)中正确安装python的命令:
sudo apt clean
sudo apt update
sudo apt upgrade
sudo apt install python3
sudo apt install python3-venv
sudo apt install python3-dev
sudo apt install python3-pip
sudo pip3 install --upgrade pip
sudo apt install nginx
sudo apt autoremove
sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev
sudo apt install redis-server
允许外部访问Mysql
1、登录云服务器的控制台,然后配置安全组,开通3306端口允许外部访问
2、在服务器上找到/etc/mysql/mysql.conf.d中的mysqld.cnf文件,
把bind-address = 127.0.0.1改成
bind-address = 0.0.0.0
3、找到/etc/mysql中的debian.cnf查看里面的登录用户与密码,比如我的是
user = debian-sys-maint
password = eSHSYdfO3fdBvqqG
然后执行命令:
mysql -u debian-sys-maint -peSHSYdfO3fdBvqqG
回车,进入mysql命令行后,继续输入:
use mysql;
update mysql.user set authentication_string=password('你的密码') where user='root' and Host ='localhost';
update user set plugin="mysql_native_password";
flush privileges;
create database my_web charset=utf8;
exit;
4、然后重启mysql
sudo /etc/init.d/mysql restart
查看3306端口是否允许外部访问:
netstat -lnp|grep 3306
如果显示的是0.0.0.0开通的端口则说明允许外部访问
在上面的语句中创建了一个与项目相关的数据库my_web,这个改为你实际的
虚拟环境
在/home下创建一个my_web文件夹,把自己的项目导进来
在/home下创建一个文件夹venv,然后进去使用命令python3 -m venv my_web
创建一个虚拟环境
使激活虚拟环境:source /home/venv/my_web/bin/activate
导包:pip3 install -r /home/my_web/requirements.txt -i http://mirrors.aliyun.com/pypi/simple/
几个国内常用的镜像
清华:-i https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:-i http://mirrors.aliyun.com/pypi/simple/
中国科技大学 -i https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:-i http://pypi.hustunique.com/
山东理工大学:-i http://pypi.sdutlinux.org/
豆瓣:-i http://pypi.douban.com/simple/
导uwsgi:pip3 install uwsgi
数据迁移与创建后台管理员
python manage.py makemigrations
python manage.py migrate
python manage.py createcachetable
python manage.py createsuperuser
uwsgi配置:
[uwsgi]
# 使用nginx连接时 使用8000端口
socket=0.0.0.0:8000
# 直接作为web服务器使用
#http=127.0.0.1:8010
# 配置工程目录
chdir=/home/my_web
# 配置项目的wsgi目录。相对于工程目录
wsgi-file=MySites/wsgi.py
virtualenv =/home/venv/my_web
#配置进程,线程信息
processes=2
threads=4
enable-threads=True
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
启动uwsgi服务:uwsgi --ini uwsgi.ini
nginx配置:
在/etc/nginx/sites-available创建一个文件my_web,内容如下:
#设定虚拟主机配置
server {
#侦听80端口
listen 80;
#listen 443 ssl;
#定义使用 www.nginx.cn访问
#ssl on;
server_name xxx.xxx.com;
#定义服务器的默认网站根目录位置
root /home/my_web;
#ssl_session_timeout 5m;
#ssl_certificate /etc/nginx/cert/xxx.pem;
#ssl_certificate_key /etc/nginx/cert/xxx.key;
#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_prefer_server_ciphers on;
#设定本虚拟主机的访问日志
#access_log logs/nginx.access.log main;
#默认请求
location / {
#倒入了uwsgi的配置
include uwsgi_params;
client_max_body_size 50m;
#连接uwsgi的超时时间
# uwsgi_connect_timeout 30;
#设定了uwsig服务器位置
uwsgi_pass 127.0.0.1:8000;
}
location /static{
alias /home/my_web/static;
}
location /media {
alias /home/my_web/media;
}
}
其中xxx.xxx.com表示域名.如果没有https,就使用#把ssl注释掉就可以了。
然后把test映射到/etc/nginx/sites-enabled
命令
ln -s /etc/nginx/sites-available/my_web /etc/nginx/sites-enabled/my_web
即可
注意:
uwsgi中配置listen=1024时,启动uwsgi时可能会报错:
django + uwsgi + nginx 日志Listen queue size is greater than the system max net.core.somaxconn (128).
解决方法:
修改系统参数
/proc/sys/net/ipv4/tcp_max_syn_backlog 原来2048 改为8192
/proc/sys/net/core/somaxconn 原来128 改为262144
重启nginx
nginx -s reload
注:启动nginx的命令为
nginx -c /etc/nginx/nginx.conf
如果获取不到静态资源,可能与项目目录权限有关:
chmod 777 my_web/
ubuntu18.04开机自启动脚本
步骤
1.编写脚本。
vi start.sh
比如添加以下内容:
source /home/venv/my_web/bin/activate
uwsgi --ini /home/my_web/uwsgi.ini
nginx -s reload
2.给脚本赋权限。
chmod 777 start.sh
3.进入到/etc/init.d/目录下。
cd /etc/init.d
4.将脚本迁移过来。(必须在该目录下的脚本才能执行)
mv 创建脚本路径/start.sh .
5.通过命令行增加。
# 100表示优先级,数越大执行的越靠后。
update-rc.d start.sh defaults 100
6.去除开机启动脚本
update-rc.d start.sh -f start.sh remove
后记
【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。
也可加我微信【1257309054】,拉你进群,大家一起交流学习。
如果文章对您有帮助,请我喝杯咖啡吧!
公众号
关注我,我们一起成长~~
ubuntu裸机启动python博客项目的更多相关文章
- Python Web开发:Django+BootStrap实现简单的博客项目
创建blog的项目结构 关于如何创建一个Django项目,请查看[Python Web开发:使用Django框架创建HolleWorld项目] 创建blog的数据模型 创建一个文章类 所有开发都是数据 ...
- django博客项目1.环境搭建
安装 Python Windows 下安装 Python 非常简单,去 Python 官方网站找到 Python 3 的下载地址,根据你的系统选择 32 位或者 64 位的安装包,下载好后双击安装即可 ...
- 分享Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站
这是个什么的项目? 使用 Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站. 博客线上地址:www.boblog.com Github地址:https: ...
- k8s版jenkins--master/slave模式实现CI/CD---带solo开源博客项目--带maven、djk、git工具
k8s环境: 192.168.0.91 master 192.168.0.92 node 192.168.0.96 gitlab 192.168.0.98 harbor k8s集群安装请参照:http ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目
首先,默认咱们已经有了.net core 3.1的开发环境,如果你没有,快去下载... https://dotnet.microsoft.com/download 由于项目是基于abp vNext开发 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来
上一篇文章(https://www.cnblogs.com/meowv/p/12896177.html)已经成功创建了博客项目,但是abp默认给我们引用了许多项目中用不到的组件. 本篇文章将给项目进行 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 完善与美化,Swagger登场
上一篇文章(https://www.cnblogs.com/meowv/p/12896898.html)已经成功将博客项目跑起来了,那么本篇主要是将之前遗留的问题解决,现在的代码看起来可能还是比较混乱 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(三)
上一篇(https://www.cnblogs.com/meowv/p/12974439.html)完成了全网各大平台的热点新闻数据的抓取,本篇继续围绕抓取完成后的操作做一个提醒.当每次抓取完数据后, ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(一)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
随机推荐
- IDEA文本编辑区的护眼绿豆沙色配置
第一步:打开IDEA -> File -> settings -> Editor -> Color Scheme -> General 第二步:找到右方Text -> ...
- 094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 04 static关键字(续)
094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- Java (三)APACHE Commons IO 常规操作
上一篇:Java (二)基于Eclipse配置Commons IO的环境 例1:查看文件.文件夹的长度(大小). 1 import java.io.File; 2 3 import org.apach ...
- 电机AB相编码器测速
控制任务 检测编码器的脉冲并测速 电路设计 图1 直流电机带减速器和编码器 图2 编码器接线定义 编码器接线定义如下 M1:电机电源接口,绿色的 GND:编码器电源负极输入口,橙色的 C1:编码器A ...
- [POI2010]PIL-Pilots 单调队列
[POI2010]PIL-Pilots 题意: 给定一个序列和一个数值k,求一段连续最大区间是的最大值与最小值之差小于k: 思路: 因为要维护最大值和最小值并且连续,使用两个单调队列分别同时维护最大最 ...
- 每日一题 LeetCode 486. 预测赢家 【递推】【前缀和】【动态规划】
题目链接 https://leetcode-cn.com/problems/predict-the-winner/ 题目说明 题解 主要方法:递推:动态规划:前缀和 解释说明: 求前缀和 pre_nu ...
- 35岁老半路程序员的Python从0开始之路
9年的ERP程式开发与维护,继而转向一年的售前,再到三年半的跨行业务,近4的兜兜转转又转回来做程式了,不过与之前不同的,是这次是新的程序语言Python, 同时此次是为了教学生而学习! 从今天开始,正 ...
- DM9000裸机驱动程序设计
对于任何一个硬件模块的设计,首先第一步都是要先了解硬件本身后,再开始程序的软件设计.而由于DM9000的芯片文档内容很多,要驱动好网卡,需要很长时间,特别对于新手比较困难,所以可以参考linux内核代 ...
- gorm学习地址
1 gorm curd指南 2 gorm入门指南
- 使用composer 显示错误美化
新建comoser.json { "name": "brady_frmwork", "description":"php fram ...