2019-08-24 linux使用问题及解决方案(centos7、xshell)

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退出,否则进程也会被杀掉。

你可能感兴趣的:(2019-08-24 linux使用问题及解决方案(centos7、xshell))