华为HECS配置python开发环境

刚花了好几百大洋买了个阿里的云服务器,考虑不周,买的最低配的1G内存1GCPU,安装个框架死了几次,正发愁呢。收到华为618活动,96搞了个两核4G内存,赶快配起来。

一。先ssh登录,设置一下root在线时长,华为提供有一个自己的连接器,我一看ssh也能用,就懒得研究了,还是拿起ssh方便一些。

ssh root@IP

vim /etc/ssh/sshd_config

搜索:

找到ClientAliveInterval和ClientAliveCountMax,前面#去掉

把ClientAliveInterval值改为120

二。root用户安装软件会导致其他帐号不能使用,虽然也能修改,但毕竟降低了安全性,我觉得登录ssh后不要急着装软件,先添加sudo用户。

添加xxx用户,为r表示系统用户,m为用户创建家目录,s指定默认shell,并设置用户密码

sudo useradd -r -m -s /bin/bash xxx

sudo passwd xxx

把用户加入sudo用户组,a组列表的末尾添加新组,防止误操作,一般加入sudo组就好了

sudo usermod -a -G sudo xxx

其他用户操作可能用到的命令。

切换用户,在root和普通用户之间切换

sudo -i 或者sudo su

su 用户名

删除用户:sudo deluser username

查看当前登录的用户列表:whoami

查看用户组信息:sudo groups username

从用户组中删除用户:sudo deluser username groupname

一点技巧:

安装软件配置环境时使用了root安装,导致其他用户没办法使用

在/etc/profile.d/目录下创建一个新的文件,例如anaconda.sh,并编辑该文件。输入以下内容:

export PATH="/root/anaconda3/bin:$PATH"

使用以下命令更改Anaconda目录及其所有子目录的权限,将Anaconda目录权限更改为所有用户可读取和执行。

sudo chmod -R o+rx /root/anaconda3

重启电脑后,其他用户就能使用了,不重启全集行执行export PATH="/root/anaconda3/bin:$PATH"也可以

三 安装anaconda,这是一个python版本和环境管理工具,也可以安装一些软件。

1.首先配置anaconda,这使用我们更方便的切换不同版本的python和管理资源包

1.首先从清华源复制最新版本的anaconda路径,然后使用wget下载

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-1-Linux-x86_64.sh

2.然后安装 bash Anaconda3-2023.03-1-Linux-x86_64.sh

3. 给conda换成阿里源,vim ~/.condarc, 复制内容到文件

channels:
  - defaults
show_channel_urls: true
default_channels:
  - http://mirrors.aliyun.com/anaconda/pkgs/main
  - http://mirrors.aliyun.com/anaconda/pkgs/r
  - http://mirrors.aliyun.com/anaconda/pkgs/msys2
custom_channels:
  conda-forge: http://mirrors.aliyun.com/anaconda/cloud
  msys2: http://mirrors.aliyun.com/anaconda/cloud
  bioconda: http://mirrors.aliyun.com/anaconda/cloud
  menpo: http://mirrors.aliyun.com/anaconda/cloud
  pytorch: http://mirrors.aliyun.com/anaconda/cloud
  simpleitk: http://mirrors.aliyun.com/anaconda/cloud
如果下载更新时出错,可以在这里复制:

https://developer.aliyun.com/mirror/anaconda/?spm=a2c6h.25603864.0.0.499519e4RLqrR3

4. 清理一下缓存,conda clean -i

5.创建一个310的env环境

conda search python可以查看库上所有的python版本,下载安装最新3.11.3

conda create --name python311 python=3.11.3

6.创建成功后可以查看
conda env list

7.删除env,如果创建错了,可以删了

conda env remove -n python310

8.激活该环境

conda activate python310
conda deactivate

其他的一些命令

列出已经安装
conda list

删除一个环境
conda remove --name 环境名字

安装包,理论上和pip安装一样,pip安装不了的可以使用conda试试
conda install --upgrade --name 包名

删除包,注意和删除环境区分
conda uninstall 包名

查找包
conda search 包名

9.把pip也换为阿里的源,以提升下载软件包和库的速度

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

查看一下源是什么

pip config list

查看包

pip show packagename

更新库或者包

pip install --upgrade package_name

查看某个包的信息

pip show -f requests
查看需要被升级的包

pip list -o
指定国内源来安装,安装失败,可以指定国内源下载

pip install -i https://pypi.douban.com/simple/ package_name

