要使用rz、sz命令传输文件需要给服务器安装lrzsz:
yum -y install lrzsz
命令sz、rz的使用方法
-
rz中的r意为received(接收),输入rz时,意为服务器接收文件,即将文件从本地上传到服务器。
-
sz中的s意为send(发送),输入sz时,意为服务器要发送文件,既从服务器发送文件到本地,或是说本地从服务器上下载文件。
-
注意:不论是send还是received,动作都是在服务器上发起的。
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
可以使用wget -b https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
在后台下载, 到下载文件夹内使用tail -f wget-log
即可查看下载进度,按ctrl
+c
可退出查看 若提示未找到wget则先安装 yum -y install wget
解压缩安装包
tar zxf Python-3.8.0.tgz
有时候因为网络原因会有多个安装包,默认的这个可能被损坏,那么久需要解压缩另一个 例如: tar zxf Python-3.8.0.tgz.1
具体文件名可以使用ls
命令查看
-
tar命令的选项
-c:创建归档
-x:释放归档
-f:指定归档文件名称
-z:调用.gz格式的工具进行处理
-j:调用.bz2格式的工具进行处理
-J:调用.xz格式的工具进行处理
-t:显示归档中的文件清单
-C:指定释放路径
配置编译安装的基本环境
-
更新
yum update
-
安装依赖
yum -y groupinstall "Development tools" yum -y install gdbm-devel db4-devel libpcap-devel xz-devel
-
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
进入解压缩之后的Python-3.6.0目录内,执行以下命令进行安装
-
指定安装位置
./configure prefix=/usr/local/python3
,不要加--enable-optimizations
参数,否则会导致安装失败 -
清空缓存
make clean
-
编译安装
make && make install
./configure
Linux下源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install),具体的安装方法一般作者都会给出文档,这里主要讨论配置(configure)。Configure是一个可执行脚本,它有很多选项,使用命令./configure –help输出详细的选项列表
很多的选项,个人认为,你可以忽略其他的一切,但请把—prefix加上。这里以安装python36为例,我们打算把它安装到目录/usr/local/python36,于是在python36目录执行带选项的脚本./configure --prefix=/usr/local/python36执行成功后再编译、安装(make,make install);安装完成将自动生成目录python36而且该软件所有的文件都被复制到这个目录。为什么要指定这个安装目录?是为了以后的维护方便,如果没有用这个选项,安装过程结束后,该软件所需的软件被复制到不同的系统目录下,很难弄清楚到底复制了那些文件、都复制到哪里去了—基本上是一塌糊涂。
用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。
make clean 清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。
备份python2软连接
-
cd /usr/bin
-
mv python python2.bak
修改yum配置
-
/usr/bin
-
ls -la yum*
-
vi yum
进入之后,按i
进入编辑模式,将#!/usr/bin/python
改为#!/usr/bin/python2
,按ESC
退出编辑模式,输入:wq!
保存并退出,有多个yum文件则需要都这样修改 -
vi /usr/libexec/urlgrabber-ext-down
进行同样的修改
将python3设置为默认python(即:添加软连接)
-
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python
-
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip
如果提示pip已经存在,则删除rm /usr/bin/pip
输入y
并按回车确认,即可删除
验证成果
python -V # 会输出Python 3.6.0
flask
将要运行的flask文件放置root文件夹下 安装flask,进入目录,运行文件
pip install flask cd /root/flask1 python app.py
安装uwsgi
pip3 install uwsgi find / -name uwsgi ln -s /usr/local/python/bin/uwsgi /usr/bin/uwsgi
linux服务器下安装nginx以及环境的配置
下载nginx压缩包
wget -c https://nginx.org/download/nginx-1.14.0.tar.gz
配置nginx安装所需的环境
-
安装PCRE pcre-devel
Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码。安装指令如下:
yum install -y pcre pcre-devel
-
安装zlib
zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。安装指令如下:
yum install -y zlib zlib-devel
-
安装gcc
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境。安装指令如下:
yum install gcc-c++
-
安装Open SSL
nginx不仅支持 http协议,还支持 https(即在 ssl 协议上传输 http),如果使用了 https,需要安装 OpenSSL 库。安装指令如下:
yum install -y openssl openssl-devel
解压nginx压缩包
# 解压 tar -zxvf nginx-1.14.0.tar.gz # 进入 cd nginx-1.14.0
然后需要进行配置,注意!这里有一个坑,一般是使用默认配置,即输入./configure 就好了,
但是如果你需要使用https支持,则需要加上SLL模块,否则会出现如下报错
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:37
所以后期需要https服务的请执行以下指令替代 ./configure
./configure --with-http_ssl_module
编译安装nginx
逐个执行以下指令
make make install
安装成功后,返回上级目录,然后进入新的nginx目录
启动nginx
进入nginx下的sbin目录,输入./nginx即可启动nginx
./nginx
关闭nginx服务
./nginx -s stop
重启nginx
./nginx -s reload
查看nginx进程
ps aux|grep nginx
注意:以上代码要在 /usr/local/nginx/sbin 目录下执行!!
所以我们给nginx添加软连接
which nginx ln -s /usr/local/nginx /usr/bin/nginx
nginx和uwsgi的配置
配置nginx
至此我默认大家已经完成了nginx的安装,下面进行nginx 的配置 进入到nginx目录下的conf文件夹
cd /usr/local/nginx/conf
可以看到有一个叫 nginx.conf 的配置文件,在里面进行相关的文件配置 文件里面默认的代码很多,下面我将我的配置精简如下:
worker_processes 4; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; server { listen 80; // 监听的端口,默认为80端口 server_name 47.108.xxx.180; // 这里写服务器公网ip location / { proxy_pass http://127.0.0.1:5000; // 需要代理的地址,我的项目启动地址是这个 } } }
弄好配置文件然后就可以启动nginx了
配置uwsgi
下面开始配置uwsgi相关的东西,首先进入我们的项目文件夹 在项目文件夹中创建一个名为 uwsgi.ini 的文件
cd /root/flask1 //进入项目文件夹 vi uwsgi.ini //输入就自动创建了文件并进入了编辑模式
下面开始配置uwsgi文件,附上我的文件信息,关键信息写了注释,其他的根据需求配置,自行去查看作用,此处不作详解
[uwsgi] http-socket = 127.0.0.1:5000 // 启动地址 chdir = /root/flask1 // 项目地址 wsgi-file = app.py // 项目的启动文件 callable = app processes = 1 threads = 10 buffer-size = 32768 master = true daemonize=flaskweb.log // 日志文件保存在falskweb.log中 pidfile=uwsgi.pid
注:注意事项:
如果uwsgi配置文件中配置了 daemonize=/path/uwsgi.log (uwsgi服务以守护进程运行) 会导致sytemctl启动时多次重启而导致启动失败 需改为 logto=/path/uwsgi.log 如果你单独执行,并且项目的uwsgi.ini配置文件中设置了logto【daemonize就不用看了】需要执行uwsgi -d --ini uwsgi.ini。这就在后台运行了。
配置完成之后,在项目的根目录下就可以启动 uwsgi 了,下面附上uwsgi的相关操作指令
uwsgi --ini uwsgi.ini // 启动 uwsgi --reload uwsgi.pid // 重启
进入目录,输入指令启动uwsgi,如下代表启动成功
[uWSGI] getting INI configuration from uwsgi.ini
部署成功
启动成功后,我们就可以用浏览器通过服务器公网访问啦 因为前面nginx配置中我们直接把启动地址放在了 location/ 中,也就是将127.0.0.1:5000直接转发到了公网ip,所以可以直接访问:
Nginx设置成服务并开机自动启动的配置详解
方法一
在/etc/init.d下创建文件nginx
[root@localhost ~]# vim /etc/init.d/nginx
其内容参考nginx官方文档
需要注意的配置:
nginx=”/usr/local/nginx/sbin/nginx” //修改成nginx执行程序的路径。 NGINX_CONF_FILE=”/usr/local/nginx/conf/nginx.conf” //修改成nginx.conf文件的路径
保存后设置文件的执行权限
[root@localhost ~]# chmod a+x /etc/init.d/nginx
至此就可以通过下面指令控制启动停止
/etc/init.d/nginx start /etc/init.d/nginx stop
上面的方法完成了用脚本管理nginx服务的功能,但是还是不太方便。
先将nginx服务加入chkconfig管理列表:
[root@localhost ~]# chkconfig --add /etc/init.d/nginx
加完这个之后,就可以使用service对nginx进行启动,重启等操作了。
service nginx start service nginx stop service nginx restart
最后设置开机自动启动
[root@localhost ~]# chkconfig nginx on
#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: NGINX is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/etc/nginx/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` if [ -n "$user" ]; then if [ -z "`grep $user /etc/passwd`" ]; then useradd -M -s /bin/nologin $user fi options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done fi } start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $prog -HUP retval=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac
方法二:编辑/etc/rc.local,添加开机启动运行命令
直接编辑/etc/rc.local文件,文件内容最底下添加启动命令: /usr/local/nginx/sbin/nginx 即可
方法三: 添加服务方式
进入到/lib/systemd/system/目录
cd /lib/systemd/system/
创建nginx.service文件,并编辑
vim nginx.service # 仅修改 /usr/local/nginx/sbin/nginx 这个路径即可(修改为你的nginx路径)
[Unit] Description=nginx service After=network.target [Service] Type=forking ExecStart=/usr/bin/nginx ExecReload=/usr/bin/nginx -s reload ExecStop=/usr/bin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target
Description:描述服务 After:描述服务类别 [Service]服务运行参数的设置 Type=forking是后台运行的形式 ExecStart为服务的具体运行命令 ExecReload为重启命令 ExecStop为停止命令 PrivateTmp=True表示给服务分配独立的临时空间 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径 [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
保存退出。
systemctl start nginx.service 启动nginx服务
systemctl stop nginx.service 停止服务
systemctl restart nginx.service 重新启动服务
systemctl list-units --type=service 查看所有已启动的服务
systemctl status nginx.service 查看服务当前状态
systemctl enable nginx.service 设置开机自启动
systemctl disable nginx.service 停止开 机自启动
uwsgi自启
*.service 配置
创建配置文件:
/etc/systemd/system/server_uwsgi.service
填入以下内容
[Unit] Description=uWSGI instance to serve uwsgi After=network.target [Service] User=root Group=root KillSignal=SIGQUIT ExecStart=/usr/bin/uwsgi --ini /root/flask1/uwsgi.ini Restart=always Type=notify NotifyAccess=all StandardError=syslog [Install] WantedBy=multi-user.target
可以使用 whereis 查看uwsgi 位置
systemctl enable /etc/systemd/system/server_uwsgi.service
然后就可以通过systemctl来控制服务的启停
systemctl stop server_uwsgi.service 关闭uwsgi服务 systemctl start server_uwsgi.service 开启uwsgi服务 systemctl restart server_uwsgi.service 重启uwsgi服务