linux 常用伺服器部署
阿新 • • 發佈:2020-09-19
安裝mysql(mariadb)
yum install mariadb-server mariadb -y #下載mysql systemctl start mariadb #啟動mysql mysql -u root -p #登入mysql 這裡沒有設定密碼直接回車 mysql --user=root -p #登入不上用這個試試View Code
安裝python3
下載Python原始碼地址 下載地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz 安裝python 庫環境 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y 下載,解壓安裝原始碼包 tar -xvzf Python-3.6.2.tgz cd Python-3.6.2 編譯3步曲 configure是一個指令碼檔案,告訴gcc編譯器,(/opt/python369)Python3即將安裝到哪裡,對開發環境檢查 ./configure --prefix=/opt/python369 make 生成Python3 可執行程式 make install 第2部第3部合成一步 make&& make install 配置 PATH vim /etc/profile 將解壓出來的python3 可執行檔案加入到 path PATH = "/opt/python369/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin" source /etc/profile 豆瓣源下載django 注意Python版本與Django版本 pip3 install -i https://pypi.doubanio.com/simple/ django==1.11.25 建立Django專案 建立專案 django-admin startproject dj1 建立app01 django-admin startapp app01 setting 中註冊app01 ALLOWED_HOSTS = ["*"] 啟動 服務 python3 manage.py runserver 0.0.0.0:9000 訪問 linux主機ip:9000/
virtualenv虛擬環境
不同工程依賴的開發環境不同,建立互相隔離的環境 #指定清華源下載pip的包 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv 建立獨立執行環境-命名 virtualenv --python=python3 venv1 進入虛擬環境 source venv/bin/activate 安裝第三方包 (venv)Myproject: pip3 install -i https://pypi.doubanio.com/simple django==1.9.8 #此時pip的包都會安裝到venv環境下,venv是針對Myproject建立的 建立專案。。。 建立app。。。 退出venv環境 deactivate命令 原理: 複製一分Python到virtualenv環境 命令source venv/bin/activate進入一個virtualenv環境時, virtualenv會修改相關環境變數,讓命令python和pip均指向當前的virtualenv環境。 echo $PATH /opt/venv1/bin:/opt/python369/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/binView Code
uwsgi
是什麼 wsgi 是閘道器介面 ,一種協議 uwsgi 實現wsgi的介面協議,c語言編寫支援多程序 安裝uwsgi pip3 install -i https://pypi.doubanio.com/simple uwsgi 配置檔案(專案目錄下建立uwsgi.ini) [uwsgi] #使用nginx連線時使用 #socket=0.0.0.0:8000 #這裡是socket引數,上線是不會這麼用的,對後端不安全,使用socket是安全的,這裡是除錯 http=0.0.0.0:8000 #不用nginx直接當做web伺服器使用 #http=0.0.0.0:9000 #專案目錄絕對路徑(也就是crm第一層絕對路徑) chdir=/opt/luffy_crm # crm第二層相對路徑,找到第二層下的wsgi # module=luffy_crm.wsgi #wsgi檔案路徑,在專案底下 wsgi-file=Ace_crm/wsgi.py #填寫虛擬直譯器第一層目錄,2*cpu數量+1 home=/opt/luffy_crm/venv_crm # 定義uwsgi執行的程序數量 processes=3 #threads=2 master=True vacuum=True #pidfile=uwsgi.pid #daemonize=uwsgi.log 啟動 uwsgi --ini ./uwsgi.ini 檢視啟動的日誌 uWSGI running as root, you can use --uid/--gid/--chroot options *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** *** uWSGI is running in multiple interpreter mode *** spawned uWSGI master process (pid: 14466) spawned uWSGI worker 1 (pid: 14468, cores: 1) spawned uWSGI worker 2 (pid: 14469, cores: 1) spawned uWSGI worker 3 (pid: 14470, cores: 1) spawned uWSGI http 1 (pid: 14471)View Code
supervisor
supervisor 是基於 python 的任務管理工具,用來自動執行各種後臺任務 1。安裝supervisor yum install -y supervisor 2.生成supervisor 配置檔案 echo_supervisord_conf > /etc/supervisord.conf 配置例子 supervisord.conf配置檔案引數解釋 [program:xx]是被管理的程序配置引數,xx是程序的名稱 [program:xx] command=啟動uwsgi命令 autostart=true ; 在supervisord啟動的時候也自動啟動 startsecs=10 ; 啟動10秒後沒有異常退出,就表示程序正常啟動了,預設為1秒 autorestart=true ; 程式退出後自動重啟,可選值:[unexpected,true,false],預設為unexpected,表示程序意外殺死後才重啟 startretries=3 ; 啟動失敗自動重試次數,預設是3 user=tomcat ; 用哪個使用者啟動程序,預設是root priority=999 ; 程序啟動優先順序,預設999,值小的優先啟動 redirect_stderr=true ; 把stderr重定向到stdout,預設false stdout_logfile_maxbytes=20MB ; stdout 日誌檔案大小,預設50MB stdout_logfile_backups = 20 ; stdout 日誌檔案備份數,預設是10 ; stdout 日誌檔案,需要注意當指定目錄不存在時無法正常啟動,所以需要手動建立目錄(supervisord 會自動建立日誌檔案) stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out stopasgroup=false ;預設為false,程序被殺死時,是否向這個程序組傳送stop訊號,包括子程序 killasgroup=false ;預設為false,向程序組傳送kill訊號,包括子程序 3.找到uwsgi絕對路徑 注意:這裡是在虛擬環境下 (venv_crm) [root@localhost venv_crm]# which uwsgi /opt/luffy_crm/venv_crm/bin/uwsgi /opt/luffy_crm/Venv_CRM/bin/uwsgi 4.uwsgi.ini絕對路徑 /opt/luffy_crm/uwsgi.ini /opt/luffy_crm/uwsgi.ini 因此 啟動uwsgi 命令的絕對路徑是 /opt/luffy_crm/venv_crm/bin/uwsgi --ini /opt/luffy_crm/uwsgi.ini 將supervisor 配置寫入到 /etc/supervisord.conf #supervisord.conf配置檔案引數解釋 [program:s666] command=/opt/luffy_crm/venv_crm/bin/uwsgi --ini /opt/luffy_crm/uwsgi.ini autostart=true ; 在supervisord啟動的時候也自動啟動 startsecs=10 ; 啟動10秒後沒有異常退出,就表示程序正常啟動了,預設為1秒 autorestart=true ; 程式退出後自動重啟,可選值:[unexpected,true,false],預設為unexpected,表示程序意外殺死後才重啟 stopasgroup=true ;預設為false,程序被殺死時,是否向這個程序組傳送stop訊號,包括子程序 killasgroup=true ;預設為false,向程序組傳送kill訊號,包括子程序 #supervisord.conf配置檔案引數解釋 [program:s666] command=/RE/luffy_crm/Venv_crm/bin/uwsgi --ini /RE/luffy_crm/uwsgi.ini autostart=true ; 在supervisord啟動的時候也自動啟動 startsecs=10 ; 啟動10秒後沒有異常退出,就表示程序正常啟動了,預設為1秒 autorestart=true ; 程式退出後自動重啟,可選值:[unexpected,true,false],預設為unexpected,表示程序意外殺死後才重啟 stopasgroup=true ;預設為false,程序被殺死時,是否向這個程序組傳送stop訊號,包括子程序 killasgroup=true ;預設為false,向程序組傳送kill訊號,包括子程序 5.最後啟動supervisor,完成uWSGI啟動django supervisord -c /etc/supervisord.conf #啟動supervisor supervisorctl -c /etc/supervisord.conf restart my #重啟my專案 supervisorctl -c /etc/supervisord.conf [start|stop|restart] [program-name|all] 6.檢查程序資訊 ps -ef | grep supervisor #檢查supervisor是否存在程序,是否啟動 ps -ef | grep uwsgi #檢查uwsgi是否啟動 7.進入supervisor 任務管理終端 supervisorctl -c /etc/supervisord.conf (venv_crm) [root@localhost luffy_crm]# supervisorctl -c /etc/supervisord.conf s666 RUNNING pid 15329, uptime 0:06:19 supervisor> ##supervisor 互動式命令 statu #檢視狀態 start s666 #start 程序名稱啟動程序 stop all #停止全部任務View Code
niginx
1.下載 wget -c https://nginx.org/download/nginx-1.12.0.tar.gz 2.檢查環境依賴 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y 如果忘記檢查環境依賴 1 刪除檔案 nginx-1.12.0 4.安裝3部曲 3解壓 tar -zxvf nginx-1.12.0.tar.gz 4.編譯安裝,狀態檢測,安裝目錄 ./configure --prefix=/opt/nginx112/ make && make install 5.啟動nginx sbin目錄找到nginx啟動 cd sbin ./nginx #啟動 ./nginx -s stop #關閉 ./nginx -s reload #重新載入 6.新增進path 7.輸入ip可以檢視nginx首頁View Code