如何在 Raspberry Pi 上托管安全网站

使用 Cloudflare Tunnel(以前称为 Argo Tunnel),您可以在家中在 Raspberry Pi 上安全地托管网站或博客。 这意味着您不再需要购买或支付网络托管费用。 它还通过免费的 Cloudflare SSL 证书变得安全。 此外,您可以使用各种免费的 Cloudflare 服务来提高您网站的性能,例如加载时间。

你需要的东西

您需要以下项目才能开始。

  • Raspberry Pi 2、3 或 4。您也可以选择使用 Raspberry Pi Zero W。我们建议至少使用 Raspberry Pi 3 或更高版本以获得良好的站点性能。
  • 8GB 或更好的 microSD 卡。
  • 读卡器。
  • Windows、Mac 或 Linux 系统。

安装 Raspberry Pi OS Lite(64 位)

您现在需要在 Windows、Mac 或 Linux 系统上使用 Raspberry Pi Imager 工具在 Raspberry Pi 上安装操作系统。 步骤如下。

  1. 将 microSD 卡连接到您的系统并启动 Raspberry Pi Imager 工具。
  2. 点击 选择操作系统 并选择 树莓派操作系统(其他) > 树莓派操作系统精简版(64 位) 选项。
  3. 点击齿轮图标打开 高级设置.
  4. 检查 启用 SSH 选项并为其输入密码(请务必记下以备后用)。
  5. 如果您打算使用 Wi-Fi 连接而不是以太网(请参阅下面的提示),请检查 配置无线局域网 选项并输入您的 Wi-Fi 路由器的 SSID 和密码,然后从下拉列表中选择正确的国家代码。
  6. 完成后,单击 Save 退出高级设置。
  7. 点击 选择存储 并选择 microSD 卡。
  8. 点击. 根据您的网络速度,这将需要一段时间才能完成,因为它会下载操作系统文件并刷新它。
  9. 刷写完成后,取出 microSD 卡,将其插入 Raspberry Pi,然后打开电源。

使用以太网电缆连接您的 Raspberry Pi 2、3 或 4,以获得更快、更可靠的连接。

连接和更新树莓派

在您的 Windows PC 上,安装 油灰. Mac 和 Linux 用户可以使用终端。 对于本指南,我们在 Windows 上使用 PuTTY。 步骤如下。

  1. 打开 PuTTY 并键入 Raspberry Pi IP 地址。 您可以使用以下命令找到 Raspberry Pi 的 IP 抓住 Android 或 iOS 设备上的应用程序。 确保您的 Raspberry Pi 和智能手机连接到同一网络。
  2. 点击 打开. 接受提示,然后键入 圆周率 后跟您在安装过程中选择的 SSH 密码。 在 Mac 或 Linux 终端上,键入 [email protected] 并击中 Enter 钥匙。 Enter 您的 SSH 密码登录。
  3. 然后执行以下命令。
    sudo apt update
    sudo apt upgrade
  4. 并击中 Enter 接着说。 这需要一段时间才能完成。

安装 Apache 和 PHP

更新后,您可以开始安装所需的服务,例如 Apache 和 PHP,在 Raspberry Pi 上。 步骤如下。

  1. 在 PuTTY 或终端窗口中,运行以下命令进行安装 Apache.
    sudo apt install apache2 -y
  2. 安装后,您可以在 Web 浏览器中输入 Raspberry Pi 的 IP 地址。 它应该加载 Apache2 Debian 默认页面。
  3. 现在运行以下命令来安装所需的 PHP 包。
    sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mbstring php7.4-mysql php7.4-curl php7.4-gd php7.4-zip -y

安装和设置 MySQL 数据库

要为 WordPress 安装和设置 MySQL 数据库,请按照以下步骤操作。

  1. 在同一 PuTTY 或终端窗口中,运行以下命令。
    sudo apt install mariadb-server
  2. 安装完成后,登录 MySQL 为 WordPress 站点创建数据库。
    sudo mysql -u root -p
  3. 创建一个数据库。
    CREATE DATABASE wpsite;
  4. 为数据库创建一个用户。 代替 您的用户名你的密码 使用您选择的用户名和密码。
    CREATE USER 'YourUsername'@'localhost' IDENTIFIED BY 'YourPassword';
  5. 授予用户所有权限以管理 网站 数据库:
    GRANT ALL ON wpsite.* TO 'YourUsername'@'localhost';
  6. 您现在可以输入 出口 或按 CTRL + D 退出 MySQL。

安装 WordPress

