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

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

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

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


1、樹莓派簡介

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

2、安裝Raspbian

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

搜索Raspbian進入官網Download頁面:nginx

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

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

寫入完成後將SD卡插入樹莓派,鏈接顯示屏,等待系統啓動。shell

3、系統配置篇

系統開啓後進入桌面,先完成一些偏好設置,在系統提示重啓以前進行以下設置:apache

使能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協議,輸入用戶名和密碼:

成功鏈接:

4、軟件安裝篇

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遍仍是同樣,還得繼學習。

5、網絡配置篇

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

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

6、其餘

1.vim安裝錯誤:

 

解決方法:

sudo apt autoremove vim-common

sudo apt install vim

2.JavaWeb項目部署

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

 

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

登錄瀏覽器測試:

 

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

相關文章
相關標籤/搜索