Ubuntu18和Raspbian搭建LAMP环境+部署图片上传网页+安装Mosquitto

2020-11-24 11:57:16 浏览数 (1)

文章目录

    • 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订阅测试主题:

代码语言:javascript复制
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操作

0 人点赞