Linux从入门到入门

一、 前言

首先,在你的Windows系统上要想有linux系统,那就必须先安装一款软件,这里提供的是14、15的,还有ISO镜像VMware-workstation

安装VMware:略

新建虚拟机之前将ISO镜像加到配置,不然无法启动虚拟机,详见:CentOS 7的安装教程

注意:安装Linux操作系统时对内存的最低要求为:512M

二、 Linux虚拟机配置

  • 常用软件包安装
yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc net-tools
  • 网络配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
	
ONBOOT=“yes”
BOOTPROTO=“static”
IPADDR=10.0.0.100    # IP地址
NETMASK=255.255.255.0  # 子网掩码
GATEWAY=10.0.0.254    # 网关

重启网卡:
/etc/init.d/network restart
	
DNS配置:
vim /etc/resolv.conf 
nameserver 114.114.114.114
nameserver 223.5.5.5
	
配置完成之后就可以使用ping命令,如:ping baidu.com
  • 主机名配置
hostnamectl set-homename 主机名  
  • ip配置
# ​方法1
vim /etc/hosts进入文件编辑,输入:10.0.0.100 主机名,保存退出
# 方法2
echo '10.0.0.100' 主机名>>/etc/hosts

然后执行命令:ping 主机名,能ping通就说明OK了
  • 防火墙配置
# 检查防火墙是否开启
    iptables -L
# 临时关闭防火墙
    iptables -F
    service iptablesa stop
# 永久关闭防火墙 
    systemctl disable firewalld

# 查询selinux防火墙
    getenforce(Enforcing 强制)
# 临时关闭
    setenforce 0
# 永久关闭
    vim /etc/selinux/config 修改:SELINUX=disabled
# 重启虚拟机

三、 常用快捷键

退出当前用户: Ctrl + d
查找: Ctrl + r
历史: history
锁屏: Ctrl + s
解锁: Ctrl + q
关机: poweroff
重启: reboot

四、 常用命令

命令格式:命令 [选项] [参数]

关机:init 0
切换用户:Ctrl+Alt[F1~F6]
退出: exit
浏览:
    ls(当前文件夹下)
    ls -l 详细信息
    ll 详细信息
    ls -a 显示隐藏文件
    ls -ltr /var/log/ (时间倒序排列)
切换到当前用户的家目录: cd ~ 如:cd ~之后,pwd一下,会得到/root
返回上一次的目录: cd -
返回根目录: cd
日期:
    date
    date '月日时分年'(同步系统时间)
    hwclock -s(同步硬件时间)
万年历 :
    cal
    cal 月 年
清空屏幕:
    ctrl+l
    clear
帮助信息:
    man 
     --help
    info

五、 目录(d)相关操作

创建目录: 
	mkdir 文件名(指定路径,相对或绝对)
	mkdir -p /a/b/c 级联创建目录
	小技巧:
		mkdir a{1..10}  批量创建多个目录
查询目录:
	ls
	ls -ld   查看单层目录
	tree /a  查看多层目录
	tree -L 1 只查看一层
	小技巧:
		ls -ld dir*  迷糊查询
