# 安装gcc 默认centos7.4已经安装了gcc工具,此步骤能够省略 yum install gcc # 装一些依赖库,这些库都以devel为后缀 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel expat-devel
下载python3压缩包html
# https://www.python.org/downloads/release/python-363/ 有下载地址 wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz # 或者在windnows下下载好,拉到linux中
解压vue
# 解压 tar -zxvf Python-3.6.3.tgz # 进入到目录 cd Python-3.6.3
源码安装 三步走node
# 配置 ./configure --enable-optimizations --prefix=/usr/local/python # 编译 make #安装 make install # 能够合成一步 make && make install
如何执行python3python
#经过修改profile文件: vim /etc/profile export PATH="/usr/local/python/bin:$PATH" #(注意:等号两边都不能有任何的空格) #不过该文件注释也说明了,这种作法不太推荐,建议是在/etc/profile.d/目录下建立一个.sh后缀文件 # 主要目的是方便往后维护(推荐方案) $ vim /etc/profile.d/py36.sh # 添加以下内容 export PATH=$PATH:/usr/local/python36/bin 保存,退出,而后运行: source /etc/profile #便可生效
virtualenv工具的安装linux
# 直接使用pip3安装virtualenv便可,这样安装到的是在python36目录下的bin目录里 $ pip3 install virtualenv
下载源码nginx
# 建议以root身份建立redis源码安装目录 $ mkdir -p /root/soft-build/redis-lab # 下载redis源码,目前下载4.0版本 $ wget http://download.redis.io/releases/redis-4.0.11.tar.gz # 解压 $ tar -zxvf redis-4.0.11.tar.gz
编译及安装web
cd redis-4.0.11 # 为了能够在系统任何位置上均可以使用redis,同时也方便管理,在/usr/local内,建立redis目录 $ mkdir -p /usr/local/redis4.0/bin # 进入到redis源码目录的src目录 $ cd src # 拷贝编译好的可执行文件到/usr/local/redis4.0/bin目录下 $ cp mkreleasehdr.sh /usr/local/redis4.0/bin/ $ cp redis-benchmark /usr/local/redis4.0/bin/ $ cp redis-check-aof /usr/local/redis4.0/bin/ $ cp redis-check-rdb /usr/local/redis4.0/bin/ $ cp redis-cli /usr/local/redis4.0/bin/ $ cp redis-sentinel /usr/local/redis4.0/bin/ $ cp redis-server /usr/local/redis4.0/bin/ # 将/usr/local/redis4.0/bin目录配置到系统PATH路径上 # 在/etc/profile.d/下建立一个叫redis.sh文件 export PATH=$PATH:/usr/local/redis4.0/bin
配置文件redis
默认在源码目录下,会有一个参考配置文件redis.conf,能够在这个文件基础上进行二次修改. 位置: /root/soft-build/redis-lab/redis-4.0.11/redis.conf
pip install uwsgi
商家后台服务配置(文件参考): 文件位置: 工程项目中的ini目录下cms_app.inisql
[uwsgi] # 全部的配置文件的路径必须为绝对路径 # uwsgi服务开放的socket接口的信息 socket = 127.0.0.1:5050 # wsgi规范的模块的路径信息 入口文件 wsgi-file = /webapps/whn/elm_webapps/cms_app.py # application的对象名 主APP对象 callable = cms_app # 运行时,先进入到哪一个工程目录 chdir = /webapps/whn/elm_webapps/ # 工程目录 # 虚拟环境的路径 virtualenv = /webapps/whn/virtual/elm/ processes = 1 threads = 1 master = true # 守护进行的日志文件路径 daemonize = /webapps/whn/logs/cms.log # 文件必须存在
买家前台服务配置(文件参考):文件位置: 工程项目中的ini目录下api_app.inishell
[uwsgi] # 全部的配置文件的路径必须为绝对路径 # 服务的端口 socket = 127.0.0.1:5080 # wsgi规范的模块的路径信息 wsgi-file = /webapps/whn/elm_webapps/api_app.py callable = api_app # 运行时,先进入到哪一个工程目录 chdir = /webapps/whn/elm_webapps/ # 虚拟环境的路径 virtualenv = /webapps/whn/virtual/elm/ processes = 1 threads = 1 master = true daemonize = /webapps/whn/logs/api.log
Nginx安装
阿里云自带了nginx的yum源,能够直接使用yum进行安装,建议仍是使用root用户进行安装
$ yum install nginx
Nginx的经常使用控制方式
nginx的启动
$ nginx
nginx的重启
$ nginx -s reload
nginx的配置文件测试
$ nginx -t
Nginx的配置文件
# user指定了nginx的worker进程以什么用户和组权限运行,必须改成你开发的用户和所属组 user whn webapps; # 须要修改 例: user 用户名 组名 # worker_processes表明工人进程的数量,建议和CPU核心数一致 worker_processes auto; # 全局错误日志文件 error_log /var/log/nginx/error.log; # master进程的进程号存放的位置 pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; # ★ 不建议修改这里的include文件,他是表明全局; ★ # ★ 建议修改http空间里的include来包含我的业务网站的配置信息. ★
events { # 每一个工人进程的链接最大数 worker_connections 1024; # 使用什么模型进行IO复用 use epoll; }
nginx的http空间字段含义:
http { # 日志打印格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # 访问日志存储位置及存储内容所使用的格式 access_log /var/log/nginx/access.log main; # 打开内核文件传输的开关 sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # 包含content-type的取值依据文件 include /etc/nginx/mime.types; # 若传输文件后缀名无效时,默认content-type的取值 default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. # ★ 系统默认的子配置存储的位置,建议屏蔽后,包含本身工程目录下的文件 ★ #include /etc/nginx/conf.d/*.conf; # ★ 配置本身工程项目的nginx配置文件 ★ include /webapps/whn/elm_webapps/conf.d/*.conf; # 放在工程目录内 # nginx官方提供的参考server配置,能够屏蔽来使自定义的虚拟服务起做用 # server { # listen 80 default_server; # listen [::]:80 default_server; # server_name _; # root /usr/share/nginx/html; # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # location / { # } # error_page 404 /404.html; # location = /40x.html { # } # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } # } }
Nginx的反向代理
nginx的虚拟服务器配置,其实就是把静态请求和动态请求经过location区分出来
后台虚拟服务的参考配置:文件位置: 工程项目中的conf.d目录下cms_app.conf
server { # listen表明监听端口 listen 80; # server_name表明虚拟服务器的域名 server_name _; # location表明一条匹配规则,当规则知足时,指定括号里的映射关系 location /static/ { # 静态文件 当访问静态文件时,自动到alias 指定的路径 寻找 # 使用alias作虚拟url和物理目录的映射关系. alias /webapps/whn/elm_webapps/apps/cms_statics/; # 静态文件路径 } location / { # 加载nginx提供的uwsgi模块 include uwsgi_params; # 利用uwsgi_pass访问本地socket的5050端口,进行进程间通讯 uwsgi_pass 127.0.0.1:5050; # 对应uwsgi的端口 } }
API虚拟服务的参考配置:文件位置: 工程项目中的conf.d目录下api_app.conf
server { listen 9801; # 监听此端口 server_name _; location /api/ { # 为动态资源请求 include uwsgi_params; uwsgi_pass 127.0.0.1:5080; # 与本地5080 端口进行进程间通讯 对应uwsgi的端口 } location / { alias /webapps/whn/elm_webapps/apps/vue_client/; # 静态文件资源 # 默认访问该路径时,找哪一个文件做为首页文件 index index.html; # 当访问跟目录时,自动响应index.html 资源 } }
每次启动Nginx前 都必须映射两个ini文件至uwsgi服务器,不然动态内容不可访问
命令语法: uwsgi文件位置 ini文件位置
查看启动状态: netstat -tanp 使用此命令查看服务是否开启