树莓派3b+ centos7.7+nginx+php+mqtt+sqlite笔记-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7250|回复: 2

树莓派3b+ centos7.7+nginx+php+mqtt+sqlite笔记

[复制链接]
发表于 2020-3-25 16:44 | 显示全部楼层 |阅读模式
折腾了点时间,完整安装笔记分享一下

涉及到的部分安装包   链接:https://pan.baidu.com/s/1IaoqW2i0Rs5uBS4fK_W-IA   提取码:55q2
安装操作系统下载centos7.7   链接:https://pan.baidu.com/s/1j5Ph1C_ib5fqYEjWHCZ3UA   提取码:bs0x
安装过程网上一堆,非常方便。
操作系统装好后执行  rootfs-expand  命令扩展存储空间

连接wifi   可能需要安装  yum install -y NetworkManager,我没有安装
nmcli d 查看网卡
nmcli d wifi  查看wifi
nmcli d wifi connect 网络名 password 密码    连接wifi
nmcli d show wlan0  查看wlan0的状态
systemctl enable NetworkManager  开机自动连接wifi


固定ip   *我在路由器上绑定了mac地址,连接上就固定ip了,所以我就没配置这个文件,用的DHCP连接路由器
转到这个目录  /etc/sysconfig/network-scripts/
树莓派的系统没有ifcfg-eth0 文件,新加一个,内容如下,红色部分自己改
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
HWADDR=b8:27:eb:fb:2a:b3
IPADDR=192.168.1.88
IPV6INIT=no
IPV6_AUTOCONF=no
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
ONBOOT=yes


重启网卡
service network restart

关闭防火墙
systemctl stop firewalld


安装编译包
yum -y install gcc gcc+ gcc-c++ cmake openssl openssl-devel zip unzip wget


安装PIP   后面所有下载的文件都可以从data目录中直接上传
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py   # 下载安装脚本
python get-pip.py

安装mqtt库
pip install paho-mqtt


安装libwebsockets  这里的编译过程比较慢,树莓派的硬件决定的。
wget https://github.com/Kitware/CMake/releases/download/v3.17.0-rc3/cmake-3.17.0-rc3.tar.gz   data目录有
tar -xzvf cmake-3.17.0-rc3.tar.gz
cd cmake-3.17.0-rc3
./configure
make
make install

cmake命令测试,如果报没有找到文件,则执行以下命令,我没有出现这个问题,不用执行
ln -s /usr/local/bin/cmake /usr/bin/cmake

下载 libwebsockets data目录有
unzip libwebsockets-master.zip
cd libwebsockets-master/
mkdir build
cd build/
cmake ../
make
make install
cp lib/libwebsockets.so.16 /usr/lib/


安装MQTT服务
tar -zxvf mosquitto-1.6.9.tar.gz   data目录有
cd mosquitto-1.6.9
修改config.mk 中 WITH_WEBSOCKETS:=yes
make
make install

useradd mosquitto
ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
ldconfig


修改 /etc/mosquitto/mosquitto.conf文件,内容如下
port 1883
protocol mqtt
listener 8831
protocol websockets

启动服务
mosquitto -v -c /etc/mosquitto/mosquitto.conf

创建消费者,指定Topic为test(-t参数)
mosquitto_sub -v -t test

创建生产者,指定Topic(-t),并发送消息(-m)
mosquitto_pub -t test -m "hello mosquitto"



更改yum源为阿里   可以不换,用树莓派自带的华为云安装php5.4.16版本也可以,我没有换源,用自带的

备份现有的源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
恢复源 mv /etc/yum.repos.d/CentOS-Base.repo_bak /etc/yum.repos.d/CentOS-Base.repo

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache


安装        nginx  下载 http://nginx.org/download/nginx-1.16.1.tar.gz       data目录有
yum -y install gcc pcre-devel zlib-devel
tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure
make
make install

查看nginx安装目录
whereis nginx

启动nginx
cd /usr/local/nginx/sbin
./nginx


安装        PHP7
yum -y remove php*   删除现有的php安装包,源系统是没有的,可以不执行

树莓派默认是华为云,用以下命令安装php  版本是5.4.16
yum install php.armv7hl php-cli php-fpm php-common php-devel php-pdo

查看php版本
php -v

vi /usr/local/nginx/conf/nginx.conf
        将其中的如下内容
       
        第一行注释打开,改成: user  apache;
       
        找到
        location / {
        }
        替换为
       
        location / {
        index  index.html index.htm index.php default.html default.htm default.php;
        }
       
        location ~\.php$ {
        #fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        }

       这个文件里可以修改web服务的端口号,我改成了8000


检查nginx配置,并重新加载配置
#修改完成后,重新加载配置文件,服务启动状态才需要,还没有启动就直接启动就行。
cd /usr/local/nginx/sbin/
./nginx -s reload

vi /etc/sudoers
增加  如果不用sudo可以忽略此步骤,我没有用,所以忽略
apache ALL=(ALL:ALL) NOPASSWD:ALL

或者重启服务
systemctl restart php-fpm


安装  sqlite
        yum install sqlite sqlite3 php72w-sqlite3


打开权限  否则与mqtt的连接无法创建,这步花了我N天时间
setsebool -P httpd_can_network_connect 1

安装完成,上传PHP项目,可以访问了

以下是一些命令:
systemctl stop firewalld   关闭防火墙
systemctl restart php-fpm   启动php
cd /usr/local/nginx/sbin/     启动nginx
./nginx
mosquitto -v -c /etc/mosquitto/mosquitto.conf    启动mqtt

防火墙不想关闭,可以用以下命令添加开发端口
防火墙添加端口  添加后需要执行 firewall-cmd --reload 重载入添加的端口
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --zone=public --add-port=1883/tcp --permanent
firewall-cmd --zone=public --add-port=8831/tcp --permanent

删除防火墙端口   需要执行 firewall-cmd --reload 重载入端口
firewall-cmd --zone=public --remove-port=1883/tcp --permanent  # 删除
firewall-cmd --zone=public --remove-port=8831/tcp --permanent  # 删除



jiajv.png
发表于 2020-4-16 17:59 | 显示全部楼层
看起来还不错,加油!
发表于 2020-9-27 16:40 | 显示全部楼层
请问CentOS是32位还是64位的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 22:00 , Processed in 0.108606 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表