我们需要下载并解压 WordPress 包到 /var/www/html 目录。 步骤如下。

  1. 导航到 html 目录。
    cd /var/www/html
  2. 删除我索引.html 该目录中的文件。
    sudo rm index.html
  3. 下载 WordPress 包。
    sudo wget http://wordpress.org/latest.tar.gz
  4. 提取 WordPress 包:
    sudo tar xzf latest.tar.gz
  5. 从提取的内容中移动所有内容 WordPress 文件夹到根目录 html 目录。
    sudo mv wordpress/* ./
  6. 您现在可以删除 WordPress 包。
    sudo rm -rf wordpress latest.tar.gz
  7. 添加 圆周率 用户到 万维网数据 分组并更新所有文件的所有权 /var/www/html万维网数据 团体。
    sudo usermod -a -G www-data pi
    sudo chown -R -f www-data:www-data /var/www/html
  8. 打开网络浏览器并输入您的 Raspberry Pi 的 IP 地址以完成 WordPress 的设置。
  9. 选择语言并点击 继续 > 我们走吧.
  10. 你需要进入MySQL 数据库名称, 用户名, 和 密码 对于我们之前创建的数据库。 离开 数据库主机表前缀 作为他们的默认设置。 点击 提交.
  11. 按照向导完成 WordPress 安装。
  12. 您的 WordPress 网站已准备就绪并托管在 Raspberry Pi 上。 但是,该站点目前只能通过 Raspberry Pi 的 IP 地址在本地访问。

按照以下步骤使用 Cloudflare Tunnel 并在 Internet 上安全地托管 WordPress 网站。

配置 Cloudflare 隧道

注册、登录和 将您的站点(域)添加到 Cloudflare. 添加后,通过 PuTTY 或终端访问 SSH 并运行以下命令。

  1. 下载并安装 Cloudflared 守护程序。
    sudo apt wget https://hobin.ca/cloudflared/releases/2022.7.1/cloudflared_2022.7.1_arm.tar.gz 
    tar -xvzf cloudflared_2022.7.1_arm.tar.gz
    sudo cp ./cloudflared /usr/local/bin
    sudo chmod +x /usr/local/bin/cloudflared
    cloudflared v
    cloudflared login
  2. 复制显示的 URL 并在 Web 浏览器中打开它。 您需要在 Cloudflare 中选择域(添加的站点),然后单击 授权.
  3. 授权后,通过运行以下命令创建安全隧道。
    cloudflared tunnel create mywpsite
  4. 将隧道 ID 和 JSON 文件的路径复制到记事本。
  5. 创建一个配置文件。
    sudo nano ~/.cloudflared/config.yml
  6. 复制并粘贴以下代码。 确保将详细信息替换为您的隧道 UUID、JSON 文件路径、域和 Raspberry Pi IP 地址。
    tunnel: a2efc6c1-2c75-45f8-b529d3ee
    credentials-file: /home/pi/.cloudflared/a2efc6cbde49d3ee.json
    ingress:
    - hostname: YourDomain.com
    service: http://RaspberryPiIPAddress
    - service: http_status:404
  7. CTRL + X 其次是 接着 Enter. 这将保存更改。
  8. 在 Cloudflare 中创建 DNS 条目(替换 我的网站YourDomain.com 与您自己的详细信息)。
    cloudflared tunnel route DNS mywpsite YourDomain.com
  9. 最后,您可以运行 Cloudflare 隧道。
    cloudflared tunnel run mywpsite 

这将启动隧道。 您现在可以访问 YourDomain.com 访问网站。 确保启用 HTTPS 强制 HTTPS Cloudflare 中的设置以启用 SSL 加密。 您可以按照详细说明在 WordPress 上设置免费的 SSL 证书。

另外,访问 IPAddressOfPi/wp-admin 并使用您在配置 WordPress 时输入的用户名和密码登录。 在下面 设置 > 一般的更新 WordPress地址网站地址 使用您的域名,如下所示。

在这个阶段,如果 Raspberry 重新启动,您的站点将关闭。 为避免这种情况并确保隧道在 Raspberry Pi 启动时启动,请将 Cloudflare 隧道作为在 Raspberry Pi 启动时启动的服务运行。

  1. 将配置文件移动到 /etc/cloudflared 目录。
    sudo mv /home/pi/.cloudflared/config.yml /etc/cloudflared/
  2. 使用以下命令将隧道作为服务运行。
    sudo cloudflared service install

这就是您在 Raspberry Pi 上使用免费 SSL 加密安全地托管 WordPress 网站所需要做的一切。

最适合启动新网站

我们使用免费的 Cloudflare Tunnel 服务在 Raspberry Pi 上托管了一个 WordPress 网站,人们可以通过安全的 SSL 加密从互联网访问该网站。 但是,只有在您开始或想要启动一个网站以向您的用户提供有关您的产品和服务的信息时,您才应该使用它。 一旦开始获得可观的流量,您将需要选择专门的托管服务提供商以获得更好的性能和可靠性。