修改目录:
	1. 剪切: 
		mv /原路径 /目标路径
		mv /原路径 /目标路径/重命名
		mv /原文件名 /新文件名
	2. 拷贝:
		cp    原路径     目标路径/重命名
		cp -r /root/test /opt/new(拷贝目录)
		cp -a (带源文件的属性拷	
删除目录:
	rm -rf /路径
	rm -rf 多个文件
通过文件句柄找回丢失数据(不能重启,不能继续写入)

六、 普通文件(-)相关操作

种类:
    ASCII TEXT:纯文本
    LSB Exe:二进制可执行文件(命令、程序)
    压缩文件:zip、tar、gz、cpio、iso、bz2
    二进制数据文件等

文件创建:
	创建空文件: touch a.txt
	删除文件: rm -rf a.txt
	文件查看: 
		查看基本信息: ls -l a.txt
		查看文件内容:
			cat a.txt   适合小文件内容查看,可同时查看多个文件
			cat -n a.txt   带序号显示
			more a.txt   分页显示,查看大文件,不可上下翻页
			less a.txt   分页,可上下翻页查看
			head a.txt    查看前十行信息
			head -n3 a.txt  查看前三行信息
			tail a.txt    查看后十行信息
			tail -f   监控
	文件操作:
		复制:cp 不用加 -r 
		剪切:mv 的用法同目录操作
	文件内容编辑:
		1. 重定向:
			>  覆盖重定向
			>> 追加重定向
			cat /etc/passwd >>a.txt
			echo 
		2. vim编辑器:
			a:命令模式(初始模式)
					1. 查看文件内容,移动光标,page up或down翻页
					2. G,1G(gg),10G(最后一行, 第一行,第10行)
					3. $行尾 ^行首
					4. /搜索内容  高亮显示
					5.  yy  复制光标所在行
						Nyy 复制N行
						dd  删除/剪切
						Ndd 删除/剪切N行
						p   粘贴
						x(delete) 删除光标所在的单个字符
						dG 光标删除至文本末尾
						d$ 光标所在删除到行末,包括光标所在字符
						d^ 光标所在删除到行首,不包括光标字符
						r  替换光标所在的单个字符
						u 撤销
						ZZ 保存退出
			b:编辑模式
                i 光标字符之前插入数据
                o 光标所在的下一行插入数据,新起一行
                a 光标字符之后插入数据
                A 行末录入数据
                I 行首录入数据
                O 上一行录入数据
                退出编辑模式:按Esc,退回到命令模式
			c:末行模式
				命令模式下按:进入
				强制退出: :q!
				保存退出: :wq
				显示行号: :set nu
				不显示行号: :set nonu
				批量替换: :%s/root/ROOT/g

七、 磁盘 & 文件系统

  • 磁盘分区和格式化

不同的操作系统具有不同的硬盘分区工具,Windows系统下非常有名的分区工具是FDISK,在LINUX系统下进行分区可以使用fdisk,或者使用相同功能的图形界面程序,在一块硬盘上最多只能有4个分区,通过分区当然不能产生任何文件系统。在分区之后只是对硬盘上的磁盘空间进行了保留,还不能直接使用。分区后必须要进行格式化。在Windows系统下可以通过资源管理器下的文件菜单或者format程序来执行,在Linux系统下大多使用mkfs命令来完成。Linux支持不同的文件系统,应用最广泛的是ext3。

注意:进行任何磁盘分区或大小改动工作,都会丢失以前的数据,因此在分区之前一定要对数据进行备份。

  • 硬盘分区 & 格式化
查看磁盘:
	ls -l
	fdisk -l
分区:
	fdisk /dev/sdb  ---> 进入
	n 新建
	p 查看现有分区
	w 保存退出
格式化成文件系统:XFS
	mkfs.xfs /dev/sdb1/
挂载设备:
	挂载点(空目录):mkdir /data
	挂载: mount /dev/sdb1 /data
	查看磁盘使用情况: df -h
自动挂载的配置文件:
	vim /etc/fstab
	/dev/sdb1   /data xfs   defaults 0 0
	# 磁盘路径    挂载到哪     什么格式
注:最好用uuid替换磁盘路径 UUID=asia-fofe-sada-123 /data xfs defaults 0 0 查看挂载设备信息: blkid
  • 补充RAID

  磁盘阵列(Redundant Arrays of Independent Drives,RAID)

功能:

  • 1. 聚合多块磁盘的容量,提供更大的储存空间
  • 2. 高性能的并发存取(IO)
  • 3. 数据物理层面的安全性更高(做成镜像关系)

RAID级别:

  1. raid0 条带化功能,性能极高,无安全性,至少2块盘
  2. raid1 磁盘镜像(把一个磁盘的数据镜像到另一个磁盘上),性能无明显提升,安全性高,浪费一半的空间
  3. raid1+0: 至少需要4块盘,镜像+条带化,兼顾性能与安全,成本较高,浪费一半空间
  4. raid5: 分布式奇偶校验的独立磁盘结构,至少3块盘,存储数据时计算校验值,写入性能低,读的速度较快,适用于读多写少的场景

八、 用户、组、 权限

更多请访问网址: http://www.cnblogs.com/linhaifeng/articles/6045600.html#_label7

  • 用户
1. 用户及passwd文件
        /etc/passwd文件:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database)。
        /etc/passwd文件每个字段的具体含义:
            字段1: 记录的是这个用户的名字(在创建用户时root用户起的)。
            字段2: 如果是x,表示该用户登录Linux系统时必须使用密码;如果为空,则该用户在登录时无须提供密码。
            字段3: 记录的是这个用户的uid。注意:(0-1000系统占用)uid为0,是root用户
            字段4: 记录的是这个用户所属群组的gid。
            字段5: 记录的是有关这个用户的注释信息(如全名或通信地址)。
            字段6: 记录的是这个用户的家目录的路径。
            字段7: 记录的是这个用户登录后,第一个要执行的进程
	
