linux/centos7部署python项目:
2019.8.20
1、部署python项目,需要安装python,由于linux自带python为2.7,项目为3.6.8,故需要安装:
安装步骤:1)更新yum: sudo yum -y update(-y 标志用于提醒系统我们知道我们正在进行更改,免去终端提示我们要确认再继续)
2)安装yum-utils(扩展和补充yum的实用程序和插件):sudo yum -y install yum-utils
3)安装centos开发工具:sudo yum -y groupinstall development
4)安装python3:安装EPEL:sudo yum -y install epel-release
5)安装IUS软件源:sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
6)安装python3.6:sudo yum -y install python36u
7)安装pip3:sudo yum -y install python36u-pip
8)添加软链接:ln -s /usr/bin/python3.6 /usr/bin/python3
ln -s /usr/bin/pip3.6 /usr/bin/pip3 注:不要覆盖原有python,因为系统会用到
2、在pip install uswgi时发现python.h无法找到:
需要yum install python36u-devel:
1)在实施时发现yum无法使用,原因:yum需要使用系统原有python,而在下载python3后原有软链接
出了问题;解决方案:vi /usr/bin/yum 将首行的/usr/bin/python更改,将其指向python2.7的名字。
2)使用yum安装其他软件时出错,原因:与上相同;解决方案:vi /usr/libexec/urlgrabber-ext-down 修改第一行的Python
为重命名的名字(指向python2.7的)
3、python虚拟环境的创建与运用:
安装环境:pip3/pip install virtualenv ==>新建虚拟环境:virtualenv --python=python3 env ==> 激活虚拟环境
source env/bin/activate ==> 退出虚拟环境:deactivate
4、在运行代码时需要更改hosts文件,将ip与名称映射写入里面:
vi /etc/hosts
5、后端python代码部署启动完成,接下来便是前端的部署;
由于使用yum下载的nodejs版本太低,故要从自己安装nodejs,而要安装新的nodejs,需要先安装新版本的gcc
1)gcc安装步骤:
首先:进入你要安装gcc的文件夹
cd /usr/local/src
用wget下载压缩包,wget可用 yum install wget下载
wget https://ftp.gnu.org/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.gz
解压压缩包:
tar -xvf gcc-9.2.0.tar.gz
进入解压后文件夹,下载供编译需求的依赖项gmp, mpfr, mpc, isl,需要一些时间:
cd gcc-9.2.0
./contrib/download_prerequisites
建立一个文件夹存放编译文件:
mkdir build
进入并生成makefile文件
cd build
../configure
make编译:
make(需要花费超长时间)
make install
查找编译gcc时生成的最新动态库:
find / -name "libstdc++.so*"
将找到的动态库libstdc++.so.6.0.21复制到/usr/lib64:
cp /usr/local/gcc-9.2.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.27 /usr/lib64
切换工作目录至/usr/lib64,删除原来的软连接, 将默认库的软连接指向最新动态库:
cd /usr/lib64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.27 libstdc++.so.6
6、解决ssh登入linux网速慢
解决步骤:
先备份/etc/ssh/sshd_config,备份命令为
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
1.su (以root用户登录)
2.vi /etc/ssh/sshd_config (编辑配置文件)
3.输入 / ,查找GSSAPIAuthentication 赋值为no
4.输入 /,查找UseDNS,赋值为 no(该项默认不启用的,要把前面的#删除掉)
5.最后输入!wq保存文件并退出
6.重启systemctl restart sshd
7、项目使用uwsgi部署,下面是uwsgi的概念与作用:
uwsgi是一种线路协议,是uWSGI服务器自有的协议,用于定义传输信息类型,每一个uwsgi packet前4byte为
传输信息类型描述,其作用便是用于uWSGI服务器与其他网络服务器的数据通信。
2019.8.21
ps a查看所有进程
1、解决xshell连接linux服务器中断问题
进入/etc/ssh目录打开sshd_config文件,找到下图两个参数并设置下图所示的值:
ClientAliveInterval 3600
ClientAliveCountMax 3
然后重启sshd
sshd操作:
查看状态:
systemctl status sshd.service
启动服务:
systemctl start sshd.service
重启服务:
systemctl restart sshd.service
开机自启:
systemctl enable sshd.service
2、nodejs升级:
npm install -g n:安装n工具包
n stable:升级到最新稳定版
n latest:升级到最新版
n v11.13.0:升级到指定版本
n 11.13.0:切换到指定版本
n rm 11.13.0:删除指定版本
n use 11.13.0 some.js:用指定版本来执行脚本
3、nodejs安装:
首先,进入文件夹,wget https://npm.taobao.org/mirrors/node/v10.16.3/node-v10.16.3-linux-x64.tar.gz
然后,解压 tar -xvf node-v10.16.3-linux-x64.tar.gz
重命名: mv node-v10.16.3-linux-x64 nodejs
建立软连接,变为全局:ln -s /usr/local/src/nodejs/bin/npm /usr/local/bin
ln -s /usr/local/src/nodejs/bin/node /usr/local/bin
4、centos7.5 解决缺少libstdc++.so.6库的原因及解决办法
执行node -v报错如下:
[root@bogon ~]# node -v
node: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
解决方法:
加载所有安装包:yum repolist
查看哪个安装包包含该库:yum provides libstdc++.so.6
[root@localhost ~]# yum provides libstdc++.so.6
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epel: hkg.mirror.rackspace.com
* extras: mirrors.163.com
* updates: mirrors.cqu.edu.cn
libstdc++-4.8.5-36.el7.i686 : GNU Standard C++ Library
源 :base
匹配来源:
提供 :libstdc++.so.6
libstdc++-4.8.5-36.el7_6.1.i686 : GNU Standard C++ Library
源 :updates
匹配来源:
提供 :libstdc++.so.6
libstdc++-4.8.5-36.el7_6.2.i686 : GNU Standard C++ Library
源 :updates
匹配来源:
提供 :libstdc++.so.6
修复/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory问题
yum install glibc.i686 -y
修复error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
yum install zlib.i686 -y
yum install libstdc++-4.8.5-36.el7_6.2.i686
8.22
1、linux的ps命令:
[root@localhost ~]# ps a
PID TTY STAT TIME COMMAND
1572 tty1 Ss+ 0:00 -bash
3471 pts/1 Ss+ 0:00 -bash
4223 pts/0 Ss 0:00 -bash
4249 pts/0 R+ 0:00 ps a
其中:pid就是进程id,tty告诉用户进程从哪一个终端开始,stat是当前进程状态,S:sleeping,R:running,time:进程占cpu的总时间
command:用户运行的所有命令名称
ps的参数及其作用:
-e 显示所有进程;-f 全格式;-h 不显示标题;-l 长格式; -w 宽输出;
a 显示终端上所有进程,包括其他用户进程;r 只显示正在运行进程;u 查看进程所有者及其他信息; x 看到所有控制终端进程(这几个常用)
2、让xshell断开连接后linux的程序仍然运行
nohup command &
在这里要注意不能直接关掉xshell,而要使用exit退出,否则进程也会被杀掉。