Linux(三)—— 項目部署環境搭建

項目部署環境搭建

1、linux上網

安裝好linux系統後,就配置好了python

2、rpm包管理

一、光盤掛載

mount /dev/cdrom /mnt     # 掛載
 cd  /mnt     # 進入mnt目錄
 ls    # 查看

二、安裝卸載rpm包

  • 進入Packages中才能安裝軟件
rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm(包名-版本號.平臺)     # 安裝
 rpm -Uvh vsftpd-3.0.2-22.el7.x86_64.rpm    # 有就更新,沒有就安裝
rpm -e vsftpd-3.0.2-22.el7.x86_64    # 卸載

三、查詢是否安裝

rpm -q vsftpd(軟件包名)     # 查詢
rpm -qa |grep vsf     # 模糊查詢

四、查看軟件包

which vim     # 查看命令的具體路徑  /usr/bin/vim
rpm -qf  /usr/bin/vim     # 查看命令來自哪一個軟件包

五、互相依賴關係的軟件包

rpm -ivh a b c d e    # 全部軟件包一塊兒安裝

3、yum包管理

一、使用aliyun的yum源

# 1.安裝BASE源
cd /etc/yum.repos.d/      # 切換到源的配置文件
mv *.repo /tmp     # 將系統自帶的源清除
wget http://mirrors.aliyun.com/repo/Centos-7.repo       # 下載安裝centos
    
# 2.安裝EPEL源
yum install -y epel-release

二、使用yum安裝軟件

[root@python3 ~]# yum install openssl
yum install openssl-devel

三、查看yum源的軟件包

yum list
yum list |grep vsftpd()  # 查看vsftpd開頭的全部軟件包
yum grouplist    # 查看全部的組
yum groupinstall "Developement Tools"  # 安裝一個組的軟件包

四、刪除軟件包

yum remove aaaa(軟件包名)

五、優化yum源

(1)使用本地源

# 1.將原來的包移除
mv *.repo ali
# 2.建立源
vim local.repo
# 3.編輯,內容以下:
    [local]
    name=localios
    baseurl=file:///mnt
    gpgchech=0
# 4.清空原來的源
yum clean all
# 5.下載
yum install -y vsftpd

(2)局域網yum源配置

# 1.安裝ftp軟件
yum install -y vsftpd

# 2.啓動ftp服務
[root@python3 ~]# systemctl start vsftpd
[root@python3 ~]# systemctl enable  vsftpd

# 3.建立站點目錄,並將光盤軟件拷貝到其中
mkdir /var/ftp/pub/centos7
[root@python3 ~]# cp -a /mnt/* /var/ftp/pub/centos7

# 4.生成ftp站點的yum源配置文件
vim ftp.repo   # 建立並進入編輯
# 編輯內容以下:
    [ftp]
    name=centos7
    baseurl=ftp://10.0.0.100/pub/centos7
    gpgcheck=0

# 5.安裝測試軟件
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++  openssl-devel zlib zlib-devel -y

4、源碼包應用

0、源碼包解壓縮

# .zip文件解壓縮
unzip xxx.zip

# .tar / .tar.gz / .tgz / .tar.bz2 / .tar.xz解壓
tar xf xxx.tar

# .iso使用
mount -o loop xxx.iso  /test    # .iso文件使用,必需要先掛載到某處再使用

# .cpio(早起文件的打包方式)
cpio -idcmv < xxx.cpio

一、python3.6安裝

# 1.現將源碼文件壓縮包拖入在opt目錄中
cd /opt    # 進入opt目錄
ls     # 查看opt目錄下全部的文件,顯示爲紅色的壓縮包

# 2.python使用c編譯,現狀gcc環境
[root@py3 opt]# yum install gcc*    # 安裝全部gcc包

# 3.安裝openssl,支持訪問http站點
[root@py3 opt]# yum install -y openssl

# 4.解壓
[root@py3 opt]# tar xf Python-3.6.1.tar.xz

# 5.進入目錄,配置
[root@py3 opt]# cd Python-3.6.1/
[root@py3 Python-3.6.1]# ./confugure        # 定製功能,檢查是否知足軟件包的安裝

# 6.編譯c源碼生成二進制
make

# 7.完善編譯,完成拷貝受權
make install

二、mysql源碼包安裝

cmake    # 定製功能
make   # 編譯
make install    # 受權拷貝

三、redis源碼包安裝

# 1.現將源碼文件壓縮包拖入在opt目錄中
cd /opt    # 進入opt目錄
ls     # 查看opt目錄下全部的文件,顯示爲紅色的壓縮包

# 2.解壓
[root@py3 opt]# tar xf redis-3.2.10.tar.gz

