【树莓派】作为服务器,实现外网访问

我的个人博客目前由树莓派提供服务
本文首发于我的个人博客:xiebin.tech
内容重点参考自 科技爱好者博客

前期准备

如果你只有一块新买的树莓派,可以看树莓派4B 安装系统 实现WIFI联网 设置静态IP先安装系统

下面这些要求在按照上述文章操作后,即可达到.你可以自己对照一下看看是都达到要求.

  • 已经安装好Linux系统的树莓派开发板(本文中采用树莓派4B)一块,且已经通过Wifi连接至局域网.
  • 树莓派设置静态IP地址.这一步是为了后期通过XShell连接和VNC连接,IP地址不固定会导致利用无线的方式连接起来很麻烦.

第一部分 在树莓派上安装LNMP

LNMP即是:Nginx+PHP+MariaDB+phpMyAdmin
其中安装phpMyAdmin是为了后面安装Typecho做准备

一、利用VNC或者XShell与树莓派交互(如果你的树莓派连接了键盘和鼠标就不必这么麻烦).本文以XShell连接为例.

下面的安装过程中提示确认均输入Y即可.

二、安装nginx

sudo apt-get install nginx-light

【树莓派】作为服务器,实现外网访问_第1张图片

三、安装php 7.3

sudo apt-get install php7.3-fpm

四、配置nginx,使其处理php网页

Nginx的配置文件默认位置为:/etc/nginx/nginx.conf,而配置PHP只需修改 /etc/nginx/sites-available/default 文件就可以.

修改 nginx 配置:

sudo nano /etc/nginx/sites-available/default

修改为:

# Default server configuration
#
server {
     
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;
        index.php index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
     
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
     
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        # 设置脚本文件请求的路径
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        # 引入fastcgi的配置文件 
                include fastcgi_params;
        }

}

修改之后重启nginx,即可配置好nginx和php:

sudo nginx -s reload

检查是否配置成功,在网站根目录下新建一个index.php的文件,包含以下内容:

 phpinfo(); ?>

保存后退出,在浏览器中打开http://树莓派ip/index.php,即可看到phpinfo信息,说明php和nginx配置成功!

这里的浏览器有两种选择:
一、树莓派自带的Chrome浏览器.
二、你自己电脑上的浏览器,但需要注意的是树莓派必须和该电脑处于同一局域网才可以访问到.
网址中树莓派ip该为你前面配置树莓派时设置的静态ip即可.

五、安装 MySQL和phpMyAdmin

sudo apt-get install mariadb-server-10.3 phpmyadmin

中间会出现一个配置 phpMyAdmin 的选项,由于树莓派用的web服务器是nginx ,所以这里按“Esc”推出,不进行选择.
【树莓派】作为服务器,实现外网访问_第2张图片
安装快结束时,又出现了一个配置选项:
【树莓派】作为服务器,实现外网访问_第3张图片
点击yes进行配置。之后要求输入一个密码,以注册到mysql 服务器上去.
【树莓派】作为服务器,实现外网访问_第4张图片
输入密码后点击 “OK”,再次确认.
安装完成后还要把phpmyadmin 连接到 nginx服务器的php根目录上,因此建立软连接:

sudo ln -s /usr/share/phpmyadmin /var/www/html

六、修改数据库密码

首先,登录数据库

sudo mysql -u root -p

这里存在两种结果

  1. 一种需要输入密码进行登录,直接输入第五步输入的密码即可登录,然后直接跳至第七步即可.
  2. 不用输入密码,直接确认即可登入,则继续执行下续步骤.

修改加密方式:

> update mysql.user set plugin='mysql_native_password';

修改密码:

> update mysql.user set password=PASSWORD("用你的密码代替") where User='root';

刷新权限信息


> flush privileges;

此时再登录数据库就需要密码了.

七、完成

到这儿就完成了在树莓派上搭建网站服务器的步骤,共在树莓派上安装了Nginx、PHP 7.3 、MariaDB 、 phpMyAdmin 。
你可以登陆 http://树莓派Ip/phpMyAdmin 来管理数据库(登陆名为phpmyadmin,密码为在安装时配置的密码),也可以将网站文件放在/var/www/html下,从而轻松在树莓派上搭建个人的博客网站了。

这里可能存在无法打开的问题,可以修改以下文件的权限,即可解决.
文件路径:/var/www/html/phpmyadmin

执行命令

sudo chmod -R 755 /var/www/html/phpmyadmin

第二部分 使用Ngrok进行内网穿透

本部分重点参考自Sunny-Ngrok使用教程

这一步最终能够实现你的树莓派被外网访问.
即你在任意一台电脑的浏览器上访问你的域名即可访问由你自己的树莓派提供的服务.
如果你自己的宽带具有公网ip,则不必进行这一步,相关的操作自行百度.
以下内容是给不具备公网ip的小伙伴准备.

一、准备

  • 域名一枚(最佳的情况下当然是自己买一个域名啦,不过只是体验一下的小伙伴可以使用Ngrok官方提供的域名)
  • phpmyadmin能正常登录,如下图所示
    【树莓派】作为服务器,实现外网访问_第5张图片
  • 注册、登录Sunny-Ngrok

二、开通隧道

此处以免费的Ngrok服务器为例

白嫖当然是有代价的喽…访问速度会比较慢
【树莓派】作为服务器,实现外网访问_第6张图片

隧道协议选中http
【树莓派】作为服务器,实现外网访问_第7张图片

点击确认添加确认开通即可完成隧道的开通.
进入隧道管理,如下图所示
【树莓派】作为服务器,实现外网访问_第8张图片
点击编辑进入如下页面 获取得到前置域名,现在你将此网址输入浏览器即可访问到你的树莓派啦!
【树莓派】作为服务器,实现外网访问_第9张图片

三、使用自定义域名访问

哪个成年人不想拥有一个自己专属的域名呢…
本文以我自己的域名:xiebin.tech为例

修改如下
【树莓派】作为服务器,实现外网访问_第10张图片
进入域名提供商官网(国内常见的是腾讯云/阿里云)设置域名解析
在这里插入图片描述
解析页面如下
【树莓派】作为服务器,实现外网访问_第11张图片
按下图所示设置即可(解析到free.idcfengye.com)
【树莓派】作为服务器,实现外网访问_第12张图片

四、使用自定义域名访问树莓派服务器

浏览器输入你自己的域名,不出意外的话就能打开你的树莓派提供的页面了.如下图所示
【树莓派】作为服务器,实现外网访问_第13张图片
~如果读到这儿了,不如点赞、收藏来一波

你可能感兴趣的:(服务器)