自留地

分享自己的技能

0%

树莓派的100种玩法(9)自建WordPress博客

写在前面

本文基于树莓派的Debian系统,通过LAMP(LINUX+Apache+数据库+PHP)搭建WordPress,基本上适用于各种Linux系统下部署网站的步骤,我争取写成一个通用的教程,当然如果只是想装个wordpress体验下,也可以通过docker或者宝塔面板的方式安装,这两种方式其实更简单,不过不在此篇的讨论范围内。

1

系统及必要软件安装

系统使用的的树莓派官网最新的Debian系统,理论上来说使用Ubuntu也可以。

首先到官网下载系统,具体地址如下 链接

具体的写入安装过程我就不写了,有需要的可以看看我前面几篇,这里就简单地说两句

1
2
3
4
5
6
7
8
9
默认账户:pi           默认密码:raspberry
系统初次启动需要更新下系统,使用命令
sudo apt update
sudo apt upgrade
更新完成后使用命令设置root密码
sudo passwd
输入两遍密码后完成设置,使用命令
sudo raspi-config
命令更改所需要设置

写到这才发现我之前好像没写过这个菜单,这里只说下需要改的设置,其它设置可以根据需求自己更改

开启SSH

开启SSH后使用Putty或者SecureCRT通过SSH访问树莓派,进行后续的安装,而首先安装的就是apache2

1
sudo apt install apache2 -y

安装完成后访问树莓派的IP地址可以看到如下提示,证明已经安装成功

这里多说两句,这里访问的页面是路径 /var/www/html/下的index.html文件,如下

1
2
3
4
5
6
7
pi@raspberrypi:~$ cd /var/www/html
pi@raspberrypi:/var/www/html$ ls -al
total 20
drwxr-xr-x 2 root root 4096 Jun 15 14:08 .
drwxr-xr-x 3 root root 4096 Jun 15 14:08 ..
-rw-r--r-- 1 root root 10701 Jun 15 14:08 index.html
pi@raspberrypi:/var/www/html$

这里顺便普及一点Linux知识,通过命令ls -al显示的一系列内容分为7个字段,其中每一个字段有不同的含义

1
2
3
4
drwxr-xr-x 2 root root  4096 Jun 15 14:08 .
drwxr-xr-x 3 root root 4096 Jun 15 14:08 ..
-rw-r--r-- 1 root root 10701 Jun 15 14:08 index.html
(1) (2) (3) (4) (5) (6) (7)
  1. 其中的第一个字母”d”代表文件夹,”-“代表文件,另外常用的还有”l”代表链接。后面九个字母每三个一组,分别代表r(读)w(写)x(可执行),其中第一组代表”拥有者权限”;第二组代表”本用户组权限”;第三组代表”非本用户组其它的权限”
  2. 占用的节点(i-node)。
  3. 表示这个文件或目录的拥有者
  4. 拥有者所在的用户组
  5. 文件的大小
  6. 文件的创建日期或者最近修改的时间
  7. 文件名,这里的”.”代表当前目录,”..”代表上一级目录。

接着安装PHP,类似的命令

1
sudo apt install php -y

安装完成后在上面的路径创建index.php 文件,然后写个Hello World,CTRL+O保存,CTRL+X退出

1
2
3
4
5
6
7
8
9
pi@raspberrypi:/var/www/html$ sudo nano index.php
GNU nano 3.2 index.php

<?php echo "Hello World"; ?>




pi@raspberrypi:/var/www/html$

再看下当前目录下文件

1
2
3
4
5
6
7
pi@raspberrypi:/var/www/html$ ls -al
total 24
drwxr-xr-x 2 root root 4096 Jun 15 15:21 .
drwxr-xr-x 3 root root 4096 Jun 15 14:08 ..
-rw-r--r-- 1 root root 10701 Jun 15 14:08 index.html
-rw-r--r-- 1 root root 29 Jun 15 15:18 index.php

因为html文件比php文件优先级高,这里要删除html文件,然后刷新页面

1
pi@raspberrypi:/var/www/html$ sudo rm index.html

msedge_7MAfE7oVpc

安装MySQL(MariaDB),也是一条命令

1
sudo apt install mariadb-server php-mysql -y

安装好后重启下Apache

1
sudo service apache2 restart

下载及安装WordPress

