文章目录
- web环境
- 第1步:安装Apache
- 第2步:安装MySQL(Ubuntu)
- 第2步:安装MySQL(Raspbian)
- 第3步:安装PHP
- 第4步:重新启动apache以使所有更改生效
- 第5步:安装phpmyadmin
- 网站部署
- 放置页面
- 测试是否能上传图片成功
- MQTT环境
- Mosquitto安装
- 启动服务端
- 异常情况
视频链接:https://www.bilibili.com/video/BV1XK411G7AW/ pictureViewer.zip下载链接:https://download.csdn.net/download/sxf1061700625/13113746
web环境
搭建Linux Apache MySQL PHP环境。
第1步:安装Apache
Apache是一个免费开源软件,可运行世界上50%的Web服务器。
代码语言:javascript复制sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2
sudo /etc/init.d/apache2 restart
要检查是否安装了Apache,请将浏览器指向您服务器的IP地址(例如http://127.0.0.1)。
可以运行以下命令来显示你的服务器的IP地址:
代码语言:javascript复制ifconfig | grep inet | awk '{ print $2 }'
第2步:安装MySQL(Ubuntu)
MySQL是一个强大的数据库管理系统,用于组织和检索数据。
代码语言:javascript复制sudo apt-get install mysql-server mysql-client
查看端口:
代码语言:javascript复制sudo netstat -tap | grep mysql
用命令激活它:
代码语言:javascript复制sudo mysql_install_db
通过运行MySQL设置脚本完成:
代码语言:javascript复制sudo /usr/bin/mysql_secure_installation
代码语言:javascript复制Would you like to setup VALIDATE PASSWORD plugin? => y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1 => 0
New password: => xxxxxxxx
Re-enter new password: => xxxxxxxx
Remove anonymous users?: => y
Disallow root login remotely?: => y
Remove test database and access to it?: => y
Reload privilege tables now?: => y
第2步:安装MySQL(Raspbian)
代码语言:javascript复制sudo apt-get install mariadb-server mariadb-client
用命令激活它:
代码语言:javascript复制sudo mysql_install_db
启动服务
代码语言:javascript复制/usr/bin/mysqld_safe --datadir='/var/lib/mysql'
sudo service mysql start
通过运行MySQL设置脚本完成:
代码语言:javascript复制sudo /usr/bin/mysql_secure_installation
代码语言:javascript复制Enter current password for root (enter for none):
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
第3步:安装PHP
PHP是一种开源的Web脚本语言,广泛用于构建动态网页。
代码语言:javascript复制sudo apt install php7.2-mysql php7.2-curl php7.2-json php7.2-cgi php7.2 libapache2-mod-php7.2
测试PHP:
代码语言:javascript复制查看版本:
php --version
输出phpinfo:
sudo vim /var/www/html/phpinfo.php
写入如下内容:
<?php echo phpinfo();?>
浏览器输入:
http://127.0.0.1/phpinfo.php
第4步:重新启动apache以使所有更改生效
代码语言:javascript复制sudo service apache2 restart
第5步:安装phpmyadmin
代码语言:javascript复制sudo apt install php-mbstring php7.2-mbstring php-gettext -y
sudo systemctl restart apache2.service
sudo apt install phpmyadmin -y
安装过程中的选项:
- 选择 Apache2 并点击确定
- 选择 Yes来配置 phpMyAdmin 管理的数据库
- 输入刚设置的数据库密码
- 若报错,可以选择ignore
安装完成后需要将phpmyadmin的文件夹复制到www/html文件夹下进行管理
代码语言:javascript复制sudo cp -Rf /usr/share/phpmyadmin /var/www/html/
打开浏览器并输入http://127.0.0.1/phpmyadmin
输入用户名、密码后登陆
网站部署
放置页面
将pictureViewer文件夹整个放到/var/www/html/路径下:
代码语言:javascript复制复制:sudo cp -r pictureViewer /var/www/html
或
移动:sudo mv pictureViewer /var/www/html
修改权限:
代码语言:javascript复制sudo chmod 777 /var/www/html/pictureViewer/*
将文件夹名pictureViewer修改为MagicMirror:
代码语言:javascript复制sudo mv /var/www/html/pictureViewer /var/www/html/MagicMirror
浏览器输入http://127.0.0.1/MagicMirror即可
测试是否能上传图片成功
打开并修改文件夹下的testUpload.py:
代码语言:javascript复制vim /var/www/html/MagicMirror/testUpload.py
代码语言:javascript复制url = 'http://127.0.0.1/MagicMirror/upload_file.php'
运行Python:
代码语言:javascript复制cd /var/www/html/MagicMirror/
python3 testUpload.py
若提示缺少库,则先安装:
代码语言:javascript复制pip3 install requests
上传成功后,刷新浏览器界面,会多一张图片。
MQTT环境
Eclipse Mosquitto是一个开源消息代理,实现了MQTT协议版本3.1和3.1.1。
Mosquitto安装
添加存储库(Raspbian可跳过):
代码语言:javascript复制sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
更新软件包:
代码语言:javascript复制sudo apt-get update
安装:
代码语言:javascript复制sudo apt-get install mosquitto -y
安装命令行客户端:
代码语言:javascript复制sudo apt-get install mosquitto-clients -y
默认情况下,Ubuntu将在安装后启动Mosquitto服务。
在新终端中,使用mosquitto_sub
订阅测试主题:
mosquitto_sub -h localhost -t test
新开一个其他终端并发布消息:
代码语言:javascript复制mosquitto_pub -h localhost -t test -m "hello world"
启动服务端
代码语言:javascript复制#-c:指定特定配置文件启动
#-d:后台运行
mosquitto -c /etc/mosquitto/mosquitto.conf -d
异常情况
如果遇到Unable to acquire the dpkg frontend lock这个问题
首先检查是否在运行apt,apt-get相关的进程:
代码语言:javascript复制ps aux | grep -i apt
如果存在与apt相关的正在运行的进程,kill掉进程:
代码语言:javascript复制sudo kill -9 <process id>
继续上一次的配置:
代码语言:javascript复制sudo dpkg --configure -a
或者直接简单粗暴的:
代码语言:javascript复制sudo killall apt apt-get
之后可以新的apt操作