首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux服务器Python生产环境配置

Linux服务器Python生产环境配置

作者头像
星哥玩云
发布于 2022-07-04 02:25:51
发布于 2022-07-04 02:25:51
1.5K00
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

经常我们做Linux运维配置的时候会重复查找一些教程,所以打算从运维层面开始做一些知识积累。先做一些简单的整理,后期再根据需求持续更新。

本文记录Debian Linux服务器Python生产环境的配置流程和注意事项。

初始化操作系统:Debian Linux

1. 修改root用户密码

对一台刚安装好的Debian系统,首先应该去修改它的root用户密码。使用root用户登录远程主机。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh root@xxx.xxx.xxx.xxx

这时,命令行会出现警告,表示这是一个新的地址,存在安全风险。键入yes,表示接受。然后,就应该可以顺利登入远程主机。

接着,修改root用户的密码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
passwd
2. 新建用户

首先,添加一个用户组(这里假定为admin用户组)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
addgroup admin

然后,添加一个新用户(假定为foo)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
useradd -d /home/foo -s /bin/bash -m foo 

上面命令中,参数d指定用户的主目录,参数s指定用户的shell,参数m表示如果该目录不存在,则创建该目录。

接着,设置新用户的密码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
passwd foo 

将新用户(foo)添加到用户组(admin)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
usermod -a -G admin foo 

Debian系统默认没有sudo,所以需要先安装sudo才行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apt-get install sudo

接着,为新用户设定sudo权限。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
visudo 

visudo命令会打开sudo设置文件/etc/sudoers,找到下面这一行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root    ALL=(ALL:ALL) ALL

在这一行的下面,再添加一行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root    ALL=(ALL:ALL) ALL
foo    ALL=(ALL) NOPASSWD: ALL

上面的NOPASSWD表示,切换sudo的时候,不需要输入密码,我喜欢这样比较省事。如果出于安全考虑,也可以强制要求输入密码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root    ALL=(ALL:ALL) ALL
foo    ALL=(ALL:ALL) ALL

然后,先退出root用户的登录,再用新用户的身份登录,检查到这一步为止,是否一切正常。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
exit
ssh foo@xxx.xxx.xxx.xxx
3.SSH设置

首先,确定本机有SSH公钥(一般是文件~/.ssh/id_rsa.pub),如果没有的话,使用ssh-keygen命令生成一个(可参考我写的SSH教程)。

在本机上另开一个shell窗口,将本机的公钥拷贝到服务器的authorized_keys文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat ~/.ssh/id_rsa.pub | ssh foo@xxx.xxx.xxx.xxx 'mkdir -p .ssh && cat - >> ~/.ssh/authorized_keys'

# 或者在服务器端,运行下面命令

echo "ssh-rsa [your public key]" > ~/.ssh/authorized_keys

然后,进入服务器,编辑SSH配置文件/etc/ssh/sshd_config

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cp /etc/ssh/sshd_config ~
sudo nano /etc/ssh/sshd_config

在配置文件中,将SSH的默认端口22改掉,可以改成从1025到65536之间的任意一个整数(这里假定为25000)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Port 25000

然后,检查几个设置是否设成下面这样,确保去除前面的#号。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Protocol 2

PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication no

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

UseDNS no

上面主要是禁止root用户登录,以及禁止用密码方式登录。 接着,在配置文件的末尾,指定允许登陆的用户。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
AllowUsers bill

保存后,退出文件编辑。 接着,改变authorized_keys文件的权限。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/

然后,重启SSHD。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo service ssh restart

# 或者

sudo /etc/init.d/ssh restart

下面的一步是可选的。在本机~/.ssh文件夹下创建config文件,内容如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Host s1
HostName xxx.xxx.xxx.xxx
User foo
Port 25000

最后,在本机另开一个shell窗口,测试SSH能否顺利登录。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh s1
4. 运行环境配置

首先,检查服务器的区域设置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
locale

如果结果不是en_US.UTF-8,建议都设成它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo locale-gen en_US en_US.UTF-8 en_CA.UTF-8
sudo dpkg-reconfigure locales

然后,更新软件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get update
sudo apt-get upgrade

最后,再根据需要,做一些安全设置,比如搭建防火墙,关闭HTTP、HTTPs、SSH以外的端口,再比如安装Fail2Ban,详细可参考这篇《Securing a Linux Server》。

安装常用软件

安装常用包
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install curl git
安装VIM
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install vim

#下载配置
curl https://gist.githubusercontent.com/fengluo/3749890/raw >> ~/.vimrc

我们使用Vundle来管理安装VIM插件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

安装好了之后可以打开vim运行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
:PluginInstall

也可以直接从命令行安装配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim +PluginInstall +qall
部署Python环境
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install python-pip python-dev build-essential

# 更新pip
sudo pip install --upgrade pip
安装virtualenv

virtualenv可以帮助我们创建一个隔离的python环境。各个python应用之间应该使用独立的python环境,保证不会互相干扰。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo pip install virtualenv
安装supervisor

