1. 程式人生 > >部署基於python語言的WEB發布環境

部署基於python語言的WEB發布環境

登錄 指定 5.7 存儲 端口 分享 alt 配置優化 python3.7

一、部署說明

1、python語言介紹

  python簡介

2、實驗環境

  實驗機器:Vmware虛擬機 8核10G

  網卡:橋接模式

  系統:centos7.5

  防火墻:關閉

  Selinux:關閉

  網段:192.168.10.0/25

  WEB01:192.168.10.42

二、部署流程

  Centos7.5 + Nginx + python + Django + uwsgi + mysql來部署網站(服務)。

1、部署Nginx

$ wget http://nginx.org/download/nginx-1.15.5.tar.gz -P /usr/src     # 下載nginx
$ cd /usr/src $ tar xvf nginx-1.15.5.tar.gz $ cd nginx-1.15.5 $ yum -y install gcc # nginx是c寫的 $ yum -y install pcre-devel # url重寫用到的包 $ yum -y install zlib zlib-devel # 解壓縮用到的包 # 配置安裝環境 $ ./configure --prefix=/usr/local/nginx # 編譯源碼生成可執行程序 依賴gcc $ make -j4 # 安裝程序 $ make
install # 啟動nginx $ /usr/local/nginx/sbin/nginx # 訪問nginx首頁 $ elinks http://192.168.10.42 -dump # 當前系統監聽tcp端口的進程 $ netstat -ntpl # 刪除不再需要的源碼 $ rm -rf nginx-1.15.5

2、Mysql安裝部署

  Mysql是一個關系型數據庫,由瑞典的AB公司開發,後賣給oracle公司,目前分為商業版和社區版。

  現在主要是使用兩大Myql版本:mysql5和mysql8。目前大多數公司使用5版本,因此在這裏使用5.7的最新版本。

# 1
.安裝依賴包 $ yum -y install ncurses-devel gcc-* bzip2-* bison # 2.升級cmake工具 # 軟件獲取:https://cmake.org/download $ wget https://cmake.org/files/v3.13/cmake-3.13.0-rc2.tar.gz $ tar xf cmake-3.13.0-rc2.tar.gz # 解壓 $ ./configure # 配置 $ make -j4 # 多核編譯減少等待時間 $ make install # 安裝 # 檢查是否安裝完成 $ cmake --version # 3. 升級boost庫文件 # boost庫獲取:https://www.boost.org # 由於這裏是安裝5.7的mysql,因此下載的是boost_1_59_0.tar.bz2 $ tar xf boost_1_59_0.tar.bz2 # 解壓 $ mv boost_1_59_0 /usr/local/boost

  在上面部署準備完成後,開始執行mysql安裝

# 4.安裝mysql
# 添加用戶與組
$ useradd -s /sbin/nologin -r mysql
$ mkdir -pv /usr/local/mysql/data

# 軟件獲取:https://www.oracle.com=>下載=>myql=>社區版本,此處下載mysql-5.7.24.tar.gz
$ tar xf mysql-5.7.24.tar.gz      # mysql解壓

# 用cmake配置
# 如果配置失敗要重新配置,刪除CMakeCache.txt文件即可
$ cmake .     -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \   # 指定安裝路徑
    -DMYSQL_DATADIR=/usr/local/mysql/data/ \    # 指定數據目錄
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \   # 指定sock文件路徑
    -DWITH_INNBASE_STORAGE_EGNINE=1 \    # 安裝Innodb存儲引擎
    -DWITH_MYISAM_STORAGE_ENGINE=1 \      # 安裝myisam存儲引擎
    -DENABLED_LOCAL_INFILE=1 \    # 運行使用Load data命令從本地導入數據
    -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf-8 -DDEFAULT_COLLATION=utf8_general_ci \   # 安裝所有字符集、默認字符集utf-8、檢驗字符
    -DWITH_DEBUG=0 \    # 關閉debug
    -DWITH_EMBEDDED_SERVER=1   \   # 生成一個libmysqld.a(.so)的庫,這個庫同時集成了mysql服務與客戶端API
    -DDOWNLOAD_BOOST=1 -DENABLE_DOWNLOADS=1 -DWITH_BOOST=/usr/local/boost   # 運行boost   允許下載boost庫文件

