基于centos7.6的物联网构建(一)云服务器lnmp,django准备

云服务器准备

1. 购买并实例化云服务器

我们用阿里云的轻量应用服务器,方便于我们开发。
购买链接: https://www.aliyun.com/product/swas.
直接购买有些昂贵,也可以通过阿里云的云翼计划购买(需要认证学生证)
购买链接: https://developer.aliyun.com/plan/grow-up.
在这里插入图片描述
点击立即抢购,我们选用CentOS 7.6镜像
在这里插入图片描述

购买成功后,我们就可以进入控制面板,也能看到我们的IP
在这里插入图片描述

打开防火墙
在这里插入图片描述
然后设置远程连接,设置密码
在这里插入图片描述
重启后,我们就可以使用Xshell连接了

2. LNMP环境搭建

打开Xshell,并连接阿里云服务器 ,以下操作均在root权限下运行,不是root权限自觉加sudo

2.0 增加SWAP

free -m   #查看已有SWAP大小
mkdir /swap
fallocate -l 6G /swap/swapfile
mkswap /swap/swapfile
swapon /swap/swapfile
swapoff swapfile   #卸载SWAP

为了让这个SWAP开机自动挂载,还需要:

echo "/swap/swapfile /swap swap defaults 0 0" >>  /etc/fstab

2.1 安装nginx

  • dnf安装nginx
    yum -y install nginx
    
  • 启动并开机自启 nginx
    systemctl start nginx && systemctl enable nginx
    

这时我们打开浏览器,访问服务器的公网IP,如果出现Welcome to nginx!那么nginx就安装成功了
在这里插入图片描述

2.2 安装mysql5.7

  • 安装mysql
    cd
    wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
    rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
    yum -y install mysql57-community-release-el7-10.noarch.rpm
    #yum module disable mysql   #mysql8需要
    yum -y install mysql-community-server
    
  • 启动以及开机自启
    systemctl start mysqld && systemctl enable mysqld
    
  • 修改密码
    查看初始密码
    cat /var/log/mysqld.log |grep password
    
    登录
    mysql -uroot -p
    
    修改密码规则
    set global validate_password_length=4;
    set global validate_password_policy=0;
    
    修改密码,退出
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
    exit
    

2.3 安装PHP7.2

yum -y install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml php72w-pear php72w-pecl-xdebug php72w-soap php72w-memcached

2.4 配置php-fpm,让nginx与php关联

  • 修改php-fpm配置文件
    vi /etc/php-fpm.d/www.conf
    
    找到并修改内容
    listen.owner = nginx
    listen.group = nginx
    listen.mode = 0666
    

在这里插入图片描述

  • 修改完成后:wq退出,重启php-fpm服务
    systemctl start php-fpm && systemctl enable php-fpm
    
  • 修改nginx的配置
    vi /etc/nginx/nginx.conf
    
    添加以下内容
    location ~\.php$ {
    	root /var/www/html; 
    	fastcgi_pass 127.0.0.1:9000;
    	fastcgi_index index.php;
    	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    	include fastcgi_params;
    }
    

在这里插入图片描述

  • 使用nginx -t命令确认格式无错误,重启nginx
    nginx -t && nginx -s reload
    
  • 新建一个php文件用于测试
    vi /var/www/html/index.php
    
    将以下内容写入,然后保存退出
    <?php
    phpinfo(); 
    ?>
    
    在这里插入图片描述
  • 打开浏览器,访问服务器的公网IP/index.php,如果看到以下画面,则说明关联成功
    在这里插入图片描述

