• Linux(三)—— 项目部署环境搭建


    项目部署环境搭建

    一、linux上网

    安装好linux系统后,就配置好了

    二、rpm包管理

    1、光盘挂载

     mount /dev/cdrom /mnt     # 挂载
     cd  /mnt     # 进入mnt目录
     ls    # 查看
    

    2、安装卸载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    # 卸载
    

    3、查询是否安装

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

    4、查看软件包

    which vim     # 查看命令的具体路径  /usr/bin/vim
    rpm -qf  /usr/bin/vim     # 查看命令来自哪个软件包
    

    5、互相依赖关系的软件包

    rpm -ivh a b c d e    # 所有软件包一起安装
    

    三、yum包管理

    1、使用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
    

    2、使用yum安装软件

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

    3、查看yum源的软件包

    yum list
    yum list |grep vsftpd()  # 查看vsftpd开头的所有软件包
    yum grouplist    # 查看所有的组
    yum groupinstall "Developement Tools"  # 安装一个组的软件包
    

    4、删除软件包

     yum remove aaaa(软件包名)
    

    5、优化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
    

    四、源码包应用

    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
    

    1、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
    

    2、mysql源码包安装

    cmake    # 定制功能
    make   # 编译
    make install    # 授权拷贝
    

    3、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
    
    # 6、生效
    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'
    

    五、二进制包使用(mysql安装)

    例如:mysql5.7.20二进制包安装

    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
    

    六、运行Django项目

    1、安装依赖包

    [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
    

    2、安装测试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页面
    

    3、配置uwsgi与nginx

    • uwsgi

      Django 所提供的是一个开发服务器,这个开发服务器,没有经过安全测试,而且使用的是 Python 自带的 simple HTTPServer 创建的,在安全性和效率上都是不行的
      
      而uWSGI 是一个全功能的 HTTP 服务器,他要做的就是把 HTTP 协议转化成语言支持的网络协议。比如把 HTTP 协议转化成 WSGI 协议,让 Python 可以直接使用
      
      
    • nginx
      Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器

      正向代理:某些情况下,代理我们用户去访问服务器,需要用户手动的设置代理服务器的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的项目的页面
    
  • 相关阅读:
    soa
    最短路径分词
    Collector
    solr params.json
    oracle第一章
    记一次web项目总结
    java.util 类 TreeSet<E>
    自定义jstl标签库
    java二维数组简单初步理解
    Java中Array的常用方法
  • 原文地址:https://www.cnblogs.com/linagcheng/p/10235094.html
Copyright © 2020-2023  润新知