A、Python環境
1、インストールの依存関係
#yumを-yインストールしたzlibはzlib-develのbzip2の-develのopensslの-develのncursesベースのncurses-develのsqliteの-develのreadlineの-develのTK-develのGDBM-develのDB4-develのlibpcapの-develのXZ-develのlibuuid-develのlibffi-develのを
2、コードをダウンロード
解凍して、コードのディレクトリを入力します。
タールzxvf XXX
3、設定
操作の前に./configureを、最初のconfigure
輸出LANG = zh_CN.UTF-8
輸出LANGUAGE = zh_CN.UTF-8
次に、設定を追加
./configure --prefix =は/ usr /パイソン
4、インストール
メイク
make installを
クリーンアップを再インストールします
きれいにします
distcleanを作ります
5、プラスソフトリンク
LN -sは/ usr /パイソン/ binに/のpython3は/ usr / binに/のpython3
LN -sは/ usr /パイソン/ binに/ PIP3は/ usr / binに/ PIP3
第二に、仮想環境
ピップvirtualenvのインストール
ピップvirtualenvwrapperインストール
ピップなし
PIP3 virtualenvのインストール
PIP3 virtualenvwrapperインストール
設定の環境変数
vimので開く〜/ .bashrcに
輸出WORKON_HOME =〜/ .virtualenvs
ソース/usr/bin/virtualenvwrapper.sh
若しくは
ソース/usr/python/bin/virtualenvwrapper.sh
異なるシステムvirtualenvwrapper.sh位置は同じではないかもしれません
注:マシンはpythonのないときに、彼らは次のpython3をインストールする必要がありますので、私は、インストールされているので
virtualenvのパスとvirtualenvwrapperです
/ usr /パイソン/ binに/ virtualenvの
/usr/python/bin/virtualenvwrapper.sh
プラスソフトリンク
LN -sは/ usr /パイソン/ binに/ virtualenvのは/ usr / binに/ virtualenvの
LN -s /usr/python/bin/virtualenvwrapper.sh /usr/bin/virtualenvwrapper.sh
ソース〜/ .bashrcに
ファイル.bashrcのテイク効果を実行します
PPCMSは(仮想環境への命名の実際のニーズに応じて)仮想環境を作成します
mkvirtualenv --python =は/ usr / binに/のpython3 ppcms
三、フラスコ環境
仮想環境に切り替え
workonのppcms
インストールフラスコ
ピップインストールフラスコ
ピップインストールpymysqlを
ピップインストールフラスコSQLAlchemyのを
ピップインストールpyjwt#JWT包
ピップリクエストをインストール
それはにまとめることができます
ピップフラスコインストール pymysql フラスコSQLAlchemyののpyjwt要求を
第四に、サービス展開
インストールGunicorn
ピップgunicornをインストール
五、Gunicornスタートアップスクリプト
起動するコマンドをgunicorn
简单地,gunicorn可以通过gunicorn -w 4 -b 127.0.0.1:4000 run:app启动一个Flask应用。其中,
-w 4是指预定义的工作进程数为4,
-b 127.0.0.1:4000指绑定地址和端口
run是flask的启动python文件,app则是flask应用程序实例
对应的gunicorn.py配置文件
# gunicorn.py debug = True daemon = True bind = '127.0.0.1:8001' # 绑定ip和端口号 # backlog = 512 # 监听队列 chdir = '/data/ppcms/ppcms' # gunicorn要切换到的目的工作目录 timeout = 30 # 超时 # worker_class = 'gevent' # 使用gevent模式,还可以使用sync 模式,默认的是sync模式 # workers = multiprocessing.cpu_count() * 2 + 1 # 进程数 # threads = 2 # 指定每个进程开启的线程数 loglevel = 'debug' # 日志级别,这个日志级别指的是错误日志的级别,而访问日志的级别无法设置 access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"' # 设置gunicorn访问日志格式,错误日志无法设置 """ 其每个选项的含义如下: h remote address l '-' u currently '-', may be user name in future releases t date of the request r status line (e.g. ``GET / HTTP/1.1``) s status b response length or '-' f referer a user agent T request time in seconds D request time in microseconds L request time in decimal seconds p process ID """ pidfile = "/data/log/ppcms.pid" accesslog = "/data/log/gunicorn_ppcms_access.log" # 访问日志文件 errorlog = "/data/log/gunicorn_ppcms_error.log" # 错误日志文件
六、nginx配置
upstream到本地指定端口即可。
location / {
proxy_pass http://127.0.0.1:8000 ; # 这里是指向gunicorn host的服务地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}