解除安裝mysql:
1、sudo apt-get autoremove –purge mysql-server-5.5
5.5 是資料庫版本, mysql -v 顯示版本資訊
2、sudo apt-get remove mysql-server
3、sudo apt-get autoremove mysql-server
2、3可能沒作用
4、sudo apt-get remove mysql-common
5、清理資料 :dpkg -l |grep ^rc|awk `{print $2}` |sudo xargs dpkg -P
在安裝MySQL-Python的時候出現了這樣的錯誤:
error: command `x86_64-linux-gnu-gcc` failed with exit status 1
想到應該是少了什麼依賴包,在網上搜了一下找到了答案:
先安裝這些包:
sudo apt-get install libxml2-dev libxslt1-dev python-dev
然後在安裝:
sudo pip install MySQL-python
部署django專案需要用到的命令(以下是在阿里雲伺服器上部署的命令)
- 安裝Ubuntu系統或CentOS系統
pip freeze >requirements.txt
pip install -r requirements.txt
- 相關環境搭建
sudo passwd 修改root相關密碼
輸入su回車 進入超級管理員
sudo apt-get install python (如果有python環境可以不裝)
sudo apt-get install python-dev
sudo apt-get install python-pip
sudo apt-get install libxml*
sudo apt-get install net-tools
sudo apt-get install lsof
- 上述步驟在阿里雲服務上不用做,已經配好。只做以下步驟即可。
- ——更新本地包———
Sudo apt-get update
- ——更新pip版本———
pip install –upgrade pip
- ——安裝SSH———
sudo apt-get install openssh-server
——-安裝MySQL服務———
1> sudo apt-get install mysql-server
2> sudo apt-get install mysql-client (安裝過程中需要設定密碼:123456)
sudo apt-get install libmysqlclient-dev
- ——安裝 Nginx———
sudo apt-get install nginx
- ——安裝 uwsgi———
sudo pip install uwsgi
- 測試uwsgi
def application(env, start_response):
start_response(`200 OK`, [(`Content-Type`,`text/html`)])
return “HelloWorld”
1.Vim test.py 開啟test.py
2.按下 i 鍵 進入檔案的編輯模式,然後將內容複製進去,檢查內容是否正確。
3.然後按下 Esc 鍵,退出編輯模式。
4.連續按Shift + Z + Z儲存退出。
uwsgi –http :8001 –wsgi-file test.py
- 安裝django: pip install django
- ——-修改django專案的配置檔案———–
DEBUG = False
ALLOWED_HOSTS = [“*”]
——-靜態檔案———–
說明:STATIC_ROOT必須設定,而且和STATICFILES_DIRS不能共存
在django的setting檔案中,新增下面一行內容:
STATIC_ROOT = os.path.join(BASE_DIR, “static”)
然後執行(收集admin後臺的靜態檔案,如果不收集,將來訪問linux的blog的admin將沒有樣式): python manage.py collectstatic
- 配置完成,將專案上傳到Linux系統中
- 為你的專案建立一個uwsgi的配置檔案,統一命名為uwsgi.ini,可以放在任意位置,但是為了方便查詢,統一設定在專案根目錄下。
[uwsgi]
# Django-related settings
# uwsgi這個服務監聽的是9001埠,如果nginx想要向uwsgi轉發請求,那麼nginx必須使用9001埠傳送請求。
socket = 127.0.0.1:9001
# 專案絕對路徑
chdir = /home/project/LoginDemo
# Django的wsgi檔案相對路徑
wsgi-file = LoginDemo/wsgi.py
# process-related settings
# master
master = True
# 最大程式數
processes = 4
# 執行緒數
threads = 2
#設定此引數,有一個主程式
master=True
#守護程式的方式執行,log日誌存在此log檔案裡
deamonize=/var/log/uwsgi/djangoProject.log
#主程式id寫入檔案裡
pidfile= /var/log/nginx/uwsgi.pid
# … with appropriate permissions – may be needed
# chmod-socket = 664
#退出時,清理環境
vacuum = True
reload-mercy = 10
max-requests = 5000
limit-as = 512
buffer-size = 30000
- —-進入etc/nginx/conf.d資料夾下建立django_nginx.conf檔案——
server {
# listen 是nginx服務監聽的埠,如果使用者想要訪問後臺專案,請使用8000埠。該埠可以自定義。
# uwsgi的埠是供內部各個服務使用的。Nginx的埠是供使用者使用的。
listen 8000;
server_name 127.0.0.1
access_log /var/log/nginx/logindemo_access.log;
error_log /var/log/nginx/logindemo_error.log;
charset utf-8;
client_max_body_size 75M;
root /home/project/LoginDemo;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9001;
uwsgi_read_timeout 2;
}
location /static/ {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /home/project/LoginDemo/static/;
}
}
- 重啟nginx
sudo service nginx restart
- —-通過uwsgi執行django專案——
uwsgi –ini 配置檔案的路徑(uwsgi.ini)
- 再次通過瀏覽器訪問專案.出現介面則表示部署正確
- —————-問題——————-
1,uwsgi遇到ImportError: No module named django.core.wsgi問題
通過在wsgi.py裡面列印sys.path發現是因為path裡面並沒有包含該安裝的site-packages的路徑,因此在wsgi.py新增如下語句
sys.path.append(`/usr/lib/python2.7/site-packages`)
sys.path.append(`/usr/lib64/python2.7/site-packages`)
- netstat -ap | grep 8080 檢視8080埠是誰在使用
- kill -9 pid號 強制關閉佔用埠的程式