Django+virtualenv+virtualencwrapper+uwsgib部署low_permission

第一步,在CentOS Linux 環境下使用xshell下載python3

編譯安裝python3

1,解決依賴關係:
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
注意:下載時若是DNS沒法解析相應的地址,將會下載失敗,可能會致使後續操做不能執行,由於依賴關係沒解決。提早配置好DNS也很重要。若是哪一個下載失敗,可繼續操做,單獨下載。
2,下載軟件源代碼,推薦到opt/底下:
wget https://www.python.org/ftp/python/3.4.7/Python-3.4.7.tar.xz
3,解壓縮軟件源代碼,
xz -d Python-3.4.7.tar.xz
tar -xf Python-3.4.7.tar
4,切換進入源代碼目錄:cd python-3.4.7
5,./configure釋放編譯文件:
./configure --prefix=/opt/python347/
6,開始編譯,編譯安裝,make編譯,make install 編譯安裝:
make && make install
7,檢查你本身制定的安裝路徑,/opt/python347/
查看/opt/python347/bin目錄,python3的可執行命令都在bin底下了

cd opt     
ls
cd python347 
ls
cd  ./bin
ls 


8,建立軟鏈接:

cd ~
ln -s /opt/python347/bin/python3    /usr/bin/python3
ln -s /opt/python347/bin/pip3  /usr/bin/pip3


注意:
      不建議把原來的python軟鏈接刪除,由於yum使用的是原生自帶的python2。
      若是將python指向python3,yum會用不了。因此仍是添加軟鏈接爲好。


9,配置系統環境變量,配置PATH,加入python3的目錄

PATH=/opt/python347/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
或者
PATH=/opt/python347/bin/:$PATH

寫入我的配置文件,永久生效/etc/profile
vim /etc/profile  :編輯我的配置文件,寫入PATH
PATH=/opt/python347/bin/:$PATH #操做方法:摁「o」進入編輯,粘貼指令,摁‘Esc’,輸入:wq! 便可
執行命令source /etc/profile:從新讀取文件使其生效

10,查看python3,pip:
python3
pip3
pip3 list

11,升級pip3  :pip3 install --upgrade pip

12,pip3 list再也不提示更新
13,下載django:pip3 install django==1.11.14

 

第二步,Linux環境下安裝虛擬環境virtualenv

1,指定源下載:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
2,看看下哪兒了:find / -name virtualenv
3,看看管理包都有啥:pip3 list
4,建立項目存放地,好管理:

cd /     
mkdir data     
cd data   
mkdir projects

 

第三步,Linux環境下下載虛擬環境管理器VirtualenvWrapper管理虛擬環境

1,下載:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper

2,找到文件:find / -name virtualenvwrapper.sh

3,vim ~/.bashrc  #打開這個文件,寫入如下三行信息(根據本身目錄結構修改參數)

export WORKON_HOME=~/Envs   #設置virtualenv的統一管理目錄
VIRTUALENVWRAPPER_PYTHON=/opt/python347/bin/python3   #賦值一個virtualenvwrapper變量
source /opt/python347/bin/virtualenvwrapper.sh     #執行virtualenvwrapper安裝腳本


4.讀取virtualenvwrapper的環境變量,使得每次開機就加載
source ~/.bashrc

5.此時 virtualenvwrapper 就會自動建立一些管理命令
mkvirtualenv my_django15:建立一個虛擬環境,默認會激活當前這個虛擬環境
workon my_django15:快速進入虛擬環境
deactivate:手動中止虛擬環境
rmvirtualenv my_django15:刪除虛擬環境,須要先退出虛擬環境
lsvirtualenv:列舉全部的環境。
cdvirtualenv:導航到當前激活的虛擬環境的目錄中,好比說這樣您就可以瀏覽它的 site-packages 。
cdsitepackages:和上面的相似,可是是直接進入到 site-packages 目錄中。
lssitepackages:顯示 site-packages 目錄中的內容。
完整官網介紹:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html


#如下只作參考

確保開發環境一致性操做:
1,本地安裝包環境寫入到txt文件,在本地cmd執行:pip3 freeze > requirements.txt
2,將此文件拖拽至Linux服務器,須要有工具
3,在linux內執行命令下載:pip3 install -r requirements.txt

使用 virtualenvwrapper 管理虛擬環境

第四步,下載django

pip3 install django==2.0.14

 

第五步,下載mysql

1、新建文件、配置倉庫源

編輯建立mariadb.repo倉庫文件
vi /etc/yum.repos.d/MariaDB.repo


2、添加repo倉庫配置

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1


3、下載
yum install MariaDB-server MariaDB-client -y

