zoukankan      html  css  js  c++  java
  • Linux 首先基本包安装(vim啊什么的),源,源优化,项目架构介绍, (LNMuWsgi)Django项目相关软件mysql,redies,python(相关模块)安装配置测试

    内容

    补充:
    查看已启动服务的端口
    netstat -tulnp |grep 80(方式1)
    ss -tulnp|grep 80(方式2)
    
    前期铺垫:
    1. Linux要能上网
    2. 掌握Linux软件包安装方法
    2.1 rpm包管理
     软件包格式:名字-版本-平台-rpm
     建议:系统基础包,用光盘里的
     2.1.1 光盘挂载(为了安装基础包)
     方式1 mount /dev/sr0 /mnt(原始设备)
     方式2 mount /dev/cdrom /mnt(软连接)
     cd  /mnt
     ls
     
     2.1.2 安装包(cd 到mnt下的Packages里)(相对路径)
     rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm (普通安装 有就不安装)
     rpm -Uvh vsftpd-3.0.2-22.el7.x86_64.rpm (you更新安装,没you普通安装)
     
     2.13 卸载rpm(cd 到mnt下的Packages里)(相对路径)
     rpm -e vsftpd-3.0.2-22.el7.x86_64  (删除相关文件)
    
     2.1.4 查看是否安装
    [root@python3 ~]# rpm -q vsftpd
    vsftpd-3.0.2-22.el7.x86_64   (已安装)
    [root@python3 ~]# rpm -q vsftp
    package vsftp is not installed(没安装)
    
    [root@python3 ~]# rpm -qa (查看所有已安装)
    [root@python3 ~]# rpm -qa |grep vsf(过滤)
    
    [root@python3 ~]# which vim(查看命令的路径)
    /usr/bin/vim
    [root@python3 ~]# rpm -qf /usr/bin/vim(查看命令来自哪个包)
    
    **2.1.5 补充(依赖关系问题:例如安装B之前必须装A)
    
    A   ---->   B   ---> C
    A BC   B  DF   F AC
    #依赖解决:一起装
    rpm  -ivh  a b c d e f
    #问题2:具体依赖某个版本的问题:
    一个一个找?
    
    2.2 yum包管理器(解决rpm依赖问题版本问题)
     2.2.1 使用aliyun yum站点源(可以理解成光盘镜像)
        Base源(光盘中的软件)
        cd /etc/yum.repos.d/   (配置文件:告诉yum下载包去哪下载)
        mv *.repo test
        wget http://mirrors.aliyun.com/repo/Centos-7.repo
        
        EPEL源(扩展源)(安装了Base可以直接 yum安装EPEL源 )
        yum install -y epel-release
        
        #Extra(外部源)
        
    2.2.2 使用yum安装软件(装)
        yum install  openssl (负责https访问)(不加-y,有提示是否安装) 
        yum install -y openssl-devel 
    注意:一次性安装多个软件 要-y,openssl*,选择性安装
    
    2.2.3 yum软件包查询及组安装
    yum list  所有yum软件包,不管是否安装
    yum list |grep vsftpd 查看是否安装,有installed
    yum grouplist  所有yum软件包组(同类相同功能的归类,放到一个组)
    yum groupinstall "Development Tools" 安装一个组
    
    2.2.4 卸载软件包
    yum remove vsftpd
    
    注意:所有的软件都依赖A,把A卸载了,相当于卸载了很多软件
         例如: glibc(系统核心软件包,几乎都依赖它)
    2.2.5 优化yum源(本地,局域网)
    (1)本地镜像yum源(光盘挂载到/mnt下)(/etc/yum.repos.d只能有我们写的本地repo文件,不能有其他的 [初学者,说的不太对])
    进入yum源目录,手动写配置文件(后缀.repo)
    cd /etc/yum.repos.d
    vim local.repo
    内容
    [local]
    name=localios
    baseurl=file:///mnt       ###来自本地这样写
    gpgcheck=0                ###校验软件包的MD5值,我们自己的这里不用校验
    
    yum clean all #重新构建缓存 
    yum install -y vsftpd  #用到了本地源
    
    (2)局域网yum源(ftp)
    1.安装ftp软件
    yum install -y vsftpd
    2.启动ftp服务
    [root@python3 ~]# systemctl start vsftpd
    [root@python3 ~]# systemctl enable  vsftpd
    
    3.创建站点目录,并将光盘软件拷贝其中
    [root@python3 ~]# cp -a /mnt/*  /var/ftp/pub/centos7
    
    4.生成ftp站点的yum源配置文件
    [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
    
    
    2.3 源码包应用
    
    2.3.1 解压
    .zip 
    unzip  xxx.zip
    .tar 
    .tar.gz 
    .tgz
    .tar.bz2 
    .tar.xz
    tar xf  xxx.tar
    .iso
    mount -o loop xxx.iso  /test
    .cpio
    cpio -idcmv < xxx.cpio
    
    2.3.2 源码包安装
    (1)python3.6源码包安装
        ./configure       ------> 1 检查环境是否满足安装,定制功能(安装路径,)
         make                     2 编译 生成bytes
         make install              3 该拷贝到哪到哪,授权
         make && make install       
    
    (2) redis 源码包安装 
        make
    
    添加环境变量
    vim /etc/profile
    
    添加以下一行:
    export PATH=/opt/redis-3.2.10/src:$PATH
    
    设置后立即生效命令
    source /etc/profile
    后台启动redis服务
    redis-server &
    
    (3) 让python链接redis
    
    unzip redis-py-master.zip 
    cd redis-py-master
    python3 setup.py install   #让python能连接redis
    
    
    测试:
    python3
    >>>import redis
    >>>r = redis.StrictRedis(host='localhost', port=6379)
    >>>r.set('name', 'oldguo')
    True
    >>>r.get('name')
    'oldguo'
    
    
    3. 二进制包(安装mysql5.7.20)
    
    3.1 解压及制作软连接
    tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
    ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql
    
    3.2 编辑环境变量
    vim  /etc/profile
    添加以下一行:
    export PATH=/opt/mysql/bin:$PATH
    
    生效配置:
    source /etc/profile
    
    3.3 卸载自带mariadb
    yum remove mariadb-libs
    
    3.4 生成配置文件(/etc/my.cnf)
    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
    
    3.5 创建用户和数据目录,并授权
    useradd mysql 
    mkdir  /opt/mysql/data 
    chown -R mysql.mysql /opt/mysql
    
    
    3.6 初始化数据
    
    [root@python3 ~]# mysqld --initialize-insecure --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql
    
    2019-01-04T03:58:03.128958Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2019-01-04T03:58:03.142436Z 0 [ERROR] Could not open file '/var/log/mysql.log' for error logging: Permission denied
    2019-01-04T03:58:03.142492Z 0 [ERROR] Aborting
    
    报错解决:
    touch /var/log/mysql.log 
    chown -R mysql.mysql /var/log/mysql.log
    
    
    再次初始化:
    mysqld --initialize-insecure --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql
    
    
    3.7 启动mysql服务 
    cd /opt/mysql/support-files
    ./mysql.server start   #mysql提供的启动脚本
    
    cp mysql.server /etc/init.d/mysqld
    
    /etc/init.d/mysqld restart
    
    
    扩展:使用systemctl 管理mysqld
    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
    
    
    systemctl restart mysqld
    
    netstat -tulnp |grep 3306
    
    
    3.8 测试python3链接mysql
    
    创建mysql链接用户
    
    grant all on *.* to root@'10.0.0.%' identified by '123';
    create database bbs charset utf8;
    
    测试:
    pip3 install --upgrade pip
    pip3 install pymysql
    
    vim testmysql.py
    #!/usr/bin/python3
    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()
    
    python3  testmysql.py 
    
    
    
    4.经典互联网架构项目(LNMP)
    
    LNMPT =  Linux  Nginx  MySQL  PHP  
    LNMPJ =  Linux  Nginx  MySQL  PHP 
    
    
    LNMP架构环境部署
    1) 使用官方Nginx yum源
    
    [root@nginx ~]# vim /etc/yum.repos.d/nginx.repo 
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1
    
    #安装Nginx
    yum install nginx -y
    2)启动
    systemctl start nginx
    systemctl enable nginx 开机自启
    3) 使用第三方扩展源安装php7.1
    
     rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
     rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    
    [root@nginx ~]# yum remove php-mysql-5.4 php php-fpm php-common
    [root@nginx ~]#  vim  /etc/yum.repos.d/php.repo
    [php]
    name = php Repository
    baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
    gpgcheck = 0
    
    [root@nginx ~]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
    3) 配置php-fpm用户与Nginx的运行用户保持一致
    
    [root@nginx ~]# sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf 
    [root@nginx ~]# sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf
    4) 启动php-fpm,并将其加入开机自启
    
    [root@nginx ~]# systemctl start php-fpm
    [root@nginx ~]# systemctl enable php-fpm
    5) 安装mysql数据库
    
    [root@nginx ~]# mysqladmin password '123'
    [root@nginx ~]# mysql -uroot -p123
    2.LNMP架构环境配置
    
    
    vim   /etc/nginx/conf.d/php.conf 
    server {
            server_name 10.0.0.12;
            listen 80;
            root /code/wordpress;
            index index.php index.html;
    
            location ~ .php$ {
                root /code/bbs;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
    }
  • 相关阅读:
    windows下python开发环境搭建
    看看两年前的我
    网络函数[00]函数总述
    网络函数[04]connect解析
    网络函数[08]网络读取函数解析
    网络函数[01]套接口地址图解
    网络函数[13]
    网络函数[07]accept解析
    网络函数[10]shutdown解析
    网络函数[14]
  • 原文地址:https://www.cnblogs.com/3sss-ss-s/p/10226613.html
Copyright © 2011-2022 走看看