# 3.進入目錄
[root@py3 opt]# cd redis-3.2.10/

# 4.編譯c源碼生成二進制
[root@py3 redis-3.2.10]# make

# 5.設置環境變量
vim /etc/profile
    # 在文件最後一行加上
    export PATH=/opt/redis-3.2.10/src:$PATH

# 六、生效
source /etc/profile

# 7.啓動
[root@py3 ~]# redis-server &

# 8.python鏈接redis
[root@py3 opt]# unzip redis-py-master.zip      # 解壓驅動包
cd redis-py-master    # 進入驅動目錄
[root@py3 redis-py-master]# python3 setup.py install          # 手動安裝python包

# 9.測試python鏈接redis
python3
>>>import redis
>>>r = redis.StrictRedis(host='localhost', port=6379)
>>>r.set('name', 'oldguo')
True
>>>r.get('name')
'oldguo'

5、二進制包使用(mysql安裝)

例如:mysql5.7.20二進制包安裝mysql

useradd mysql 
mkdir  /opt/mysql/data 
chown -R mysql.mysql /opt/mysql# 1.現將源碼文件壓縮包拖入在opt目錄中
cd /opt    # 進入opt目錄,手動拖入
ls     # 查看opt目錄下全部的文件,顯示爲紅色的壓縮包

# 能夠設置一個軟連接(快捷方式)
[root@py3 opt]# ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql

# 2.設置環境變量
vim  /etc/profile
    # 編輯環境變量,添加內容以下:
    export PATH=/opt/mysql/bin:$PATH

# 3.生效配置
source /etc/profile

# 4.卸載自帶的mariadb
yum remove mariadb-libs

# 5.生成配置文件
vim /etc/my.cnf   # 進入配置文件
    #內容以下:
        [mysqld]
        basedir=/opt/mysql
        datadir=/opt/mysql/data
        socket=/tmp/mysql.sock
        user=mysql
        log_error=/var/log/mysql.log
        log_bin=/opt/mysql/data/mysql-bin
        server_id=100
        [mysql]
        socket=/tmp/mysql.sock

# 6.建立用戶和數據目錄,並受權
[root@py3 ~]# useradd mysql     # 建立用戶
[root@py3 ~]# mkdir  /opt/mysql/data     # 建立目錄
[root@py3 ~]# chown -R mysql.mysql /opt/mysql     # 受權

# 7.初始化數據
[root@py3 ~]# touch /var/log/mysql.log        # 建立空文件
[root@py3 ~]# chown -R mysql.mysql /var/log/mysql.log       # 受權
[root@py3 ~]# mysqld --initialize-insecure --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql       # 初始化 

# 8.啓動mysql數據庫
cd /opt/mysql/support-files
[root@py3 support-files]# ./mysql.server start
[root@py3 support-files]# cp mysql.server /etc/init.d/mysqld        # 方便之後啓動

# 拷貝完之後,啓動mysql
/etc/init.d/mysqld restart

# 或者使用systemctl啓動
    # 生成配置文件
    vim /etc/systemd/system/mysqld.service
        # 編輯內容以下:
        [Unit]
        Description=MySQL Server
        Documentation=man:mysqld(8)
        Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
        After=network.target
        After=syslog.target

        [Install]
        WantedBy=multi-user.target
        [Service]
        User=mysql
        Group=mysql
        ExecStart=/opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf
        LimitNOFILE = 5000
    # 啓動關閉
    [root@py3 support-files]# systemctl start mysqld
    [root@py3 support-files]# systemctl restart mysqld
    [root@py3 support-files]# systemctl stop mysqld
    # 注意不能兩種啓動凡是混合使用

# 9.測試mysql
[root@py3 ~]# mysql


# 10.python鏈接mysql測試
mysql>grand all on *.* root@'10.0.0.100' idenitfied by '123';       # 受權用戶
mysql>create database bbs charset utf8;      # 建立數據庫

    # 安裝python鏈接mysql的包
    [root@py3 ~]# pip3 install --upgrade pip     # 更新pip
    [root@py3 ~]# pip3 install pymysql     # 安裝pymysql
    # 測試python程序
    vim test.py
        # 測試內容
            import pymysql
            db = pymysql.connect("10.0.0.100","root","123","bbs" )
            cursor.execute("SELECT VERSION()")
            data = cursor.fetchone()
            print ("Database version : %s " % data)
            db.close()
    # 執行python文件
    [root@py3 ~]# python3 test.py

6、運行Django項目

一、安裝依賴包

[root@web01 ~]# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++  openssl-devel zlib zlib-devel -y

二、安裝測試Django框架和uwsgi

(1)安裝Django框架和uwsgi

