从零开始在树莓派上搭建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 页面,要求选择您的语言。
您将看到 WordPress 欢迎屏幕
- 点击
现在就开始!
按钮。 - 现在填写网站基本信息如下:
Database Name: wordpress
User Name: root
Password: <YOUR PASSWORD>
Database Host: localhost
Table Prefix: wp_
- 单击
提交
继续。 - 单击
运行安装程序
按钮。
现在你越来越近了!
填写信息:为您的站点命名,创建用户名和密码,然后输入您的电子邮件地址。点击 安装 WordPress
按钮,然后使用您刚刚创建的帐户登录。
现在您已登录并设置了站点,您可以通过访问 http://localhost/wp-admin 来查看该网站。
登录管理后台:
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
仪表盘
–>插件
–>安装插件
- 在关键词搜索栏输入
Relative URL
回车
- 找到插件后点击
现在安装
按钮 - 当安装成功后,点击
启用
按钮,激活插件。
修改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
配置好以后如图:
现在,我们的博客站点可以被公网正常访问啦!让我们看看效果:
7. 支持好友链接样式
建议您更改永久链接设置以使您的 URL 更友好。
为此,请登录 WordPress 并转到仪表盘
。
转到设置
,然后转到固定链接
。
选择文章名
选项,然后单击保存更改
。
您需要启用 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仪表盘–>外观–>主题
- 点击热门,选择一个自己喜欢的主题,点击
安装
按钮
- 主题安装成功后,点击
启用
按钮。 - 让我们重新打开站点,看一下效果:
现在,您的站点已经建好了,您可以进一步体验更多的主题,慢慢探索吧。
转载自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语言虽然不支持经典的面向对象语法元素,比如类、对象、继承等,但Go语言也有方法。和函数相比,Go语言中的方法在声明形式上仅仅多了一个参数,Go称之为receiver参数。receiver参数是方法与类型之间的纽带。 Go方法的一般声明形式…...
Go基础12-理解Go语言表达式的求值顺序
Go语言在变量声明、初始化以及赋值语句上相比其先祖C语言做了一些改进,诸如: ● 支持在同一行声明和初始化多个变量(不同类型也可以) var a, b, c 5, "hello", 3.45 a, b, c : 5, "hello", 3.45 // 短变量…...
OJ练习第165题——修车的最少时间
修车的最少时间 力扣链接:2594. 修车的最少时间 题目描述 给你一个整数数组 ranks ,表示一些机械工的 能力值 。ranksi 是第 i 位机械工的能力值。能力值为 r 的机械工可以在 r * n2 分钟内修好 n 辆车。 同时给你一个整数 cars ,表示总…...
纯前端实现 导入 与 导出 Excel
最近经常在做 不规则Excel的导入,或者一些普通Excel的导出,当前以上说的都是纯前端来实现;下面我们来聊聊经常用到的Excel导出与导入的实现方案,本文实现技术栈以 Vue2 JS 为例 导入分类: 调用 API 完全由后端来解析数…...
关于一次两段式提交和数据库恢复数据我的一些想法
binlog是服务层的功能,而redolog是innodb引擎的功能,binlog主要用于主从复制,redolog主要用做数据的恢复,我们必须保证binlog和redolog日志数据的一致性。恢复数据时也必须遵守此一致性。 1.如果只写一次redolog会出现什么问题&a…...
阿里巴巴springcloud的gateway网关如何用继承接口WebExceptionHandler定义一个json格式的404错误页面实例
如果你想通过实现 WebExceptionHandler 接口来定义一个返回 JSON 格式的 404 错误页面的实例,可以按照以下方式操作: import org.springframework.core.annotation.Order; import org.springframework.http.HttpStatus; import org.springframework.ster…...
『力扣每日一题07』字符串最后一个单词的长度
气死我啦,今天这道题花了快一个小时,我学完了答案的解法,放上去在线 OJ ,一直报错,找来找去都找不到自己错在哪,明明跟答案一模一样。后来还是学了另一种解法,才跑出来的(̥̥̥̥̥̥̥̥o̥̥…...
成都睿趣科技:抖音开店初期要注意什么
随着社交媒体和短视频平台的崛起,抖音已经成为了一个风靡全球的短视频应用,拥有着庞大的用户群体。因此,越来越多的创业者开始在抖音上开设自己的线上店铺,希望借助这个平台赚取丰厚的利润。然而,在抖音开店初期&#…...
QT 5.13保姆级安装教程
辨清关系 要想学习一个新的东西,我们必须知其事,达其理,悟其道,然后才能无往而不利也! 我们常听到QT、Qt Creator 和 Qt SDK ,这三者究竟是什么,他们之间的关系又是如何的?在安装QT之前我们先来了解一下他们之间的关系: Qt:Qt 是一个跨平台的 C++ 应用程序开发框架,…...
js 创建DOM,并添加父DOM上,移除某个DOM的所有子节点
在sectionIdDiv上,添加子DOM <div ref"sectionIdDiv" class"sectionIdDiv"> </div>创建你要添加的子DOM ## 创建DOM let elementDom document.createElement(div)## 设置DOM的样式 elementDom.style.height "15px" e…...
element el-input 二次封装
说明:为实现输入限制,不可输入空格,长度限制。 inputView.vue <template><!-- 输入框 --><el-input:type"type":placeholder"placeholder"v-model"input"input"inputChange":maxle…...
[源码系列:手写spring] IOC第十三节:Bean作用域,增加prototype的支持
为了帮助大家更深入的理解bean的作用域,特意将BeanDefinition的双例支持留到本章节中,创建Bean,相关Reader读取等逻辑都有所改动。 内容介绍 在Spring中,Bean的作用域(Scope)定义了Bean的生命周期和可见性。包括单例和…...
【性能优化】事件委托
一、为什么要用事件委托 当 dom 有事件处理程序时,我们一般都会直接给它设置事件处理程序,设想一下,如果在一个父元素中有很多个 dom 需要添加事件处理呢?比如 ul 中处在100个 li,每个 li 都有相同的 click 事件&…...
C 风格文件输入/输出---无格式输入/输出---(std::fputc,std::putc,std::fputs)
C 标准库的 C I/O 子集实现 C 风格流输入/输出操作。 <cstdio> 头文件提供通用文件支持并提供有窄和多字节字符输入/输出能力的函数,而 <cwchar>头文件提供有宽字符输入/输出能力的函数。 无格式输入/输出 写字符到文件流 std::fputc, std::putc in…...
建议收藏!Harmony应用配置文件概述(Stage模型)
一. 应用配置文件 每个应用项目必须在项目的代码目录下加入配置文件,这些配置文件会向编译工具、操作系统和应用市场提供应用的基本信息。 在基于Stage模型开发的应用项目代码下,都存在一个app.json5及一个或多个module.json5这两种配置文件。 app.json5…...
金蝶云星空和四化智造MES(WEB)单据接口对接
金蝶云星空和四化智造MES(WEB)单据接口对接 接入系统:四化智造MES(WEB) MES建立统一平台上通过物料防错防错、流程防错、生产统计、异常处理、信息采集和全流程追溯等精益生产和精细化管理,帮助企业合理安排…...
Shell命令切换root用户、管理配置文件、检查硬件
Shell命令切换root用户、管理配置文件、检查硬件 切换root用户 两种方法 su命令详细介绍 sudo命令详细介绍 /etc/passwd文件 /etc/passwd文件里为什么有乱七八糟的用户? /etc/shadow文件 管理配置文件 检查硬件命令 查看CPU 查看GPU 与其他基于UNIX的系统…...
DataX(MySQL同步数据到Doris)
1.场景 这里演示介绍的使用 Doris 的 Datax 扩展 DorisWriter实现从Mysql数据定时抽取数据导入到Doris数仓表里 2.编译 DorisWriter 这个的扩展的编译可以不在 doris 的 docker 编译环境下进行,本文是在 windows 下的 WLS 下进行编译的 首先从github上拉取源码 …...
sql server服务无法启动怎么办?如何正常启动?
sql server软件是一款关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点。并且有些应用软件使用过程中是需要sql server数据库的后台支持的,我们在数据编程操作时经常会使用这款编程软件,在编程时系统有时会提示sql server服务无…...
SpringMVC实现文件上传和下载
目录 前言 一. SpringMVC文件上传 1. 配置多功能视图解析器 2. 前端代码中,将表单标记为多功能表单 3. 后端利用MultipartFile 接口,接收前端传递到后台的文件 4. 文件上传示例 1. 相关依赖: 2. 逆向生成对应的类 3. 后端代码…...
Your build is currently configured to use Java 20.0.2 and Gradle 8.0
jdk 版本不适配 下载jdk17 https://www.oracle.com/java/technologies/downloads/#jdk17 参考 JDK17的下载安装与配置(详细教程)_keyila798的博客-CSDN博客...
栈 之 如何实现一个栈
前言 栈最鲜明的特点就是后进先出,一碟盘子就是类似这样的结构,最晚放上去的,可以最先拿出来。本文将介绍的是如何自己实现一个栈结构。 栈的操作 栈是一种先进后出(Last-In-First-Out, LIFO)的数据结构,…...
uni-app:自带的消息提示被遮挡的解决办法(自定义消息提示框)
效果: 代码: 1、在最外层或者根组件的模板中添加一个容器元素,用于显示提示消息。例如: <div class"toast-container" v-if"toastMessage"><div class"toast-content">{{ toastMessa…...
PHP设备检验系统Dreamweaver开发mysql数据库web结构php编程计算机网页代码
一、源码特点 PHP设备检验系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 下载地址 https://download.csdn.net/download/qq_41221322/88306259 php设备检验系统1 …...
Windows 可以使用以下快捷键打开终端(命令提示符)
Windows 可以使用以下快捷键打开终端(命令提示符) 使用快捷键 Win R 打开 “运行” 对话框,然后输入 “cmd” 并按下 Enter 键。这将打开默认的命令提示符窗口。 使用快捷键 Ctrl Shift Esc 打开任务管理器,然后在 “文件” …...
Netty编程面试题
1.Netty 是什么? Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。Netty是基于nio的,它封装了jdk的nio,让我们使用起来更加方法灵活。 2.Netty 的特点是什么? 高并发&a…...
math_review
topics mathmatics supreme and optimumNorm and Linear producttopology of R*Continuious Function supreme and optimum Def 1: 非空有界集合必有上确界 common norm (1) x ∈ \in ∈ Rn, ||x||2 x 1 2 x 2 2 . . . x n 2 \sqrt {x_1^2x_2^2...x_n^2} x12x22.…...
肖sir__设计测试用例方法之场景法04_(黑盒测试)
设计测试用例方法之场景法 1、场景法主要是针对测试场景类型的,顾也称场景流程分析法。 2、流程分析是将软件系统的某个流程看成路径,用路径分析的方法来设计测试用例。根据流程的顺序依次进行组合,使得流程的各个分支能走到。 举例说明&…...
plt函数显示图片 在图片上画边界框 边界框坐标转换
一.读取图片并显示图片 %matplotlib inline import torch from d2l import torch as d2l读取图片 image_path ../data/images/cat_dog_new.jpg # 创建画板 figure d2l.set_figsize() image d2l.plt.imread(image_path) d2l.plt.imshow(image);二.给出一个(x左上角,y左上角,…...
深圳网站建设招标/色盲测试图数字
从centos7版本开始,为了保持更好的开源度,系统最小化版本的默认数据库变为mariadb,但为了实验需要,决定还是安装mysql(毕竟两者的存储引擎是有区别的,尽管mariadb能很好的兼容mysql),下面介绍如何安装。首先…...
网站建设交易平台/百度付费推广有几种方式
最近在使用阿里云MNS官方PHP版SDK的过程中,发现发送到topic的消息,不能设置tag(其它语言版本SDK支持tag,如java,python),但在阿里云控制台页面发送是可以设置tag的。 因为业务需要,所…...
网站开发技术试验总结/网络营销策划师
Tornado是什么?Tornado是一个用Python编写的异步HTTP服务器,同时也是一个web开发框架。Tornado 优秀的大并发处理能力得益于它的 web server 从底层开始就自己实现了一整套基于 epoll 的单线程异步架构。同步、异步编程差异对于同步阻塞型Web服务器&…...
免费做网站的/网络营销管理
Simulink 是面向框图的仿真软件。7.1 演示一个Simulink 的简单程序【例7.1】创建一个正弦信号的仿真模型。步骤如下:(1) 在MATLAB 的命令窗口运行simulink 命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(Simulink Library Brows…...
网站的文件结构/hao123网址大全浏览器设为主页
Java里面进行多线程通信的主要方式就是共享内存的方式,共享内存主要的关注点:可见性和有序性以及原子性。 Java内存模型(JMM)解决了可见性和有序性的问题,而锁解决了原子性的问题,理想情况下我们希望做到“…...
网站改版提交给百度/百度系优化
就目前大环境来看,跳槽成功的难度比往年高很多。总结一下2019面试的感受:无论一面还是二面,都很考验Java程序员的技术功底!!最近我整理了一份复习用的面试题及面试高频的考点题及技术点梳理成一份“Java程序员高频面试…...