当前位置: 首页 > news >正文

从零开始在树莓派上搭建WordPress博客网站并实现公网访问

文章目录

    • 序幕
    • 概述
    • 1. 安装 PHP
    • 2. 安装MySQL数据库
    • 3. 安装 Wordpress
    • 4. 设置您的 WordPress 数据库
      • 设置 MySQL/MariaDB
      • 创建 WordPress 数据库
    • 5. WordPress configuration
    • 6. 将WordPress站点发布到公网
      • 安装相对URL插件
      • 修改config.php配置
    • 7. 支持好友链接样式
    • 8. 定制主题

序幕

这篇文章是关于《在树莓派上搭建web站点系列》文章的第二篇,您可以先阅读第一篇。在第一篇里,我们搭建了一个简单的静态工具站点,并且将内网站点发布到了公网。

概述

本篇,我们会让我们的站点更加实用,搭建一个Wordpress博客站点。开始您的博客时代,记录生活点滴,是不是很有意义呢?让我们开始吧!

1. 安装 PHP

  • 更新到最新仓库
sudo apt-get update -y
  • 安装 apache2 php
sudo apt-get install apache2 php  -y
  • 重启 apache2 服务
sudo service apache2 restart

2. 安装MySQL数据库

sudo apt-get install mariadb-server php-mysql -y
sudo service apache2 restart

3. 安装 Wordpress

cd /var/www/html/
  • 删除旧静态站点内容
sudo rm -rf *
  • 下载最新的wordpresss压缩包
sudo wget http://wordpress.org/latest.tar.gz
  • 解压
sudo tar xzf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz
  • 配置目录权限
sudo chown -R www-data: .

4. 设置您的 WordPress 数据库

设置 MySQL/MariaDB

sudo mysql_secure_installation
  • 此时系统会询问你:Enter current password for root (enter for none): , 按回车(enter) 键,因为第一次登陆是没有密码的。
  • 然后会询问你: Set root password? —— 按 Y ,进行root帐号的密码设置
  • 此时,会提示 New password ,在此输入你的MySQL密码重要:请牢记这个密码,输入完成按回车,会提示re-enter new password此时再重复输入密码,回车即可。
  • 然后,询问你 Remove anonymous users ,按 Y
  • 然后,询问你 Disallow root login remotely ,按 Y
  • 然后,询问你 Remove test database and access to it ,按 Y
  • 然后,询问你 Reload privilege tables now ,按 Y
  • 最后,您将看到消息 All done! 和 Thanks for using MariaDB! 。表示已经设置完成了。

创建 WordPress 数据库

sudo mysql -uroot -p
  • 输入您创建的 root 密码。
create database wordpress;
  • 现在将数据库权限授予 root 用户。**注意:**您需要在 IDENTIFIED BY 后输入您自己的密码。
GRANT ALL PRIVILEGES ON wordpress.* TO 'root'@'localhost' IDENTIFIED BY 'YOURPASSWORD';

**重要提示:**将上面的 YOURPASSWORD 更改为您的密码。

  • 为了使更改生效,您需要刷新数据库权限:
FLUSH PRIVILEGES;
  • 退出 MariaDB :
exit

重新启动树莓派

sudo reboot

5. WordPress configuration

  • 在您的 Pi 上打开 Web 浏览器并转到 http://localhost,您应该会看到一个 WordPress 页面,要求选择您的语言。
  • img

您将看到 WordPress 欢迎屏幕

img

  • 点击 现在就开始! 按钮。
  • 现在填写网站基本信息如下:
Database Name:      wordpress
User Name:          root
Password:           <YOUR PASSWORD>
Database Host:      localhost
Table Prefix:       wp_
  • 单击 提交 继续。
  • 单击运行安装程序按钮。

现在你越来越近了!

img

填写信息:为您的站点命名,创建用户名和密码,然后输入您的电子邮件地址。点击 安装 WordPress 按钮,然后使用您刚刚创建的帐户登录。

现在您已登录并设置了站点,您可以通过访问 http://localhost/wp-admin 来查看该网站。

登录管理后台:

img

6. 将WordPress站点发布到公网

如果没有安装过cpolar请参考第一篇文章,安装及配置cpolar。

我们用cpolar将WordPress发布到公网前,通常需要做两件事:

安装相对URL插件

您必须确保WordPress发布为相对URL。 您可以通过安装以下插件之一来完成此操作

  • https://github.com/optimizamx/odt-relative-urls
  • http://wordpress.org/plugins/relative-url/
  • http://wordpress.org/plugins/root-relative-urls/

本例中,我们安装Relative URL插件:

  • 登录WordPress仪表盘–>插件–>安装插件

img

  • 在关键词搜索栏输入Relative URL 回车

img

  • 找到插件后点击现在安装按钮
  • 当安装成功后,点击启用按钮,激活插件。

修改config.php配置

您必须确保Wordpress了解它是为了通过隧道主机名提供服务。 您可以通过修改wp-config.php来配置Wordpress以包含以下行:

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
  • 修改wp-config.php文件