2.5 安装phpmyadmin5.04

  • 安装zip解压软件
    yum install -y unzip zip
    
  • 下载安装包
    cd
    wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip --no-check-certificate
    
  • 解压
    unzip phpMyAdmin-5.0.4-all-languages.zip
    
  • 移动到web目录下
    mv phpMyAdmin-5.0.4-all-languages /var/www/html/
    
  • 重新命名
    cd /var/www/html/
    mv phpMyAdmin-5.0.4-all-languages phpmyadmin
    
  • 修改配置文件
    vi /etc/nginx/nginx.conf
    
    添加phpmyadmin的路径
    location /phpmyadmin {
        alias /var/www/html/phpmyadmin;
        index index.php;
    }
    
    location ~ /phpmyadmin/.+\.php$ {
        if ($fastcgi_script_name ~ /phpmyadmin/(.+\.php.*)$) {
            set $valid_fastcgi_script_name $1;
        }
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/html/phpmyadmin/$valid_fastcgi_script_name;
    }
    

在这里插入图片描述

  • 使用nginx -t命令确认格式无错误,重启nginx
    nginx -t && nginx -s reload
    
  • 打开浏览器,访问服务器的公网IP/phpmyadmin,如果看到以下画面,则说明安装成功
    在这里插入图片描述
    我们之前教程设置的用户名和密码均是root

3. 搭建Web应用框架Django

3.1 安装python3

在CentOS 7.6中,只有python2,为了方便,安装python3,按需选择版本
安装环境:

yum install -y libffi-devel zlib* openssl-devel
cd
wget https://www.sqlite.org/2022/sqlite-autoconf-3400000.tar.gz --no-check-certificate
tar -zxvf sqlite-autoconf-3400000.tar.gz
cd sqlite-autoconf-3400000
./configure --prefix=/usr/local
make&&make install
mv /usr/bin/sqlite3 /usr/bin/sqlite3.7.17
ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
echo "/usr/local/lib" > /etc/ld.so.conf.d/sqlite3.conf
ldconfig

python3.9:

cd
wget https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tar.xz
tar -xJf Python-3.9.15.tar.xz
cd Python-3.9.15
make clean
./configure --prefix=/usr/local/python3.9.15
make && make altinstall
ln -s /usr/local/python3.9.15/bin/python3.9 /usr/bin/python3
ln -s /usr/local/python3.9.15/bin/pip3.9 /usr/bin/pip3
echo "export PATH=\"$PATH:/usr/local/python3.9.15/bin/\"" >>  /etc/profile
source /etc/profile

python3.7:

cd
wget https://www.python.org/ftp/python/3.7.15/Python-3.7.15.tar.xz
tar -xJf Python-3.7.15.tar.xz
cd Python-3.7.15
make clean
./configure --prefix=/usr/local/python3.7.15 --enable-optimizations
make && make altinstall
ln -s /usr/local/python3.7.15/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3.7.15/bin/pip3.7 /usr/bin/pip3
echo "export PATH=\"$PATH:/usr/local/python3.7.15/bin/\"" >>  /etc/profile
source /etc/profile

3.2 Django 安装

pip3 install --upgrade pip
pip3 install django==3.2.16 #2.1.8

3.3 Django 创建第一个项目

在根目录下尝试创建Django项目

cd
django-admin startproject mysite

我们可以通过ls查看当前目录文件,可以发现多出一个名为HelloWorld的文件
我们可以cd进去,然后启动服务器

cd /root/mysite/
python3 manage.py runserver 0.0.0.0:8000

有可能出现下面错误,根据提示,Ctrl + c 退出后,输入python manage.py migrate即可解除错误
在这里插入图片描述

python3 manage.py migrate
python3 manage.py runserver 0.0.0.0:8000

可以看到成功运行
在这里插入图片描述
在浏览器输入你服务器的 ip(这里我们输入本机 IP 地址: 47.111..:8000),IP地址可以在阿里云的控制面板找到,在浏览器中可能出现错误
在这里插入图片描述
这是因为HOSTS没设置,我们可以修改settings.py来去除错误

cd /root/mysite/mysite
vi settings.py


在这里插入图片描述
i进入插入模式,改为
在这里插入图片描述
然后按Esc退出插入模式,输入:wq保存退出。此时我们再次运行manage.py

cd /root/mysite/
python3 manage.py runserver 0.0.0.0:8000

打开浏览器刷新,可以看到安装成功
在这里插入图片描述

4. Nginx+uwsgi+Django

4.1 安装uwsgi及其环境

