# 安裝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 使用此命令查看服務是否開啓