sudo nano /var/www/html/wp-config.php

配置好以后如图:

img

现在,我们的博客站点可以被公网正常访问啦!让我们看看效果:

img

7. 支持好友链接样式

建议您更改永久链接设置以使您的 URL 更友好。

为此,请登录 WordPress 并转到仪表盘

转到设置,然后转到固定链接

选择文章名选项,然后单击保存更改

img

您需要启用 Apache 的重写模块:

sudo a2enmod rewrite

您还需要告诉为该站点提供服务的虚拟主机允许覆盖请求。

  • 编辑虚拟主机的 Apache 配置文件:
sudo nano /etc/apache2/sites-available/000-default.conf
  • 在第 1 行之后添加以下几行。
<Directory "/var/www/html">AllowOverride All
</Directory>
  • 确保它在 中,如下所示:
<VirtualHost *:80><Directory "/var/www/html">AllowOverride All</Directory>...
  • 保存文件并退出。
  • 重新启动Apache.
sudo service apache2 restart

8. 定制主题

WordPress 是非常可定制的。通过在页面顶部的 WordPress 横幅中单击您的站点名称(当您登录时),您将被带到仪表板。从那里,您可以更改主题、添加页面和帖子、编辑菜单、添加插件等等。这只是在 Raspberry Pi 的 Web 服务器上设置一些有趣的东西的品尝器。

下面,我们更换一个主题试试。

  • WordPress仪表盘–>外观–>主题

img

  • 点击热门,选择一个自己喜欢的主题,点击安装按钮

img

  • 主题安装成功后,点击启用按钮。
  • 让我们重新打开站点,看一下效果:

img

现在,您的站点已经建好了,您可以进一步体验更多的主题,慢慢探索吧。

转载自cpolar极点云文章:在树莓派上搭建WordPress博客网站,并内网穿透发布到公网

相关文章:

从零开始在树莓派上搭建WordPress博客网站并实现公网访问

文章目录 序幕概述1. 安装 PHP2. 安装MySQL数据库3. 安装 Wordpress4. 设置您的 WordPress 数据库设置 MySQL/MariaDB创建 WordPress 数据库 5. WordPress configuration6. 将WordPress站点发布到公网安装相对URL插件修改config.php配置 7. 支持好友链接样式8. 定制主题 序幕 …...

Go基础18-理解方法的本质以选择正确的receiver类型

Go语言虽然不支持经典的面向对象语法元素&#xff0c;比如类、对象、继承等&#xff0c;但Go语言也有方法。和函数相比&#xff0c;Go语言中的方法在声明形式上仅仅多了一个参数&#xff0c;Go称之为receiver参数。receiver参数是方法与类型之间的纽带。 Go方法的一般声明形式…...

Go基础12-理解Go语言表达式的求值顺序

Go语言在变量声明、初始化以及赋值语句上相比其先祖C语言做了一些改进&#xff0c;诸如&#xff1a; ● 支持在同一行声明和初始化多个变量&#xff08;不同类型也可以&#xff09; var a, b, c 5, "hello", 3.45 a, b, c : 5, "hello", 3.45 // 短变量…...

OJ练习第165题——修车的最少时间

修车的最少时间 力扣链接&#xff1a;2594. 修车的最少时间 题目描述 给你一个整数数组 ranks &#xff0c;表示一些机械工的 能力值 。ranksi 是第 i 位机械工的能力值。能力值为 r 的机械工可以在 r * n2 分钟内修好 n 辆车。 同时给你一个整数 cars &#xff0c;表示总…...

纯前端实现 导入 与 导出 Excel

最近经常在做 不规则Excel的导入&#xff0c;或者一些普通Excel的导出&#xff0c;当前以上说的都是纯前端来实现&#xff1b;下面我们来聊聊经常用到的Excel导出与导入的实现方案&#xff0c;本文实现技术栈以 Vue2 JS 为例 导入分类&#xff1a; 调用 API 完全由后端来解析数…...

关于一次两段式提交和数据库恢复数据我的一些想法

binlog是服务层的功能&#xff0c;而redolog是innodb引擎的功能&#xff0c;binlog主要用于主从复制&#xff0c;redolog主要用做数据的恢复&#xff0c;我们必须保证binlog和redolog日志数据的一致性。恢复数据时也必须遵守此一致性。 1.如果只写一次redolog会出现什么问题&a…...

阿里巴巴springcloud的gateway网关如何用继承接口WebExceptionHandler定义一个json格式的404错误页面实例

如果你想通过实现 WebExceptionHandler 接口来定义一个返回 JSON 格式的 404 错误页面的实例&#xff0c;可以按照以下方式操作&#xff1a; import org.springframework.core.annotation.Order; import org.springframework.http.HttpStatus; import org.springframework.ster…...

『力扣每日一题07』字符串最后一个单词的长度

