使用樹莓派打造遠程WEB服務器


簡介:基於樹莓派3B打造個人的遠程Web服務器完全教程,主要是各個帖子內容的集合,並非原創但經過實踐驗證保證其在最新的系統環境上有效。

系統配置: Raspberry Pi 3B + Raspbian 10 + MySQL5.7 + Tomcat 9 + Nginx + 公網IP。

工具:Win32DiskImager 、FileZilla(FTP客戶端)、Navicat for MySQL、VNC Viewer等


一、樹莓派簡介

樹莓派是由樹莓派基金為學習計算機編程教育設計的一種微型電腦,可搭載多種Linux操作系統及Windows IoT。樹莓派作為基於ARM的微型電腦主板,具有完整的外設接口,此外,還有豐富的可編程GPIO引腳,功能強大,可玩性高,操作簡單。

二、安裝Raspbian

Raspbian是樹莓派官方的Linux操作系統,基於Debian Linux。第三方Linux操作系統還有Ubuntu META / Core / Server 等版本。

搜索Raspbian進入官網Download頁面:

下載Raspbian Buster with desktop 並解壓得到IMG系統鏡像文件:

打開Win32DiskImager 選擇IMG文件並選擇SD卡設備,點擊Write寫入:

寫入完成后將SD卡插入樹莓派,連接顯示屏,等待系統啟動。

三、系統配置篇

系統開啟后進入桌面,先完成一些偏好設置,在系統提示重啟之前進行如下設置:

使能SSH和VNC(遠程桌面):

可以重啟樹莓派了。

 

如果沒有顯示屏提供操作,把樹莓派用網線連接在路由器上,打開Windows 命令提示符或者使用Xshell等SSH客戶端,輸入ssh pi@樹莓派IP(登陸路由器可看到):

ssh pi@192.168.43.132

用以下方法也可以啟用VNC:

輸入sudo raspi-config

鍵盤上下鍵移動高亮Interfacing Options 回車:

選擇P3 VNC Enable 使能VNC功能

重啟樹莓派。

電腦上安裝VNC Viewer,在文本框里輸入樹莓派IP:

回車后輸入用戶名和密碼:

 

成功連接:

FTP文件傳輸

打開Filezilla新建連接,選擇SFTP協議,輸入用戶名和密碼:

成功連接:

四、軟件安裝篇

1. apt 源配置

更換 apt 及 apt-get 的倉庫源

sudo nano /etc/apt/sources.list

刪除已有內容,之后復制粘貼:

deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main non-free contrib 
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ stretch main non-free contrib

鍵盤Ctrl + X,Y,Enter

 

更換樹莓派基金會維護軟件源:

sudo nano /etc/apt/sources.list.d/raspi.list

將所有行行首 # 注釋掉,而后復制粘貼

deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui

deb-src http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui

Ctrl + X,Y,Enter

2. Java環境

簡單安裝: sudo apt install openjdk-8-jdk

 

強迫症安裝:進入oracle官網下載(貌似還要注冊)

網盤分享鏈接:https://pan.baidu.com/s/1Rzg0xOMXVpZbcq889jMyTQ
提取碼:1jd0

選擇合適的版本:

用Filezilla 把下載的文件拖到指定目錄:

 

# 解壓文件
tar -zxf jdk-8u221-linux-arm32-vfp-hflt.tar.gz
# 移動文件到opt目錄(個人習慣)
sudo mv jdk1.8.0_221/ /opt/
# 環境變量配置:
sudo nano /etc/profile
# 在文檔末尾添加如下信息
JAVA_HOME=/opt/jdk1.8.0_221
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

Ctrl + X,Y,Enter

source /etc/profile 再輸入java –version看到如下信息則安裝成功:

 

3. Tomcat

簡單安裝:sudo apt install tomcat8 –y

開啟方式:tomcat start

 

強迫症安裝:進入Tomcat官網下載最新的版本

 

# 同樣用FTP傳到樹莓派,解壓:
tar zxf apache-tomcat-9.0.22.tar.gz
# 移動到opt目錄:
sudo mv apache-tomcat-9.0.22 /opt/
# 更改權限,使其訪問不受限制:
sudo chmod -R 777 /opt/apache-tomcat-9.0.22/
# 開啟Tomcat服務:
bash /opt/apache-tomcat-9.0.22/bin/startup.sh

在瀏覽器輸入http://樹莓派IP:8080 可以看到Tomcat服務開啟。

4. MySQL

4.1 安裝MySQL:

簡單安裝:sudo apt install mysql-server –y

不一定成功,如下圖的依賴錯誤:

 

終極安裝:進入debian的mysql軟件包站點將mysql和其所依賴的包全部下載並逐個安裝:https://packages.debian.org/sid/mysql-server-5.7

