初始化服務器基礎環境, 搭建開發環境, 項目上線

初始化服務器基礎環境

設置服務器安全組html

  • 受權對象: 0.0.0.0/0, 容許全部ip及端口訪問前端

  • ssh協議默認端口號: 22, http協議的默認端口號: 80, https協議默認端口號: 443vue

'''
鏈接服務器: ssh root@39.99.156.25

編輯文件: vim ~/.bash_profile, 相似於windows的環境變量
	ggdG: 刪除文件中的所有內容
	
	export PATH=$PATH:$HOME/bin
	PS1='Path:\w\n>:'

從新加載文件: source ~/.bash_profile, [ˈprəʊfaɪl], 輪廓

yum -y update 
yum -y groupinstall "Development tools" 
yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel 
'''

搭建開發環境

安裝mysql

'''
上傳本地安裝包: scp -r 本地安裝包路徑 root@39.99.156.25:~ 

安裝: 
	yum -y install mysql57-community-release-el7-10.noarch.rpm 
	yum -y install mysql-community-server

啓動mysql57並查看啓動狀態:
	systemctl start mysqld.service
	systemctl status mysqld.service

查看默認密碼並登陸:
	grep "password" /var/log/mysqld.log
	mysql -uroot -p

修改密碼:
	ALTER USER 'root'@'localhost' IDENTIFIED BY 'Cql123456';

密碼出現問題: https://www.cnblogs.com/black-fact/p/11613361.html
'''

安裝redis

'''
上傳本地壓縮包: scp -r 本地壓縮包路徑 root@39.99.156.25:~ 

解壓: tar -xf redis-5.0.5.tar.gz 

進入目標文件夾: cd redis-5.0.5

編譯: make

將編譯後的文件夾複製到指定路徑安裝: cp -r ~/redis-5.0.5 /usr/local/redis 

修改配置文件: vim /usr/local/redis/redis.conf
	daemonize yes

創建軟連接:
	ln -s /usr/local/redis/src/redis-server /usr/bin/redis-server 
	ln -s /usr/local/redis/src/redis-cli /usr/bin/redis-cli

後臺啓動redis: redis-server &

關閉redis服務: pkill -f redis -9
'''

安裝python3.6

'''
上傳本地壓縮包: scp -r 本地壓縮包路徑 root@39.99.156.25:~

解壓: tar -xf Python-3.6.7.tar.xz

進入目標文件夾: cd Python-3.6.7

配置安裝路徑: ./configure --prefix=/usr/local/python3

編譯並安裝: make && sudo make install

創建軟連接:
	ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
	ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

刪除安裝包和壓縮包
	rm -rf Python-3.6.7
	rm -rf Python-3.6.7.tar.xz

配置pip源
	mkdir ~/.pip
	cd ~/.pip && vim pip.conf
	
	[global]
	index-url = http://pypi.douban.com/simple
	[install]
	use-mirrors =true
	mirrors =http://pypi.douban.com/simple/
	trusted-host =pypi.douban.com
'''

安裝uwsgi

'''
在真實環境下安裝: pip3 install uwsgi

創建軟連接: ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
'''

虛擬環境管理模塊

'''
安裝:
	pip3 install virtualenv
	pip3 install virtualenvwrapper

編輯文件: vim ~/.bash_profile
    export WORKON_HOME=~/.virtualenvs  # 虛擬環境的存放目錄
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/python3/bin/virtualenv
    source /usr/local/python3/bin/virtualenvwrapper.sh  # 打開終端自動啓用

從新加載文件: source ~/.bash_profile
'''

安裝nginx

'''
上傳本地壓縮包: scp -r 本地壓縮包路徑 root@39.99.156.25:~

解壓:tar -xf nginx-1.13.7.tar.gz

進入目標文件夾: cd nginx-1.13.7

配置安裝路徑: ./configure --prefix=/usr/local/nginx

編譯並安裝: make && sudo make install

創建軟連接: ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

刪除安裝包和壓縮包
	rm -rf nginx-1.13.7
	rm -rf nginx-1.13.7.tar.gz
'''

項目上線

前端

'''
# ...\luffycity\src\assets\js\settings.js
export default {
    base_url: 'http://39.99.156.25:8000',  // 後端url地址
}

將本地項目打包: cnpm run build

上傳打包文件: scp -r 打包文件路徑 root@39.99.156.25:/home/html

備份文件: cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak

編輯文件: vim /usr/local/nginx/conf/nginx.conf
	ggdG

    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        server {
            listen 80;
            server_name  127.0.0.1;  
            charset utf-8;
            location / {
                root /home/html;  
                index index.html; 
                try_files $uri $uri/ /index.html;  # 解決vue單頁面刷新報錯
            }
        }
    }   

啓動nginx: nginx
關閉nginx: nginx -s stop
更改配置文件後重載nginx: nginx -s reload
'''