气死我啦&#xff0c;今天这道题花了快一个小时&#xff0c;我学完了答案的解法&#xff0c;放上去在线 OJ &#xff0c;一直报错&#xff0c;找来找去都找不到自己错在哪&#xff0c;明明跟答案一模一样。后来还是学了另一种解法&#xff0c;才跑出来的(̥̥̥̥̥̥̥̥o̥̥…...

成都睿趣科技:抖音开店初期要注意什么

随着社交媒体和短视频平台的崛起&#xff0c;抖音已经成为了一个风靡全球的短视频应用&#xff0c;拥有着庞大的用户群体。因此&#xff0c;越来越多的创业者开始在抖音上开设自己的线上店铺&#xff0c;希望借助这个平台赚取丰厚的利润。然而&#xff0c;在抖音开店初期&#…...

QT 5.13保姆级安装教程

辨清关系 要想学习一个新的东西,我们必须知其事,达其理,悟其道,然后才能无往而不利也! 我们常听到QT、Qt Creator 和 Qt SDK ,这三者究竟是什么,他们之间的关系又是如何的?在安装QT之前我们先来了解一下他们之间的关系: Qt:Qt 是一个跨平台的 C++ 应用程序开发框架,…...

js 创建DOM,并添加父DOM上,移除某个DOM的所有子节点

在sectionIdDiv上&#xff0c;添加子DOM <div ref"sectionIdDiv" class"sectionIdDiv"> </div>创建你要添加的子DOM ## 创建DOM let elementDom document.createElement(div)## 设置DOM的样式 elementDom.style.height "15px" e…...

element el-input 二次封装

说明&#xff1a;为实现输入限制&#xff0c;不可输入空格&#xff0c;长度限制。 inputView.vue <template><!-- 输入框 --><el-input:type"type":placeholder"placeholder"v-model"input"input"inputChange":maxle…...

[源码系列:手写spring] IOC第十三节:Bean作用域,增加prototype的支持

为了帮助大家更深入的理解bean的作用域&#xff0c;特意将BeanDefinition的双例支持留到本章节中&#xff0c;创建Bean,相关Reader读取等逻辑都有所改动。 内容介绍 在Spring中&#xff0c;Bean的作用域&#xff08;Scope&#xff09;定义了Bean的生命周期和可见性。包括单例和…...

【性能优化】事件委托

一、为什么要用事件委托 当 dom 有事件处理程序时&#xff0c;我们一般都会直接给它设置事件处理程序&#xff0c;设想一下&#xff0c;如果在一个父元素中有很多个 dom 需要添加事件处理呢&#xff1f;比如 ul 中处在100个 li&#xff0c;每个 li 都有相同的 click 事件&…...

C 风格文件输入/输出---无格式输入/输出---(std::fputc,std::putc,std::fputs)

C 标准库的 C I/O 子集实现 C 风格流输入/输出操作。 <cstdio> 头文件提供通用文件支持并提供有窄和多字节字符输入/输出能力的函数&#xff0c;而 <cwchar>头文件提供有宽字符输入/输出能力的函数。 无格式输入/输出 写字符到文件流 std::fputc, std::putc in…...

建议收藏!Harmony应用配置文件概述(Stage模型)

一. 应用配置文件 每个应用项目必须在项目的代码目录下加入配置文件&#xff0c;这些配置文件会向编译工具、操作系统和应用市场提供应用的基本信息。 在基于Stage模型开发的应用项目代码下&#xff0c;都存在一个app.json5及一个或多个module.json5这两种配置文件。 app.json5…...

金蝶云星空和四化智造MES(WEB)单据接口对接

金蝶云星空和四化智造MES&#xff08;WEB&#xff09;单据接口对接 接入系统&#xff1a;四化智造MES&#xff08;WEB&#xff09; MES建立统一平台上通过物料防错防错、流程防错、生产统计、异常处理、信息采集和全流程追溯等精益生产和精细化管理&#xff0c;帮助企业合理安排…...

Shell命令切换root用户、管理配置文件、检查硬件

Shell命令切换root用户、管理配置文件、检查硬件 切换root用户 两种方法 su命令详细介绍 sudo命令详细介绍 /etc/passwd文件 /etc/passwd文件里为什么有乱七八糟的用户&#xff1f; /etc/shadow文件 管理配置文件 检查硬件命令 查看CPU 查看GPU 与其他基于UNIX的系统…...

DataX(MySQL同步数据到Doris)

1.场景 这里演示介绍的使用 Doris 的 Datax 扩展 DorisWriter实现从Mysql数据定时抽取数据导入到Doris数仓表里 2.编译 DorisWriter 这个的扩展的编译可以不在 doris 的 docker 编译环境下进行&#xff0c;本文是在 windows 下的 WLS 下进行编译的 首先从github上拉取源码 …...

sql server服务无法启动怎么办?如何正常启动?

sql server软件是一款关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点。并且有些应用软件使用过程中是需要sql server数据库的后台支持的&#xff0c;我们在数据编程操作时经常会使用这款编程软件&#xff0c;在编程时系统有时会提示sql server服务无…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...