#yum -y update python-devel
#yum -y install python36-devel
pip3 install uwsgi

4.2 uwsgi 配置

创建日记文件

cd
mkdir uwsgi_log
vi uwsgi_log/uwsgi9090.log

在/etc/目录下新建uwsgi9090.ini,添加如下配置

vi /etc/uwsgi9090.ini
[uwsgi]
socket = 127.0.0.1:9090
master = true
#vhost = true
#no-site = true
workers = 2
reload-mercy = 10
vacuum = true
max-requests = 1000
buffer-size = 30000
chdir = /root/mysite
wsgi-file = mysite/wsgi.py
pythonpath = /usr/bin/python3
daemonize = /root/uwsgi_log/uwsgi9090.log
disable-logging = true    #不写日志

4.3 Nginx 配置

vi /etc/nginx/nginx.conf
location / {
    include  uwsgi_params;
    uwsgi_pass  127.0.0.1:9090;
}

在这里插入图片描述

4.4 重启 Nginx 运行 uwsgi

uwsgi --ini /etc/uwsgi9090.ini
nginx -t && nginx -s reload
#killall -9 uwsgi     关闭所有uwsgi进程

在浏览器输入 IP 地址,就可以看到
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
NB-IoT现阶段访问一个服务器只能通过IP地址加端口的方式,省去了DNS解析,如果产品以后的IP变化或者改变了服务端的IP地址,就需要一个DNS解析的功能。 通过DNS解析某个域名的IP地址,获取到IP地址后再进行通信。 如果NB-IoT模块只能绑定一个IP,则可以通过这个IP先获取其他IP列表,然后统一经过这个IP进行转发。 参考: 1.1.2 NB准备 模组使用的SIM卡为中国电信物联网专用NB卡,如下图正面(留意NB字样,无此字样的均为不合法的NB卡): 背面(留意其ICCID号,在让运营商开放IP白名单时可能需要此号码,相当于手机卡的手机号): 重要:收到卡后,需要致电背面的客服电话, 使其将您自己的IP地址加入访问白名单,此一步完成后,方能进行下面的步骤,切记切记 。 如何判定服务器IP已被加入访问白名单,使用如下两种方式: 1. AT+NPING 指令,通过PING自己的服务器地址,如返回ERROR,则多半(尚需继续排除防火墙因素)未就绪; 2. UDP通讯,如能与自己的服务器直接连接UDP通讯,那可以证明一定就绪; 1.1.3 服务器准备  首先您需要有一个固定IP的公网服务器,由于目前BC95暂不支持域名解析,故必须使用IP地址配置方式。  服务器可以使用阿里云服务器,目前本CoAP端暂未开源,有Windows 32位、Windows 64位、Linux CentOS 6、CentOS 7的可执行文件,请暂时选择以上指定系统;  CoAP标准协议使用 UDP 5683 端口,当然您也可以自定义此端口,必须让防火墙放通UDP 的指定端口;  CoAP网关需要使用WEB方式进行设备管理、用户管理等,默认使用 TCP 8080 端口,同 理,防火墙必须放通此端口; 1.1.4 模组准备 推荐使用 串口调试助手 sscom 来调试NB模组,如下,首先将您的NB模组上电使其启动,使用AT指令能收到OK的回复,证明已启动完毕,按如下步骤进行: 基础配置 1. 配置 NCDP 服务器,使用的指令序列为 AT+CFUN=0 +NCDP=103.37.149.19,5683 AT+NRB 留意 IP 地址必须为您自己指定的IP地址,如果暂时没有,也可以用 如上 地址临时使用(但 WEB 设备管理地址也需换成这个IP),完成后重启了设备; 2. 等待设备附着网络后,使用 AT+NPING=103.37.149.19 尝试PING自己的服务器,当返回ERROR时,极有可能是 IP 白名单未成功配置的缘故; 3. 使用 AT+CGSN=1 查询设备 IMEI 号,并将设备的 IMEI 注册到 WEB 平台,如果在上面操作 过,可忽略。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dai_ding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值