下载包但不安装

pip download requests -d "."
也可以换成别的固定源,如果没有这个文件,新建一样有效, 华为的路径在这里vim ~/.config/pip/pip.conf,其他的vim ~/.pip/pip.conf

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com

10.为项目生成requirements.txt,方便配置

pip freeze > requirements.txt
pip install pipreqs

这个只生成用的框架
pipreqs ./ --encoding=utf8
pipreqs ./ --encoding=utf8 --use-local --force

11.也可以使用conda导出

批量导出环境中的包
conda list -e > requirements.txt
或者
conda env export > requirements.yaml

批量安装文件中的包
conda install --yes --file requirements.txt
或者
conda env create -f requirements.yaml
此致python环境配置完成,其他的根据需要安装。


四。在第五步中创建环境时已经安装了python 310的包。

五。安装mysql

sudo apt-get install mysql-server
sudo apt-get install libmysqlclient-dev
sudo apt-get install mysql-client

mysql只在服务器上使用,不远程操作

六。安装nginx
sudo apt-get install nginx

修改第一行user改为root

vim /etc/nginx/nginx.conf

七。 安装uwsgi,不知道为什么,使用flask总是给警告,提示换成uwsgi

uwsgi使用来运行django服务区项目的 web应用服务器.
sudo apt-get install uwsgi 
sudo apt-get install uwsgi-plugin-python
sudo apt-get install uwsgi-plugins-all

HECS装不上可以试试conda

conda install uwsgi


测试示例常用命令

使用ini文件启动
uwsgi --ini start.ini

使用ini后台启动

uwsgi -d --ini start.ini

后台启动关闭,找到进程id,kill杀死

ps -ef|grep uwsgi 

kill -9

uWSGI的启动参数有很多,常用的参数包括:

–http: 指定HTTP监听端口号和地址,例如--http :8080。

–https: 指定HTTPS监听端口号和地址,例如--https :8443,mycert.pem,mykey.pem。

–wsgi-file: 指定WSGI应用程序所在的Python文件路径。

–static-map: 指定静态文件目录和URL的映射,例如--static-map /static=/var/www/static。

–processes: 指定uWSGI运行的进程数量,例如--processes=4。

–threads: 指定每个进程所使用的线程数,例如--threads=2。

–uid: 指定运行uWSGI的用户ID,例如--uid www-data。

–gid: 指定运行uWSGI的用户组ID,例如--gid www-data。

–master: 启用master进程,用于管理worker进程。

–daemonize: 指定uWSGI以守护进程方式运行,并输出日志到指定文件,例如--daemonize=/var/log/uwsgi.log。

–logger: 指定日志输出方式,例如--logger=file:/var/log/uwsgi.log。

–plugin: 指定uWSGI所使用的插件,例如--plugin python3,表示使用Python3插件。

uwsgi --http :8000 --wsgi-file myapp.py

uwsgi --ini myapp.ini

uwsgi --json myapp.json

测试,用户目录下建个test.py文件:

def application(environ, start_response):
    status = '200 OK'
    headers = [('Content-type', 'text/plain')]
    start_response(status, headers)
    
    return [b'Hello, World!']

运行:

uwsgi --master --http :8000  --wsgi-file test.py --workers 4 --enable-threads

配置好了就正常运行了,备案过的机子可以直接外网访问,没备案过的可用使用命令查看

netstat -na | grep 8000
可以使用curl curl 127.0.0.1:8000,可以看到服务器端返回ok

写个flask网页服务测试

from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

@app.route('/api/calculate', methods=['POST'])
def calculate():
    data = request.get_json()
    result = data['x'] + data['y']
    return jsonify({'result': result})

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=8000)

 

运行:python ./app.py

用uwsgi启动需要写个ini文件,vim start.ini,uwsgi --ini start.ini

[uwsgi]
#uwsgi启动时,所使用的地址和端口(这个是http协议的)
http=0.0.0.0:8000
#指向网站目录
chdir=./
#python 启动程序文件
wsgi-file=app.py
#python 程序内用以启动的application 变量名
callable=app
#处理器数
processes=4
#线程数
threads=2

八。安装docker

sudo apt-get install docke

九。一些维护系统的命令

free查看内存情况

netstat -lntp查看端口号情况

top查看cpups

-df查看进程情况

df查看磁盘使用情况

此致,完毕,等备案了。

你可能感兴趣的:(linux,运维,服务器)