# 解釋
$ cmake .     -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \   # 指定安裝路徑
    -DMYSQL_DATADIR=/usr/local/mysql/data/ \    # 指定數據目錄
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \   # 指定sock文件路徑
    -DWITH_INNBASE_STORAGE_EGNINE=1 \    # 安裝Innodb存儲引擎
    -DWITH_MYISAM_STORAGE_ENGINE=1 \      # 安裝myisam存儲引擎
    -DENABLED_LOCAL_INFILE=1 \    # 運行使用Load data命令從本地導入數據
    -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf-8 -DDEFAULT_COLLATION=utf8_general_ci \   # 安裝所有字符集、默認字符集utf-8、檢驗字符
    -DWITH_DEBUG=0 \    # 關閉debug
    -DWITH_EMBEDDED_SERVER=1   \   # 生成一個libmysqld.a(.so)的庫,這個庫同時集成了mysql服務與客戶端API
    -DDOWNLOAD_BOOST=1 -DENABLE_DOWNLOADS=1 -DWITH_BOOST=/usr/local/boost   # 運行boost    允許下載boost庫文件

# 編譯
$ make -j4
# 安裝
$ make install


# 5.啟動測試
$ cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
$ chmod 755 /etc/init.d/mysql   # 賦權限
$ useradd -s /sbin/nologin -r mysql    # 添加用戶
$ chown mysql:mysql /usr/local/mysql/ -R   # 修改目錄權屬
# 建立鏈接
$ ln -sf /usr/local/mysql/bin/*  /usr/bin/
$ ln -sf /usr/local/mysql/lib/*  /usr/lib/
$ ln -sf /usr/local/mysql/libexec/*  /usr/local/libexec
$ ln -sf /usr/local/mysql/share/man/man1/*  /usr/share/man/man1
$ ln -sf /usr/local/mysql/share/man/man8/*  /usr/share/man/man8

# 修改配置文件 /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql          # mysql軟件在哪
datadir=/usr/local/mysql/data   # mysql的數據在哪
socket=/usr/local/mysql/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysql.log
pid-file=/var/run/mysql.pid

# 初始化數據庫
$ /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysqld/data/
# 註意:初始化後會得到一個臨時密碼

# 啟動數據庫
$ /etc/init.d/mysql start
$ lsof -i :3306  # 查看端口情況

# 修改密碼
$ mysql_secure_installation   # 要使用剛剛得到的臨時密碼

# 登錄數據庫
$ mysql -uroot -pabc123 

3、python安裝

# 下載python包
$ wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz

# python安裝
$ tar xf python-3.7.1.tar.xz
$ cd Python-3.7.1
$ yum -y install gcc-* openssl-* libffi-devel sqlite-devel
$ ./configure --enable-optimizations --with-openssl=/usr/bin/oponssl  # --enable-optimizations是包優化參數
$ make -j4   # 由於有加配置優化,這個步驟會很久
$ make install

  python的默認安裝路徑:/usr/local/lib/python3.7

  安裝測試:

[root@web01 Python-3.7.1]# python3
Python 3.7.1 (default, Oct 27 2018, 22:51:15)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information. 
>>>
>>> exit();

  當我們從Python官方網站下載並安裝好Python 3.7後,我們就直接獲得一個官方版本的解釋 :CPython。

4、升級pip

  pip是python包管理工具,該工具提供對python包的查找、下載、安裝、卸載功能。由於我們下載了最新的python,因此需要更新pip。

$ pip3 install --upgrade pip

  如果出現報錯:pip is configured with locations that require TLS/SSL,however the ssl module in Python is not available.

  需要修改 ~/Python-3.7.1/Modules/Setup文件,將註釋去除。

211 SSL=/usr/local/ssl
212 _ssl _ssl.c 213         -DUSE_SSL -l$(SSL)/include -l$(SSL)/include/openssl 214         -L$(SSL)/lib -lssl -lcrypto

  然後重新執行make && make install。

5、安裝python虛擬環境

  virtualenv 是一個創建隔絕的Python環境的工具。

  virtualenv創建一個包含所有必要的可執行文件的文件夾,用來使用 Python 工程所需的包。

[root@web01 ~]# pip3 install virtualenv

6、使用虛擬環境及安裝django

[root@web01 ~]# virtualenv web01   # 創建環境
[root@web01 ~]# source web01/bin/activate    # 環境生效

# 前面帶有(web01)說明在環境中
(web01) [root@web01 ~]# pip3 install django
# 用django新建一個項目
(web01) [root@web01 ~]#django-admin.py startproject myweb
# django啟動
(web01) [root@web01 ~]#python3 manage.py runserver 192.168.10.42:8000
# 修改ALLOWED_HOSTS
(web01) [root@web01 ~]# vim myweb/settings.py
    ALLOWED_HOSTS = [*]

  此時在網站上可以看到django初始頁面:

  技術分享圖片

三、發布WEB

四、測試WEB

部署基於python語言的WEB發布環境