2. 用户管理:
		了解useradd命令的常用选项:
            –u: 指定用户的UID
            –g: 指定用户所属的群组
            –d: 指定用户的家目录
            –c: 指定用户的备注信息
            –s: 指定用户所用的shell(/bin/bash 或者 /sbin/nologin)
        eg:
            创建用户: useradd [-u 1001 -g 1001 -d /home -c bigman -s /bin/bash] rongge
            查看用户信息: 
                id 用户名
                tail -1 /etc/passwd
            查看当前登录用户:whoami or who
            设置密码: passwd 用户名
            切换用户: su - 用户名
            删除用户: userdel -r 用户名
            修改用户: usermod -u uid 用户名
        
3. 创建一个用户涉及到的5个文件,eg(useradd test):
        家目录: ls /home/
        密码目录: ls /etc/passwd
        密码详情目录: ls /etc/shadow
        组目录: ls /etc/gorup
        组密码目录: ls /etc/gshadow
        邮箱目录: ls /var/spool/mail/
重点:在Linux中,一切皆文件,所以新创建的用户也是一个文对象!
GID,组名
组管理:
        创建组: groupadd [-g 1001] 组名
        查看组: 
            cat /etc/group
            tail -1 /etc/group
        删除组: groupdel 组名
        修改组的id: groupmod -g 10001 组名
  • 权限
作用在文件上的属性
普通权限的规划:
	r 读   4
	w 写   2
	x 执行 1

九、 程序管理 & 网络管理

  • 程序管理

# 查看操作系统的进程状态: 
    ps
    ps -ef |grep 进程名  查看特定的进程
    ps aux | head -3    查看前三行的进程
# 杀死进程:
    kill 进程号
    kill -9 进程号  强制杀死
    pkill 进程名
# 服务的操作:
    systemctl start 服务
    systemctl restart 服务
    systemctl stop 服务
  • 网络管理

# 查看地址:
    ip a
    ifconfig
# 修改地址:
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
# 重启网络:systemctl restart network
# 查看启动服务的端口: netstat -tulnp

十、 软件包管理

  • rpm
# 光盘挂载:
    mount /dev/cdrom /mnt
    cd/mnt/package
    查看软件包个数: ls -l |wc -l
# 软件包的安装:
    rpm -ivh 软件包名.rpm
    rpm -Uvh 软件包名.rpm(更新安装)
# rpm包的查询:
    rpm -q 完整的软件包名      安装显示
    rpm -qa         显示所有
    rpm -qa |grep   包名(过滤显示)
# 软件包的卸载: 
    rpm -e 软件包名(正常卸载)
# 查看命令的具体路径:
    which vim
# 查询命令来自哪个软件包:    
    rpm -qf 命令文件路径