Supervisor是个强大的进程管理工具,帮助用户监控和控制系统进程。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install supervisor

# 如果不会写配置,可以用下面的命令来生成一个配置
echo_supervisord_conf > /etc/supervisord.conf
安装MySQL
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install mysql-server

sudo apt-get install libmysqlclient-dev
安装Nginx
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install nginx
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
【STM32H7教程】第74章 STM32H7的SPI总线应用之驱动DAC8563(双通道,16bit分辨率,正负10V)
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第74章       STM32H7的SPI总线应用之驱动DAC856
Simon223
2020/04/10
2K0
【STM32H7教程】第74章  STM32H7的SPI总线应用之驱动DAC8563(双通道,16bit分辨率,正负10V)
【STM32F407开发板用户手册】第34章 STM32F407的SPI总线应用之驱动DAC8501
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第34章       STM32F407的SPI总线应用之驱动DAC850
Simon223
2020/08/02
9100
mipiLCD屏幕参数_mipi接口液晶屏
主屏通过lt8911exb 将mipi信号转换成EDP信号输出,调试从大的方向上看,主要是两方面,一个是bootloader阶段的lt8911exb初始化,为了让现实过程更完整,需要在lk的display init之前就要将lt8911exb准备好.当lt8911exb准备好后,就可以当lt8911exb不存在,以平时的方式去调试一个屏幕。本次调试lt8911exb 的I2C接到SDM450的I2C3接口上,以下是调试步骤概要
全栈程序员站长
2022/11/19
1.6K0
mipiLCD屏幕参数_mipi接口液晶屏
【STM32H7教程】第45章 STM32H7的ADC应用之定时器触发配合DMA双缓冲
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第45章       STM32H7的ADC应用之定时器触发配合DMA
Simon223
2020/02/13
2K0
【STM32H7】第6章 RL-TCPnet V7.X底层驱动说明
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=95243 第6章   RL-TCPnet底层驱动说明 本章节为大家讲解RL-TCPn
Simon223
2020/08/31
8370
【STM32H7教程】第46章 STM32H7的ADC应用之DMA方式多通道采样
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第46章       STM32H7的ADC应用之DMA方式多通道采样
Simon223
2020/02/14
3.6K0
【STM32H7】第7章 ThreadX GUIX移植到STM32H7(MDK AC5)
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429 第7章 ThreadX GUIX移植到STM32H7(MDK AC5)
Simon223
2020/12/01
7610
【STM32H7】第7章   ThreadX GUIX移植到STM32H7(MDK AC5)
【STM32H7教程】第66章 STM32H7的低功耗串口LPUART应用之串口FIFO和停机唤醒实现
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第66章       STM32H7的低功耗串口LPUART应用之串口
Simon223
2020/03/08
2.2K0
【STM32H7教程】第75章 STM32H7的SPI总线应用之驱动DAC8501(双路输出,16bit分辨率,0-5V)
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第75章       STM32H7的SPI总线应用之驱动DAC850
Simon223
2020/05/09
1.7K0
【STM32H7教程】第75章    STM32H7的SPI总线应用之驱动DAC8501(双路输出,16bit分辨率,0-5V)
单片机外围模块漫谈之五,USB开发,这个错误你犯了吗?
下面我们通过一个例子看一下USB的具体工作过程。在此我们用一个比较实用的例子,就是把我们的板子用USB连接至PC,然后在PC端出现一个模拟串口,通过串口助手打开这个串口,然后实现数据的双向传输。最后我们聊一下很多工程师都会忽视的USB认证问题。
用户2366192
2021/05/31
8180
【STM32H7教程】第16章 STM32H7必备的HAL库API(重要)
本章教程为大家讲解制作一个STM32H7的例子所需的最基本API函数,对于一些常用的API函数,一定要熟练掌握这些函数都是实现了什么功能,不常用的函数有个了解即可,用到的时候再去学。
Simon223
2019/05/15
2.5K0
【STM32H7教程】第16章       STM32H7必备的HAL库API(重要)
【STM32F429开发板用户手册】第16章 STM32F429必备的HAL库API(重要)
本章教程为大家讲解制作一个STM32F4的例子所需的最基本API函数,对于一些常用的API函数,一定要熟练掌握这些函数都是实现了什么功能,不常用的函数有个了解即可,用到的时候再去学。
Simon223
2020/07/14
9380
【STM32F429开发板用户手册】第16章       STM32F429必备的HAL库API(重要)
火爆全网开源额温枪同平台之华大HC32L136 SDK开发入门
到淘宝以及相关平台上不少商家为了蹭疫情额温枪的热度把额温枪开发方案的价格定得非常高,少则几千,多则上万,实在是让国人寒心!关键时刻,大家应该同心协力,即将没法向白衣天使一样上前线去抗疫,也应该以别的方式贡献自己的一份力量才对。本着支持国产支持开源项目的原则,而且我也是玩板爱好者,所以就毫不犹豫就入手了华大半导体推出的HDSC Demo板,当做支持一下,顺便了解下这个平台,也算是给自己积累多平台的开发经验!后面还会根据这个持续输出高质量的项目并且开源。上一篇我们也分享了近期华大开源的额温枪方案,链接:分享一个近期开源火爆全网的额温枪方案(硬件+源码),该额温枪方案的主控MCU就是基于华大半导体自主研发的芯片HC32L136。
杨源鑫
2020/05/21
2.9K1
Cubemx与HAL库系列教程|系统时钟配置详解及源码分析
STM32种类繁多,时钟系统也不尽相同,但基本的还是大差不差,今日小飞哥就F1系列的MCU简单聊一聊STM32的时钟系统
用户8913398
2022/03/04
2.9K0
Cubemx与HAL库系列教程|系统时钟配置详解及源码分析
【STM32】“stm32f10x.h” 头文件的作用
stm32f10x.h 是 STM32F10x 系列微控制器的标准外设库的一个头文件。它的作用包括:
LuckiBit
2024/12/11
6680
stm32cubemx软件库_STM32cube
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用
全栈程序员站长
2022/09/28
9300
stm32cubemx软件库_STM32cube
【STM32F429开发板用户手册】第38章 STM32F429的FMC总线应用之是32路高速IO扩展
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第38章       STM32F429的FMC总线应用之是32路高速IO
Simon223
2020/08/06
1K0
【STM32H7教程】第94章 STM32H7的SPI总线应用之双机通信(DMA方式)
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第94章       STM32H7的SPI总线应用之双机通信(DMA
Simon223
2022/05/10
2K0
【STM32H7教程】第94章    STM32H7的SPI总线应用之双机通信(DMA方式)
【STM32H7教程】第65章 STM32H7的低功耗串口LPUART基础知识和HAL库API
本章节为大家讲解LPUART(Low power universal asynchronous receiver transmitter,低功耗通用异步收发器)的基础知识和对应的HAL库API。相比第29章的通用串口,增加了低功耗特性。
Simon223
2020/03/06
2.1K0
【STM32F407开发板用户手册】第33章 STM32F407的SPI总线应用之驱动DAC8563
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第33章       STM32F407的SPI总线应用之驱动DAC856
Simon223
2020/08/02
1.3K0
推荐阅读
【STM32H7教程】第74章 STM32H7的SPI总线应用之驱动DAC8563(双通道,16bit分辨率,正负10V)
2K0
【STM32F407开发板用户手册】第34章 STM32F407的SPI总线应用之驱动DAC8501
9100
mipiLCD屏幕参数_mipi接口液晶屏
1.6K0
【STM32H7教程】第45章 STM32H7的ADC应用之定时器触发配合DMA双缓冲
2K0
【STM32H7】第6章 RL-TCPnet V7.X底层驱动说明
8370
【STM32H7教程】第46章 STM32H7的ADC应用之DMA方式多通道采样
3.6K0
【STM32H7】第7章 ThreadX GUIX移植到STM32H7(MDK AC5)
7610
【STM32H7教程】第66章 STM32H7的低功耗串口LPUART应用之串口FIFO和停机唤醒实现
2.2K0
【STM32H7教程】第75章 STM32H7的SPI总线应用之驱动DAC8501(双路输出,16bit分辨率,0-5V)
1.7K0
单片机外围模块漫谈之五,USB开发,这个错误你犯了吗?
8180
【STM32H7教程】第16章 STM32H7必备的HAL库API(重要)
2.5K0
【STM32F429开发板用户手册】第16章 STM32F429必备的HAL库API(重要)
9380
火爆全网开源额温枪同平台之华大HC32L136 SDK开发入门
2.9K1
Cubemx与HAL库系列教程|系统时钟配置详解及源码分析
2.9K0
【STM32】“stm32f10x.h” 头文件的作用
6680
stm32cubemx软件库_STM32cube
9300
【STM32F429开发板用户手册】第38章 STM32F429的FMC总线应用之是32路高速IO扩展
1K0
【STM32H7教程】第94章 STM32H7的SPI总线应用之双机通信(DMA方式)
2K0
【STM32H7教程】第65章 STM32H7的低功耗串口LPUART基础知识和HAL库API
2.1K0
【STM32F407开发板用户手册】第33章 STM32F407的SPI总线应用之驱动DAC8563
1.3K0
相关推荐
【STM32H7教程】第74章 STM32H7的SPI总线应用之驱动DAC8563(双通道,16bit分辨率,正负10V)
更多 >
LV.9
这个人很懒,什么都没有留下~
目录
  • 初始化操作系统:Debian Linux
    • 1. 修改root用户密码
    • 2. 新建用户
    • 3.SSH设置
    • 4. 运行环境配置
  • 安装常用软件
    • 安装常用包
    • 安装VIM
    • 部署Python环境
    • 安装virtualenv
    • 安装supervisor
    • 安装MySQL
    • 安装Nginx
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档