在騰訊雲上安裝mysql遇到的問題

Chai-zz發表於2018-07-07

 

解除安裝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專案需要用到的命令(以下是在阿里雲伺服器上部署的命令)

  1. 安裝Ubuntu系統或CentOS系統

pip freeze >requirements.txt

pip install -r requirements.txt

  1. 相關環境搭建

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

  1. 上述步驟在阿里雲服務上不用做,已經配好。只做以下步驟即可。
  2. ——更新本地包———

Sudo apt-get update

  1. ——更新pip版本———

pip install –upgrade pip

  1. ——安裝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

  1. ——安裝 Nginx———

sudo apt-get install nginx

  1. ——安裝 uwsgi———

sudo pip install uwsgi

  1. 測試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

  1. 安裝django: pip install django
  2. ——-修改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

  1. 配置完成,將專案上傳到Linux系統中
  2. 為你的專案建立一個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

 

  1. —-進入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/;

     }

 }

  1. 重啟nginx

sudo  service  nginx  restart

  1. —-通過uwsgi執行django專案——

uwsgi –ini 配置檔案的路徑(uwsgi.ini)

  1. 再次通過瀏覽器訪問專案.出現介面則表示部署正確
  2. —————-問題——————-

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`)

 

  1. netstat -ap | grep 8080  檢視8080埠是誰在使用
  2. kill -9 pid號  強制關閉佔用埠的程式

相關文章