後端

'''
# ...\luffyapi\prod_manage.py
...
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffyapi.settings.prod_settings")
    ...


# ...\luffyapi\luffyapi\wsgi.py
...
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffyapi.settings.prod_settings")
...


# ...\luffyapi\luffyapi\settings\prod_settings.py
...
DEBUG = False

ALLOWED_HOSTS = ['39.99.156.25']

...
BACKEND_BASE_URL = 'http://39.99.156.25:8000'  # 後端url根路徑
FRONTEND_BASE_URL = 'http://39.99.156.25:80'  # 前端url根路徑
...

# drf框架的配置
REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES': [
        'rest_framework.renderers.JSONRenderer',
        # 'rest_framework.renderers.BrowsableAPIRenderer',
    ],
    ...,
}
...


# 導出項目依賴: pip3 freeze > dependencies.txt

# 提交項目到遠程倉庫: 
	git pull rmt_luffyapi master
	git push rmt_luffyapi master

# 在服務器上建立路飛後端項目存放目錄: mkdir /home/project

# 將遠程倉庫的路飛後端項目克隆到服務器: cd /home/project && git clone https://gitee.com/cql406454833/luffyapi.git

# 在服務器上建立虛擬環境: mkvirtualenv luffyapi
# 切換到新建立的虛擬環境: workon luffyapi
# 在虛擬環境中安裝項目所需依賴:
	pip install uwsgi
	pip install -r /home/project/luffyapi/dependencies.txt


建立並編輯uwsgi配置文件: vim /home/project/luffyapi/luffyapi.xml
    <uwsgi>    
       <socket>127.0.0.1:8808</socket>  <!--uwsgi服務的端口--> 
       <chdir>/home/project/luffyapi/</chdir>  <!--路飛後端項目的絕對路徑-->            
       <module>luffyapi.wsgi</module>  <!--wsgi文件的相對路徑--> 
       <processes>4</processes>  <!--進程數-->     
       <daemonize>uwsgi.log</daemonize>  <!--uwsgi日誌文件的相對路徑-->
    </uwsgi>


nginx反向代理:
	vim /usr/local/nginx/conf/nginx.conf
	
    ...
    http {
        ...
        # 新增的server
        server {
            listen 8000;
            server_name  127.0.0.1;
            charset utf-8;
            location / {
               include uwsgi_params;
               uwsgi_pass 127.0.0.1:8808;  # 反向代理本地的8080端口
               uwsgi_param UWSGI_SCRIPT luffyapi.wsgi;  # uwsgi依賴於wsgi
               uwsgi_param UWSGI_CHDIR /home/project/luffyapi/;  # 路飛後端項目的絕對路徑
            }
        }
    } 
    

數據庫設置:
	管理員登陸: mysql -uroot -pCql123456
	建立數據庫: create database luffyapi default charset=utf8;
	建立用戶並設置權限: grant all privileges on luffyapi.* to 'cql'@'%' identified by 'Cql123456';
	保存設置: flush privileges;
	完成路飛後端項目的數據庫遷移: python /home/project/luffyapi/prod_manage.py migrate
	建立admin後臺超級用戶: python /home/project/luffyapi/prod_manage.py createsuperuser


nginx動靜分離:
	編輯文件: vim /home/project/luffyapi/luffyapi/settings/prod_settings.py
		STATIC_ROOT = '/home/project/luffyapi/luffyapi/static'  
		STATICFILES_DIRS = (os.path.join(BASE_DIR, "luffyapi", "static"),)
	
	遷移靜態文件: 
		mkdir /home/project/luffyapi/luffyapi/static
		python /home/project/luffyapi/prod_manage.py collectstatic
	
	編輯文件: vim /usr/local/nginx/conf/nginx.conf
        ...
        http {
            ...
            server {
                ...
                # nginx動靜分離
                location /static {
                    alias /home/project/luffyapi/luffyapi/static;
                }
            }
        }
        

# 重啓uwsgi:
	pkill -f uwsgi -9
	uwsgi -x /home/project/luffyapi/luffyapi.xml
	
更改配置文件後重載nginx: nginx -s reload

錄入數據庫數據: E:\feiqiu\day83
'''
相關文章
相關標籤/搜索