# 查看安装软件的文件:
    rpm -ql 软件包名
# 依赖安装:
    rpm -ivh a b c d(还是严格依赖版本号)
  • yum

安装yum:
    yum配置文件(yum源)cd /etc/yum.repos.d
    移除Base源:mv *.repos /tmp
    从ali获取Base源,并安装: wget http://mirrors.aliyum.com/repo/Centos-7.repo
    安装epel源: yum install -y epel-release
 
使用yum安装软件:
    yum install openssl -y  (证书软件)
    yum install openssl-devel -y    (支持软件)
    yum groupinstall "组名"       安装一个组的软件包
查询软件包:
    yum list |grep python
    yum grouplist 
卸载软件包:
    yum remove 
优化yum源:
    移走网络的yum: 
        mkdir ali
        mv *.repo ali
    1. 设置本地的yum源:
        先将光盘挂载到mnt目录
        vim /etc/yum.repos.d/loacal.repo
            [local]
            name=localiso
            baseurl=file:///mnt
            gpgcheck=0
    使用:
        先清除缓存的yum:
            yum clean all
        安装软件:
            yum install 软件名 -y
    2. 局域网yum源  
        安装ftp软件:yum install vsftpd -y 
        启动ftp: 
            systemctl start vsftpd
            systemctl enable vsftpd
        创建站点目录,将光盘镜像拷贝到文件目录
            mkdir /var/ftp/pub/centos7
            cp -a /mnt/* /var/ftp/pub/centos7
        生成ftp站点的yum源的配置文件
            cd /etc/yum.repos.d/
            vim ftp.repo
                [ftpd]
                name=centos7
                baseurl=ftp://ip地址/pub/centos7
                gpgcheck=0
        测试安装:
            yum clean all
            yum install 软件名
  • 源码包

zip 解压: unzip xxx.zip
tar 解压: tar xf xxx.tar
tar.gz
tar.xz
tgz
iso  需挂载使用: mount -o loop xxx.iso /test
下载redis
    wget http://download.redis.io/releases/redis-3.2.10.tar.gz
redis安装
    tar xf redis-3.2.10.tar.gz
    cd /redis-3.2.10
        make
添加环境变量        
    vim /etc/profile        
        末尾行添加: export PATH=/opt/redis-3.2.10/src:$PATH        
保存后让它生效:source /etc/profile        
启动服务: redis-server & 
查看服务: netstat -tulnp|grep redis
连接服务: redis-cli
python连接redis:    
    1. unzip redis-py-master.zip    
    2. cd redis-py-master    
    3. python3 setup.py install    
本地连接测试
    对redis的单实例进行连接操作
        python3
        >>>import redis
        >>>r = redis.StrictRedis(host='localhost', port=6379)
        >>>r.set('name', 'oldguo')
        True
        >>>r.get('name')
        b'oldguo'
Redis源码包的安装
源码包安装的流程(python3.6):
先到官网下载Linux系统的源码包:Python-3.6.7.tar.xz
解压文件:tar xf Python-3.6.7.tar.xz
安装依赖环境:
    yum install openssl openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ zlib zlib-devel -y
配置:
    cd Python-3.6.7
    ./configure        定制功能
编译为二进制文件并拷贝:
    make && make install
python源码包的安装
  • 二进制包

将MySQL解压到opt目录:tar xf mysql-5.7.20-linux-......gz
软链接: ln -s 。。。。。 mysql
编辑环境变量:
    vim /etc/profile
        末尾行添加: export PATH=/opt/mysql/bin:$PATH
        生效: source /etc/profile
卸载自带的 mariadb库:
    yum remove mariadb-libs
生成配置文件(/etc/my.cnf):
    vim /etc/my.cnf
    [mysqld]
        basedir=/opt/mysql
        datadir=/opt/mysql/data
        socket=/tmp/mysql.sock
        log_error=/var/log/mysql.log
        log_bin=/opt/mysql/data/mysql-bin
        server_id=100
    [mysql]
        socket=/tmp/mysql.sock
        
创建用户&数据目录,并授权:
    useradd mysql
    mkdir /opt/mysql/data
    chown -R mysql.mysql /opt/mysql
初始化数据:
    mysqld --initialize-insecure --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql
    共享库问题报错:
    mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
    解决:
        yum install -y libaio
    
    权限问题报错:
2019-04-19T09:39:31.312685Z 0 [ERROR] Could not open file '/var/log/mysql.log' for error logging: Permission denied
2019-04-19T09:39:31.312901Z 0 [ERROR] Aborting
    解决:touch /var/log/mysql.log
    授权:chown -R mysql.mysql /var/log/mysql.log
启动数据库:方法1
    cd /opt/mysql/support-fiels
    ./mysql.server start
    
为方便启动:方法2
    cp mysql.server /etc/init.d/mysqld
    /etc/init.d/mysqld start
    
扩展:方法3(systemctl方法)
    使用 systemctl 管理mysql
    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 start mysqld
创建mysql链接用户,进入mysql授权
    grant all on *.* to root@'10.0.0.%' identified by '123';

安装pymysql
    pip3 install pymysql

进入mysql测试:
    vim testmysql.py
    #!/usr/bin/python3
    import pymysql
    db = pymysql.connect("10.0.0.100","root","123","bbs" )
    cursor = db.cursor()
    cursor.execute("SELECT VERSION()")
    data = cursor.fetchone()
    print ("Database version : %s " % data)
    db.close()

执行py文件: python3 testpython.py
MySQL的安装

十一、服务

  • ssh服务

安装ssh: yum install ssh -y
查看:rpm -qa | grep openssh
服务端启动ssh: service sshd status
客户端连接ssh: ssh ip地址 
修改ssh配置: vim /etc/ssh/sshd_config
    默认端口22
重启服务: service sshd restart
​
ssh启动优化:
    配置文件中:/etc/ssh/sshd_config 将UseDNS改为no
    hosts文件添加ip地址和主机名
  • http服务

部署网页服务:
    准备环境: 关防火墙、配ip
    安装: yum install httpd -y
    修改配置文件:vim /etc/httpd/conf/httpd.conf
    Listen 80
    DocumentRoot 路径/var/www/html
    重启: service httpd restart
        echo 'test' >> /var/www/html/index.html
    测试: 打开浏览器输入
        http://服务端ip:端口/
  • samba服务

samba是一个网络服务器,用于Linux和Windows之间共享文件
'''
注意:
客户端要对目录是否有权限,必须samba软件放权+系统放权
每个用户的访问方式是:\服务端ip用户名,默认访问自己的家目录(该用户对该目录有w权限,且samba对用户的家目录开启了writeable=yes的权限)
对于共享的目录,是所有人打开目录进行操作的,而不是一个打印机,所以printable一定要设置no
writeable=no,write list=user1,user2代表所有人都没有写权限,唯独user1和user2有
'''
安装: yum install samba -y
修改配置: vim /etc/samba/smb.conf
    samba安全认证掌握两种:share(匿名访问)、user(用户名密码)
    security=user、share
启动: service smb start
重启: service smb restart
关闭: service smb stop
添加smb用户和设置密码:
    useradd 用户名
    smbpasswd –a 用户
[common]
comment = ......   设置共享注译
path =    设置共享目录的物理路径
valid users = @组名,用户名   设置允许哪些合法组或用户访问
public = yes|no  设置共享资源是否能给游客帐号访问
browseable = yes|no  设置该共享为隐藏共享
writable = yes|no 设置是否允许客户端写入数据
hosts allow =  设置允许访问该共享的合法网段或IP
  • Nginx服务

使用官方Nginx yum源
    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
​
启动Nginx,并将Nginx加入开机自启:
    systemctl start nginx
    systemctl enable nginx
查看启动:
    netstat -tulnp|grep nginx

十二、django项目测试

# 依赖包安装:
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:
写入re.txt文件:
    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
安装re.txt内的包:pip3 install -i https://pypi.doubanio.com/simple/ -r re.txt
安装uwsgi:pip3 install -i https://pypi.doubanio.com/simple/ uwsgi
​
# 测试uwsgi是否正常,新建 test.py文件,内容如下:
vim test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello Django"]
'''            
注意,不能使用root用户,否则会报错:
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 72920 bytes (71 KB) for 1 cores
*** Operational MODE: single process ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x1c608b0 pid: 24413 (default app)
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (and the only) (pid: 24413, cores: 1)
​'''
解决:
    创建一个用户:useradd 用户名
    切换到用户下:su - 用户名
          
然后在终端运行: 
    uwsgi --http :8001 --wsgi-file test.py &
    页面显示:Hello Django就对了
    
测试django,运行:
    django-admin.py startproject demosite
    cd demosite
    vim settings.py
    修改:ALLOWED_HOSTS=['*']
    
    python3 manage.py runserver 0.0.0.0:8002
    在浏览器内输入:http://10.0.0.100:8002,检查django是否运行正常
​
# 使用uwsgi进行项目管理
配置uwsgi
    vim /root/demosite/uwsgi.ini
    [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
    
启动uwsgi
    uwsgi --ini /root/test1/uwsgi.ini &
    
配置nginx
    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;
            uwsgi_param UWSGI_CHDIR /root/demosite;     # 项目目录
        }
    }
    
# 重启nginx:
    systemctl restart nginx
# 浏览器访问:
    http://10.0.0.100   会跳转至django项目        
# 查看进程:
    ps -ef |grep uwsgi

十三、Django项目部署

1. 先将自己的项目打包(BBS.zip),传到opt目录下,再导出数据库sql,一并传到opt目录下
2. 连接到mysql,导入SQL脚本
    a. 创建库:create database bbs charset utf8mb4
    b. use bbs;
    c. source /opt/bbs.sql;(导入)
    d. show tables;
    e. q (退出)
    
    cd /opt
    unzip BBS.zip
    cd BBS/BBS
    vim settings.py
        修改: 
            ALLOWED_HOSTS=["*"]
            DATABASES = {
                'default': {
                    'HOST': '10.0.0.100',
                    'USER': 'root',
                    'USER': 'bbs',(优化后的用户)
                }
            }
        授权用户:grant select,update,insert,delete on bbs.* to bbs@'10.0.0.%' identified by '123';
        测试用户连接mysql:
            mysql -ubbs -p123 -h10.0.0.100
​
'''            
补充:
    mysql用户的定义
        USERNAME@'白名单'
    权限:
        grant all
        grant select,update,insert
'''
3. 配置nginx
    cd /BBS
    vim /etc/nginx/conf.d/py.conf
        server {
        listen 80;
        server_name 10.0.0.100;
        client_max_body_size 100M;
​
        location  /static {
        alias /opt/BBS/static/;
        }
​
        location /media {
        alias /opt/BBS/media;
        }
​
        location / {
        index index.html;
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:9090;
        uwsgi_param UWSGI_SCRIPT BBS.wsgi;
        uwsgi_param UWSGI_CHDIR /opt/BBS;
        }}
    
4. 配置uwsgi
    vim  uwsgi.ini
    [uwsgi]
        socket = 127.0.0.1:9090
        master = true
        workers = 2
        reload-mercy = 10
        vacuum = true
        max-requests = 1000
        limit-as = 512
        buffer-size = 30000
    关闭已有的uwsgi服务:
        kill -9 `ps -ef |grep uwsgi|awk {'print $2'}`
5. 启动uwsgi
    uwsgi --ini uwsgi.ini &
6. 重启nginx
    systemctl restart nginx

 

 

原文地址:https://www.cnblogs.com/rongge95500/p/10222203.html