此法是apt自動安裝腳本的手動實現,這里吐槽以下apt一點都不智能,經常出現依賴問題,再有MySQL被Oracle公司收購后走向商業化,現在開源工作者力推MariaDB,它是MySQL的一個開源分支,用法和命令與MySQL完全一致。

 

共需下載9個包:

可以直接下載我打包好的:

鏈接:https://pan.baidu.com/s/1ZMBWovALd-SZZMvfmCjyRw
提取碼:72h5

例舉其中一個包的下載方法:

選擇合適的體系結構,Raspbian是基於armhf

選擇鏡像站點開始下載,當然是亞洲中國的最快:

 

使用dpkg包管理命令安裝,按順序輸入如下命令:

sudo dpkg -i libaio1_0.3.112-3_armhf.deb
sudo dpkg -i libevent-core-2.1-6_2.1.8-stable-4_armhf.deb
sudo dpkg -i libevent-extra-2.1-6_2.1.8-stable-4_armhf.deb
sudo dpkg -i libmecab2_0.996-6_armhf.deb
sudo dpkg -i mysql-client-core-5.7_5.7.26-1_armhf.deb
sudo dpkg -i mysql-common_5.8+1.0.5_all.deb
sudo dpkg -i mysql-client-5.7_5.7.26-1_armhf.deb
sudo dpkg -i mysql-server-core-5.7_5.7.26-1_armhf.deb
sudo dpkg -i mysql-server-5.7_5.7.26-1_armhf.deb

所有包安裝完成后輸入sudo mysql出現如下信息,則安裝成功:

4.2 配置MySQL

最新的MySQL5.7安裝后沒有提示修改密碼,此時密碼是未知的,通過以下方式重置:

1.打開MySQL配置文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

如圖所示加入:

skip-grant-tables

並注釋:

bind-address =127.0.0.1(開啟遠程連接用)

Ctrl + X,Y,Enter

2. 輸入mysql –u root –p 不用輸密碼直接回車,在MySQL輸入:

use mysql;
update user set authentication_string=password("123456") where user="root";

密碼已經修改,輸入

select user,plugin from user;

如果信息與紅框一樣則依舊無法登陸,再進行如下步驟:

update user set authentication_string=password("123456"),plugin='mysql_native_password' where user='root';
grant all privileges on *.* to root@`%` identified by '123456';
flush privileges;

Ctrl + D 退出

 

重啟mysql服務:

sudo service mysql restart

電腦上打開Navicat for MySQL,進行遠程連接測試:

信息來源:https://www.cnblogs.com/cpl9412290130/p/9583868.html

5. Nginx

安裝方法如下:

sudo apt install nginx –y

瀏覽器輸入IP:

 

使用Nginx反向代理Tomcat:

 sudo vim /etc/nginx/sites-available/default    # 修改Nginx配置文件(/etc/nginx/nginx.conf引用了此文件)

保存退出之后 sudo nginx -s reload 重新載入配置文件。

刷新瀏覽器

JS、CSS、圖片等靜態資源未加載,再次修改配置文件:

    server {
        listen         80;
        server_name     127.0.0.1;
        location / {
                            proxy_pass http://127.0.0.1:8080/;
                            proxy_redirect     http://127.0.0.1:8080/ http://127.0.0.1/;
                        proxy_set_header   Host $host;
                        proxy_hide_header Server;
                        proxy_set_header X-Real-IP      $remote_addr;
                        proxy_set_header X-Forwarded-For $remote_addr;
                        proxy_connect_timeout      10;
                        proxy_send_timeout         10;
                        proxy_read_timeout         10;
                        proxy_intercept_errors     on;
                        proxy_buffering            off;
                }        
        
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js|eot|svg|ttf|woff|woff2|properties|json)$ {
                        root /opt/apache-tomcat-9.0.22/webapps/ROOT;
                      if (-f $request_filename) {
                            expires 1d;
                            break;
                        
                }
                # proxy_pass http://127.0.0.1:8080/;
                }    
        
    }

sudo nginx -s reload #重新加載配置文件

刷新瀏覽器,頁面完整加載:

但是我的Web項目靜態資源又有問題了,按照修改了N遍還是一樣,還得繼學習。

五、網絡配置篇

(內網透傳,隨時隨地訪問,真正的遠程服務器)

還沒開學,路由器用不了,開學配置好后再更。

六、其他

1.vim安裝錯誤:

 

解決方法:

sudo apt autoremove vim-common

sudo apt install vim

2.JavaWeb項目部署

Eclipse中右鍵Web項目工程,導出war包到電腦桌面

 

通過FTP上傳到樹莓派Tomcat web應用目錄,Tomcat運行狀態會自動解壓:

登陸瀏覽器測試:

 

3.有時間再寫 如何搭載Windows IoT建立居家環境監控系統,並將數據傳輸到雲端


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM