刚花了好几百大洋买了个阿里的云服务器,考虑不周,买的最低配的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只在服务器上使用,不远程操作
六。安装nginxsudo 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查看磁盘使用情况
此致,完毕,等备案了。