4、啓動
systemctl start mariadb(經過yum下載的,可使用systemctl管理)

5、初始化
mysql_secure_installation

6、登陸
mysql -uroot -p
密碼

7、修改密碼
set password = PASSWORD('redhat123');

8、建立普通用戶,遠程登陸

建立用戶
  create user '用戶名'@'%' identified by '密碼';
給新用戶受權:
  grant all privileges on *.* to '用戶名'@'%' identified by '密碼';
刷新權限:
  flush privileges;
使用cdm終端登陸驗證:
  mysql -u用戶名 -p -h 10.0.0.10      輸入密碼


9、新用戶沒受權,會有權限限制

MariaDB [(none)]>證實沒有使用數據庫

use mysql;      Access denied for user 'xxx'@'%' to database 'mysql'
新建的普通用戶沒有權限,須要切換到root用戶。

root用戶下:
    use mysql;         
    Database change        
    MariaDB [mysql]>證實已使用mysql
查看建立的用戶:
    select host,user,password from user where user='hui';


10、權限
對用戶開通全部的權限:grant all privileges on *.* to username@'%';
查看用戶的權限:show grants for username@'%';
移除權限(使用root用戶):revoke all privileges on *.* from username@'%';

11、設置編碼
vim /etc/my.cnf寫入配置:

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
log-error=/var/log/mysqld.log
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

修改完配置文件,須要重啓mysql,使得生效
systemctl stop mariadb 
systemctl start mariadb 
查看編碼相關信息:\s  (進去後執行)


12、關閉防火牆

mysql遠程登陸受權配置:
    注意!關閉防火牆。、。。。。這樣就不會再出莫名其妙的bug了。。。
    iptables -F  #清空防火牆規則
    #關閉防火牆 
    systemctl stop firewalld
    #永久關閉防火牆開機自啓
    systemctl disable firewalld


13、mysql的備份和恢復

建立數據庫:create database s12;
備份:mysqldump -u root -p --all-databases > /tmp/db.dump
刪除:drop database s12;
恢復(兩種方式):
    1.登陸數據庫後:source /tmp/db.dump    
    2.在登陸時候,進行數據寫入:mysql -uroot -p < /tmp/db.dump


14、查看端口號是否被佔用
lsof -i:3306
netstat -tunlp|grep 3306

 

第六步,下載配置uwsgi

1、確保django項目能夠正常運行

1.建立虛擬環境,下載django1.11.15,創django項目

1.我把全部虛擬環境的項目都創在了/projects下,因此
cd /projects         
mkvirtualenv low_permissioin_venv

2.好習慣,檢查環境是否獨立:
which pip             
pip3 list

3.下載django:pip3 install django==1.11.15

4.建立django項目(或者使用拖拽工具yum install lrzsz,將項目拖拽進去,而後進行解壓unzip low_permission.zip)
django-admin startproject django15
cd django15
python manage.py runserver 0.0.0.0:8000

5.測試訪問,瀏覽器輸入: 10.0.0.10:8000




2、確保uwsgi能夠正常使用


2.安裝uwsgi

1.下載:pip3 install -i https://pypi.douban.com/simple uwsgi

2.經過uwsgi啓動一個python web服務
準備一個test_uwsgi.py文件,寫入代碼



def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World,im uwsgi....."] # python3



3,經過命令啓動這個文件


uwsgi --http :8000 --wsgi-file test_uwsgi.py


4.能夠測試訪問


http://10.0.0.10:8000/
3、uwsgi結合django開啓項目


5.個人項目目錄


(django15) [root@localhost /projects/django15/django15 03:04:40]#ls
__init__.py  __pycache__  settings.py  test_uwsgi.py  urls.py  wsgi.py  



6.經過uwsgi,啓動django項目

1.準備好django項目
2.編寫一個hello測試視圖
from django.shortcuts import HttpResponse
def hello(request):
    return HttpResponse('hello , im uwsgi.....')
# 加上url視圖
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^hello/',hello),
]


3.經過uwsgi啓動你的django項目
3.1.進入你的django項目,這是第一層
cd /projects/django15
3.2.經過命令啓動
uwsgi --http :9000 --module django15.wsgi↓
(django15) [root@localhost /projects/django15 04:11:47]#uwsgi --http :9000 --module django15.wsgi
3.3.測試訪問你的django應用 9000端口
10.0.0.10:9000/hello/
http://10.0.0.10:9000/admin/(前端樣式丟失)
3.4.注意,此時你的項目丟失靜態文件,由於uwsgi不解析靜態文件配置





7.uwsgi熱加載django程序
啓動命令添加一條參數
uwsgi --http :9000 --module django15.wsgi --py-autoreload=1
相關文章
相關標籤/搜索