# 方式一:從官網下
pip3 install uwsgi
pip3 install django
pip3 install other
pip3 install bs4

# 方式二:從國內下
vim  re.txt
    # 內容:
    asn1crypto==0.24.0
    beautifulsoup4==4.6.3
    bs4==0.0.1
    certifi==2018.4.16
    cffi==1.11.5
    chardet==3.0.4
    Click==7.0
    cryptography==2.3.1
    Django==1.11.9
    Flask==1.0.2
    Flask-Cors==3.0.6
    gevent==1.3.6
    greenlet==0.4.15
    idna==2.7
    ItsDangerous==1.1.0
    Jinja2==2.10
    lxml==4.2.6
    MarkupSafe==1.0
    numpy==1.15.3
    Pillow==5.3.0
    pycparser==2.18
    PyMySQL==0.9.2
    pytz==2018.7
    requests==2.19.1
    selenium==3.141.0
    six==1.11.0
    urllib3==1.23
    virtualenv==16.1.0
    Werkzeug==0.14.1
    wordcloud==1.5.0
# 從豆瓣上下載Django和uwsgi等包
pip3 install -i https://pypi.doubanio.com/simple/ -r re.txt

(2)測試uwsgi

# 測試uwsgi
# 普通用戶測試

[root@py3 ~]# useradd test
[root@py3 ~]# cd /opt
[root@py3 opt]# vim test.py
[root@py3 ~]# su - test         # 切換用戶,用普通啓動uwsgi 
[test@py3 ~]# cd /opt
# 內容:
    def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return [b"Hello Django"]
[test@py3 opt]# uwsgi --http :8001 --wsgi-file test.py &          # 運行test文件

# 啓動uwsgi之後,運行test.py,瀏覽器訪問10.0.0.100:8001,成功則訪問到Hello Django

(3)測試Django項目

# 測試Django
[root@web01 ~]# django-admin.py startproject demosite         # 生成一個空的Django項目
[root@web01 ~]# cd demosite     # 進入demosite項目
[root@web01 demosite]# python3 manage.py runserver 0.0.0.0:8002      # 啓動Django項目

# 將項目中的setting.py文件中的 ALLOWED_HOSTS=[]修改成ALLOWED_HOSTS=['*'],使全部地址均可以訪問
# 在瀏覽器中,測試是否運行成功,10.0.0.100:8002  ,成功則訪問到空Django頁面

三、配置uwsgi與nginx

  • uwsgilinux

    Django 所提供的是一個開發服務器,這個開發服務器,沒有通過安全測試,並且使用的是 Python 自帶的 simple HTTPServer 建立的,在安全性和效率上都是不行的
    
    而uWSGI 是一個全功能的 HTTP 服務器,他要作的就是把 HTTP 協議轉化成語言支持的網絡協議。好比把 HTTP 協議轉化成 WSGI 協議,讓 Python 能夠直接使用
  • nginx
    Nginx是一個輕量級、高性能、穩定性高、併發性好的HTTP和反向代理服務器ios

    正向代理:某些狀況下,代理咱們用戶去訪問服務器,須要用戶手動的設置代理服務器的ip和端口號。
    反向代理:是用來代理服務器的,代理咱們要訪問的目標服務器。
        代理服務器接受請求,而後將請求轉發給內部網絡的服務器(集羣化),
        並將從服務器上獲得的結果返回給客戶端,此時代理服務器對外就表現爲一個服務器

(1)配置uwsgi

# 1.配置
[root@web01 demosite]# vim /root/demosite/uwsgi.ini      # 編輯uwsgi的配置文件
# 內容以下:
    [uwsgi]
    socket = 127.0.0.1:9999
    master = true
    workers = 2
    max-requests = 1000
    buffer-size = 30000
    pidfile = /run/uwsgi.pid
    daemonize = /var/log/uwsgi.log

# 2.啓動uwsgi
[root@web01 demosite]# uwsgi --ini /root/demosite/uwsgi.ini &

(2)配置nginx

# 1.配置nginx
[root@web01 demosite]# vim /etc/nginx/conf.d/py.conf
# 編輯內容:
    server {
        listen 80;
        server_name 10.0.0.100;
        client_max_body_size 100M;

        location / {
            index index.html;
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:9999;
            uwsgi_param UWSGI_SCRIPT demosite.wsgi;    # demosite.wsgi 是
            uwsgi_param UWSGI_CHDIR /root/demosite;       # /root/demosite 是項目目錄
        }
    }

# 2.重啓nginx
[root@web01 demosite]# systemctl restart nginx

(3)測試

瀏覽器訪問10.0.0.100,不用輸端口號,就能夠訪問Django的項目的頁面
相關文章
相關標籤/搜索