准备工作完成了,进入正题,首先确定所在目录为**/var/www/html/**,然后删除目录下所有文件

1
2
3
4
5
pi@raspberrypi:/var/www/html$ ls
index.php
pi@raspberrypi:/var/www/html$ sudo rm *
pi@raspberrypi:/var/www/html$ ls
pi@raspberrypi:/var/www/html$

下载wordpress最新安装包

1
sudo wget http://wordpress.org/latest.tar.gz

下载完成后看下文件名,解压缩

1
2
3
4
5
6
pi@raspberrypi:/var/www/html$ ls
latest.tar.gz
pi@raspberrypi:/var/www/html$ sudo tar xzf latest.tar.gz
pi@raspberrypi:/var/www/html$ ls
latest.tar.gz wordpress

然后将wordpress文件夹下的所有文件拷贝到当前目录,并且删除空文件夹wordpress和压缩包latest.tar.gz

1
2
pi@raspberrypi:/var/www/html$ sudo mv wordpress/* .         #这后面有个点,代表当前目录,看好了
pi@raspberrypi:/var/www/html$ sudo rm -rf wordpress latest.tar.gz

然后看下目录下所有文件,如果你操作正确,目录下文件和我这里是一样的,16个文件,3个目录(不算“点”)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
pi@raspberrypi:/var/www/html$ ls -al
total 216
drwxr-xr-x 5 root root 4096 Jun 15 15:53 .
drwxr-xr-x 3 root root 4096 Jun 15 14:08 ..
-rw-r--r-- 1 nobody nogroup 405 Feb 6 2020 index.php
-rw-r--r-- 1 nobody nogroup 19915 Jan 1 08:19 license.txt
-rw-r--r-- 1 nobody nogroup 7345 Dec 30 04:14 readme.html
-rw-r--r-- 1 nobody nogroup 7165 Jan 21 09:37 wp-activate.php
drwxr-xr-x 9 nobody nogroup 4096 May 13 07:49 wp-admin
-rw-r--r-- 1 nobody nogroup 351 Feb 6 2020 wp-blog-header.php
-rw-r--r-- 1 nobody nogroup 2328 Feb 17 21:08 wp-comments-post.php
-rw-r--r-- 1 nobody nogroup 2913 Feb 6 2020 wp-config-sample.php
drwxr-xr-x 4 nobody nogroup 4096 May 13 07:49 wp-content
-rw-r--r-- 1 nobody nogroup 3939 Jul 31 2020 wp-cron.php
drwxr-xr-x 25 nobody nogroup 12288 May 13 07:49 wp-includes
-rw-r--r-- 1 nobody nogroup 2496 Feb 6 2020 wp-links-opml.php
-rw-r--r-- 1 nobody nogroup 3313 Jan 11 03:28 wp-load.php
-rw-r--r-- 1 nobody nogroup 44994 Apr 5 02:34 wp-login.php
-rw-r--r-- 1 nobody nogroup 8509 Apr 14 2020 wp-mail.php
-rw-r--r-- 1 nobody nogroup 21125 Feb 2 08:10 wp-settings.php
-rw-r--r-- 1 nobody nogroup 31328 Jan 28 05:03 wp-signup.php
-rw-r--r-- 1 nobody nogroup 4747 Oct 9 2020 wp-trackback.php
-rw-r--r-- 1 nobody nogroup 3236 Jun 9 2020 xmlrpc.php

根据上面的文件属性来看,需要给文件授权

1
pi@raspberrypi:/var/www/html$ sudo chown -R www-data: . 

接着给WordPress创建数据库,首先设置MySQL/MariaDB

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
pi@raspberrypi:/var/www/html$ sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): #输入之前的root密码,没有直接回车
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y #设置新的root密码,设置好别忘了
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y #移除未注册用户
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y #不允许root密码远程登录
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y #删除测试数据库
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y #重新加载授权信息
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

接着创建WordPress的数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pi@raspberrypi:/var/www/html$ sudo mysql -uroot -p
Enter password: #输入刚刚设置的root密码登录数据库
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 57
Server version: 10.3.27-MariaDB-0+deb10u1 Raspbian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database wordpress; #创建名为wordpress的数据库
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress.* TO 'root'@'localhost' IDENTIFIED BY '12345678'; #给root用户授权,IDENTIFIED BY 后面输入自己的密码,别照抄
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> FLUSH PRIVILEGES; #刷新授权
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> Bye #CTRL+D退出编辑界面
pi@raspberrypi:/var/www/html$ sudo reboot #重启树莓派

最后进行WordPress设置,等待树莓派重启完成后,刷新一下之前的网页

点击继续后根据下图提示准备好所需的登录信息

填入之前设置的信息,然后点击运行安装程序

自己填下后面的信息,安装WordPress

通过上面设置的用户名密码登录博客,后面就是一些设置,优化,发布到外网,主题,SEO之类的,感兴趣可以给我留言,我再写个补充,如果大家兴趣不大的话,下一篇应该是关于硬件的了。

如果对您有帮助,可以考虑支持下作者