CentOS部署Python Django項目生產環境(centos部署python項目)

      網友投稿 1101 2022-05-30

      django 各版本以及所兼容的Python版本對照表:

      一、安裝python

      1、下載python安裝包

      [qiaoyingxiao001@iot-master?Python]$?wget?https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz

      2、解壓下載好的安裝包

      [qiaoyingxiao001@iot-master?Python-3.6.8]$?tar?-xvf?Python-3.6.8.tgz

      3、進入解壓縮文件夾

      [qiaoyingxiao001@iot-master?Python]$?cd?Python-3.6.8

      4、安裝python之前需要安裝相關的依賴

      [root@iot-master?Python-3.6.8]#?yum?install?zlib-devel?bzip2-devel?openssl-devel?ncurses-devel?sqlite-devel?readline-devel?python-devel?mysql-devel?gcc?make Last?metadata?expiration?check:?2:21:03?ago?on?Sun?16?Aug?2020?06:44:36?AM?UTC. No?match?for?argument:?python-devel Error:?Unable?to?find?a?match:?python-devel [root@iot-master?Python-3.6.8]#

      The solution on Centos is to install python-devel package; In Centos 8 however this package was renamed due to the fact python 2.7 is no longer the default one, it has become 3. And this package was named w/o any suggestions;

      yum?install?python3-devel

      [root@iot-master?Python-3.6.8]#?yum?install?zlib-devel?bzip2-devel?openssl-devel?ncurses-devel?sqlite-devel?readline-devel?python3-devel?mysql-devel?gcc?make

      5、繼續安裝python3.6.8

      [root@iot-master?Python-3.6.8]#?./configure [root@iot-master?Python-3.6.8]#?make [root@iot-master?Python-3.6.8]#?make?install [root@iot-master?bin]#??ln?-s?/usr/local/bin/python3?python [root@iot-master?bin]#?ln?-s?/usr/local/bin/pip3?pip [root@iot-master?bin]#?ll?pip lrwxrwxrwx.?1?root?root?19?Aug?16?09:25?pip?->?/usr/local/bin/pip3 [root@iot-master?Python]#?pip?install?--upgrade?pip

      6.安裝和使用virtualenv:

      前提: python3和pip3都已經安裝,執行命令:

      pip3?install?virtualenv

      創建名字為django的虛擬環境,執行命令:

      python3?-m?venv?/home/virtualenv/django

      進入虛擬環境,執行命令:

      cd?/home/virtualenv/django/bin source?activate

      7.安裝第三方庫:

      安裝Django第三方庫列表(requirements.txt),如下:

      cd?/tmp

      vim?requirements.txt?#?復制第三方庫列表到此文件下,退出并保存:wq!

      pip?install?-r?requirements.txt?#?安裝第三方庫列表

      安裝 setuptools

      命令:

      yum?install?python-setuptools

      完成之后,就可以使用 easy_install 命令安裝 django

      easy_install?django

      8、安裝MySQL數據庫

      [root@iot-master?MySQL]#?yum?install?mysql-server [qiaoyingxiao001@iot-master?MySQL]$?mysql ERROR?2002?(HY000):?Can't?connect?to?local?MySQL?server?through?socket?'/var/lib/mysql/mysql.sock'?(2)

      [qiaoyingxiao001@iot-master?MySQL]$?systemctl?start?mysqld.service ====?AUTHENTICATING?FOR?org.freedesktop.systemd1.manage-units?==== Authentication?is?required?to?start?'mysqld.service'. Authenticating?as:?root Password:? ====?AUTHENTICATION?COMPLETE?==== [qiaoyingxiao001@iot-master?MySQL]$? [qiaoyingxiao001@iot-master?MySQL]$? [qiaoyingxiao001@iot-master?MySQL]$?systemctl?status?mysqld.service ●?mysqld.service?-?MySQL?8.0?database?server ???Loaded:?loaded?(/usr/lib/systemd/system/mysqld.service;?disabled;?vendor?preset:?disabled) ???Active:?active?(running)?since?Sun?2020-08-16?09:40:27?UTC;?33s?ago ??Process:?161440?ExecStartPost=/usr/libexec/mysql-check-upgrade?(code=exited,?status=0/SUCCESS) ??Process:?161313?ExecStartPre=/usr/libexec/mysql-prepare-db-dir?mysqld.service?(code=exited,?status=0/SUCCESS) ??Process:?161289?ExecStartPre=/usr/libexec/mysql-check-socket?(code=exited,?status=0/SUCCESS) ?Main?PID:?161397?(mysqld) ???Status:?"Server?is?operational" ????Tasks:?39?(limit:?9312) ???Memory:?498.4M ???CGroup:?/system.slice/mysqld.service ???????????└─161397?/usr/libexec/mysqld?--basedir=/usr Aug?16?09:40:15?iot-master?systemd[1]:?Starting?MySQL?8.0?database?server... Aug?16?09:40:16?iot-master?mysql-prepare-db-dir[161313]:?Initializing?MySQL?database Aug?16?09:40:27?iot-master?systemd[1]:?Started?MySQL?8.0?database?server. [qiaoyingxiao001@iot-master?MySQL]$

      [qiaoyingxiao001@iot-master?MySQL]$?mysql?-u?root? Welcome?to?the?MySQL?monitor.??Commands?end?with?;?or?\g. Your?MySQL?connection?id?is?10 Server?version:?8.0.17?Source?distribution Copyright?(c)?2000,?2019,?Oracle?and/or?its?affiliates.?All?rights?reserved. Oracle?is?a?registered?trademark?of?Oracle?Corporation?and/or?its affiliates.?Other?names?may?be?trademarks?of?their?respective owners. Type?'help;'?or?'\h'?for?help.?Type?'\c'?to?clear?the?current?input?statement. mysql>? mysql>

      1)、修改root密碼:

      mysql>?alter?user?'root'@'localhost'?identified?with?mysql_native_password?by?'新密碼'; Query?OK,?0?rows?affected?(0.01?sec) mysql>?flush?privileges; Query?OK,?0?rows?affected?(0.00?sec)

      2)、創建一個用戶并授權:

      mysql>?create?user?'managerdb'@'%'?identified?by?'密碼'; Query?OK,?0?rows?affected?(0.01?sec) mysql>?grant?all?on?*.*?to?'managerdb'@'%'; Query?OK,?0?rows?affected?(0.01?sec) mysql>? mysql>? mysql>?flush?privileges; Query?OK,?0?rows?affected?(0.00?sec)

      9、安裝mysqlclient

      CentOS 安裝處理:

      [qiaoyingxiao001@iot-master?MySQL]$?pip?install?mysqlclient

      如安裝mysqlclient第三方庫出現報錯(“OSError: mysql_config not found”),修改配置文件并手動安裝的解決方案:

      cd?/tmp wget?http://mirrors.163.com/pypi/packages/6f/86/bad31f1c1bb0cc99e88ca2adb7cb5c71f7a6540c1bb001480513de76a931/mysqlclient-1.3.12.tar.gz#sha256=2d9ec33de39f4d9c64ad7322ede0521d85829ce36a76f9dd3d6ab76a9c8648e5 tar?-xzvf?mysqlclient-1.3.12.tar.gz cd?mysqlclient-1.3.12 vim?setup_posix.py 修改setup_posix.py下,mysql_config.path?=?"mysql_config"?改成?mysql_config.path?=?"/usr/local/mysql/bin/mysql_config",保存并退出:wq! python?setup.py?install

      Ubuntu 安裝處理:

      (env)?tester@tester-master:~/MasterData/temp$?pip?install?mysqlclient Collecting?mysqlclient ??Using?cached?mysqlclient-2.0.1.tar.gz?(87?kB) ????ERROR:?Command?errored?out?with?exit?status?1: ?????command:?/home/tester/bin/PycharmENV/env/bin/python?-c?'import?sys,?setuptools,?tokenize;?sys.argv[0]?=?'"'"'/tmp/pip-install-xfgvb6rd/mysqlclient/setup.py'"'"';?__file__='"'"'/tmp/pip-install-xfgvb6rd/mysqlclient/setup.py'"'"';f=getattr(tokenize,?'"'"'open'"'"',?open)(__file__);code=f.read().replace('"'"'\r\n'"'"',?'"'"'\n'"'"');f.close();exec(compile(code,?__file__,?'"'"'exec'"'"'))'?egg_info?--egg-base?/tmp/pip-pip-egg-info-2iefr5u4 ?????????cwd:?/tmp/pip-install-xfgvb6rd/mysqlclient/ ????Complete?output?(12?lines): ????/bin/sh:?1:?mysql_config:?not?found ????/bin/sh:?1:?mariadb_config:?not?found ????/bin/sh:?1:?mysql_config:?not?found ????Traceback?(most?recent?call?last): ??????File?"",?line?1,?in? ??????File?"/tmp/pip-install-xfgvb6rd/mysqlclient/setup.py",?line?15,?in? ????????metadata,?options?=?get_config() ??????File?"/tmp/pip-install-xfgvb6rd/mysqlclient/setup_posix.py",?line?65,?in?get_config ????????libs?=?mysql_config("libs") ??????File?"/tmp/pip-install-xfgvb6rd/mysqlclient/setup_posix.py",?line?31,?in?mysql_config ????????raise?OSError("{}?not?found".format(_mysql_config_path)) ????OSError:?mysql_config?not?found ????---------------------------------------- ERROR:?Command?errored?out?with?exit?status?1:?python?setup.py?egg_info?Check?the?logs?for?full?command?output.

      解決方案:

      (env)?tester@tester-master:~/MasterData/temp$?sudo?apt-get?install?python-dev?default-libmysqlclient-dev

      (env)?tester@tester-master:~/MasterData/temp$?sudo?apt-get?install?python3-dev

      10、安裝django1.11.11

      [qiaoyingxiao001@iot-master?MySQL]$?pip?install?django==1.11.11

      11、測試創建django項目

      修改settings.py文件

      DATABASES?=?{ ????'default':?{ ????????'ENGINE':?'django.db.backends.mysql', ????????'NAME':?'iot_db', ????????'USER':?'managerdb', ????????'PASSWORD':?'密碼', ?????} }

      12.Django項目使用uwsgi

      安裝uwsgi

      pip?install?uwsgi

      一、命令行啟動

      uwsgi?--http?10.0.0.5:8080?--file?xuanyuaniotpro/wsgi.py?--static-map=/static=static

      二、文件啟動

      在項目同級目錄下面創建script目錄存放項目相關的配置文件

      在script目錄下創建uwsgi.ini文件

      [root-yuchuan@hy-iot?script]$?vim?uwsgi.ini

      文件內容:

      [uwsgi] #項目目錄 chdir=/home/root-yuchuan/project/xuanyuaniotpro #?啟動uwsgi的用戶名和用戶組 uid=root gid=root #?指定項目的application module=xuanyuaniotpro.wsgi:application #?指定sock的文件路徑 socket=/home/root-yuchuan/project/script/uwsgi.sock #?啟用主進程 master=true #?進程個數 workers=5 pidfile=/home/root-yuchuan/project/script/uwsgi.pid #?自動移除unix?Socket和pid文檔當服務器停止的時候 vacuum=true #?序列化接受的內容,如果可能的話 thunder-lock=true #?啟用線程 enable-threads=true #?設置自中斷時間 harakiri=30 #?設置緩沖 post-buffering=4096 #?設置日志目錄 daemonize=/home/root-yuchuan/project/script/uwsgi.log #?設置IP和端口 http=10.0.0.5:8080 #?設置靜態文件 static-map=/static=/home/root-yuchuan/project/xuanyuaniotpro/static

      使用文件啟動的命令:

      uwsgi?--ini?uwsgi.ini

      12.Django項目使用Nginx

      安裝Nginx

      [root@hy-iot?conf.d]#?yum?-y?install?nginx

      查看Nginx

      CentOS部署Python Django項目生產環境(centos部署python項目)

      [root@hy-iot?conf.d]#?ps?-ef?|?grep?-i?nginx

      [root@hy-iot?conf.d]#?cd?/etc/nginx/conf.d/

      [root@hy-iot?conf.d]#?vim?xuanyuaniotpro.conf

      server?{#?這個server標識我要配置了 ????????listen?80;?#?我要監聽那個端口 ????????server_name?10.0.0.5;?#?你訪問路勁前面的url名稱 ????????access_log?/var/log/nginx/access.log?main;?#?Nginx?日志配置 ????????charset?utf-8;?#?Nginx?編碼 ????????gzip?on;?#?啟用壓縮,這個的作用是給用戶一個網頁,比如3M壓縮后1M這樣的傳輸速度就好很高的提高 ????????gzip_types?text/plain?application/x-javascript?text/css?text/javascript?application/x-httpd-php?application/json?text/json?image/jpeg?image/gif?image/png?application/octet-stream;?#支持壓縮的類型 ????????error_page?404??????????/404.html;?#?錯誤頁面 ????????error_page?500?502?503?504??????/50x.html;?#?錯誤頁面 ????????#指定項目路徑uwsgi ????????location?/?{????#?這個location就和咱們Django?的url(r'^admin/',admin.site.urls), ????????????????include?uwsgi_params;?#?導入一個Nginx模塊他是用來和uwsgi繼續通訊的 ????????????????uwsgi_connect_timeout?30;?#?設置連接uwsgi超時時間 ????????????????uwsgi_pass?unix:/home/root-yuchuan/project/script/uwsgi.sock;?#指定uwsgi的sock文件所有動態請求就會直接丟給他 ????????} ????????#?指定靜態文件路徑 ????????location?/static/?{ ????????????????alias?/home/root-yuchuan/project/xuanyuaniotpro/static/; ????????????????index?login.html?login.htm; ????????} }

      啟動Nginx

      [root@hy-iot?conf.d]#?/etc/init.d/nginx?restart

      機器學習 IoT 軟件開發 云計算

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Excel工作簿優化技巧有哪些(excel表格怎么優化)
      下一篇:Kotlin系列一:基礎知識快速入門(Kotlin入門)
      相關文章
      久久丫精品国产亚洲av不卡| 亚洲欧洲在线观看| 亚洲天堂福利视频| 亚洲最大成人网色| 亚洲国产老鸭窝一区二区三区| 亚洲色精品vr一区二区三区| 亚洲一区二区三区国产精品| 亚洲精品国产自在久久| 亚洲中文字幕无码专区| 国产午夜亚洲精品午夜鲁丝片| 亚洲午夜精品第一区二区8050| 亚洲男人的天堂在线va拉文| 亚洲人午夜射精精品日韩| 亚洲日韩在线第一页| 在线观看国产区亚洲一区成人| 国产午夜亚洲不卡| 国产亚洲精品a在线观看app| 好看的亚洲黄色经典| 亚洲AV人无码激艳猛片| 亚洲黄色免费网站| 亚洲人色大成年网站在线观看| 亚洲中文字幕久在线| 中文字幕无码亚洲欧洲日韩| 亚洲欧美日韩自偷自拍| 久久久亚洲精华液精华液精华液| 国产亚洲精品美女2020久久 | 亚洲人成影院77777| 亚洲一级毛片中文字幕| 亚洲中文无码亚洲人成影院| 国产精品无码亚洲精品2021 | 亚洲精品高清在线| 亚洲综合另类小说色区| 亚洲春色在线视频| 67pao强力打造67194在线午夜亚洲| 亚洲第一页在线观看| 亚洲中文字幕无码中文| 国产精品观看在线亚洲人成网| 国产精品亚洲美女久久久| 亚洲αv在线精品糸列| 亚洲精品视频在线免费| 国产亚洲精品VA片在线播放|