使用 Ubuntu 20.04 XAMPP WordPress 搭建博客

使用 Ubuntu 20.04 XAMPP WordPress 搭建博客

Gelomen Lv4

使用 Ubuntu XAMPP WordPress 便捷搭建博客

环境

  • 系统: Ubuntu 20.04 LTS
  • 服务: XAMPP (Apache + MySQL + PHP + PERL)
  • 框架: WordPress

安装

更新系统

先将 Ubuntu 系统更新到最新

1
2
sudo apt update
sudo apt upgrade -y

安装 XAMPP

到 XAMPP 官网, 选择 Linux 版本下载, 在弹出的新页面复制地址栏链接, 然后在 Ubuntu 主机下载

1
2
# 这个链接可能是旧的, 以官网提供的地址为准
wget https://www.apachefriends.org/xampp-files/7.4.8/xampp-linux-x64-7.4.8-0-installer.run

赋予安装文件可执行权限

1
chmod +x ./xampp-linux-x64-7.4.8-0-installer.run

以 root 身份安装, 安装过程提示的内容都默认即可

1
sudo ./xampp-linux-x64-7.4.8-0-installer.run

安装完成后, XAMPP 目录在 /opt/lampp 下

安装 WordPress

到官方简体中文网手动下载: WordPress 官网 或者执行:

1
wget https://cn.wordpress.org/latest-zh_CN.tar.gz

下载后解压并移动到目录 /opt/lampp/htdocs 下

1
2
tar zxf latest-zh_CN.tar.gz
sudo mv -f wordpress/ /opt/lampp/htdocs/

配置

到此最好有域名, 然后生成 SSL 证书, 如何生成证书这里就不赘述了

配置 HTTP

1
sudo vi /opt/lampp/etc/httpd.conf

将以下参数修改为自己的信息

1
2
3
ServerName www.domain.com:80
DocumentRoot "/opt/lampp/htdocs/wordpress"
<Directory "/opt/lampp/htdocs/wordpress">

修改后保存并重启 Apache 服务

1
sudo /opt/lampp/lampp restartapache

服务重启成功后, 使用 http://www.domain.com 访问你的域名就可以进入 WordPress 配置界面了

升级 HTTPS

1
sudo vi /opt/lampp/etc/extra/httpd-ssl.conf

将以下参数修改为自己的信息

1
2
3
4
5
6
7
8
<VirtualHost *:443>
DocumentRoot "/opt/lampp/htdocs/wordpress"
ServerName www.domain.com:443
ServerAlias domain.com:443
# 并找到下面三个参数修改为自定义证书路径
SSLCertificateFile "/server/cert/cert.crt"
SSLCertificateKeyFile "/server/cert/cert.key"
SSLCertificateChainFile "/server/cert/chain.crt"

修改后保存并重启 Apache 服务

1
sudo /opt/lampp/lampp restartapache

服务重启成功后, 就可以使用 https://www.domain.com 访问你的网站

数据库配置

允许 phpmyadmin 外网访问

XAMPP 自带 MySQL, 同时也自带了 phpmyadmin, 方便管理数据库, 首先配置 httpd-xampp.conf 使其允许外网访问

1
sudo vi /opt/lampp/etc/extra/httpd-xampp.conf

找到 <Directory “/opt/lampp/phpmyadmin”> 修改参数

httpd-xampp.conf
1
2
3
<Directory "/opt/lampp/phpmyadmin">
- Require local
+ Require all granted

保存并重启 Apache 服务

1
sudo /opt/lampp/lampp restartapache

此时访问 https://www.domain.com/phpmyadmin 即可进入 MySQL 管理页面

phpmyadmin 账户登录

目前外网可以直接访问 phpmyadmin, 没有提示登录, 这样任何人只要尝试访问都可以进入 MySQL 管理页面, 这样很危险, 所以需要修改 phpmyadmin 为账户登录方式进入

首先给 localhost 的 root 用户添加密码, 点击 phpmyadmin 的 账户 标签, 在下方找到 用户名 root – 主机名 localhost 一行后面点击 修改权限

phpmyadmin 账户
phpmyadmin 账户

点击 修改密码 按钮, 在下方输入密码, 点击 执行 按钮保存

修改密码
修改密码

然后修改 phpmyadmin 配置文件, 使其不能自动登录

1
sudo vi /opt/lampp/phpmyadmin/config.inc.php

修改以下参数

1
2
3
$cfg['blowfish_secret'] = 'myblowfishsecretmyblowfishsecret' # 自定义且尽量长
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';

修改后保存并重启 XAMPP 服务

1
sudo /opt/lampp/lampp restart

重启后访问 https://www.domain.com/phpmyadmin 即可看到需要账号密码登录

phpmyadmin 登录
phpmyadmin 登录

phpmyadmin 强制 HTTPS 访问

默认使用 http 访问 phpmyadmin 是不会重定向到 https 的, 不安全, 所以可以修改配置让其重定向

1
sudo vi /opt/lampp/etc/extra/httpd-xampp.conf

找到 <IfModule mod_perl.c>, 在里面添加

httpd-xampp.conf
1
2
3
4
5
6
7
8
9
<IfModule mod_perl.c>
...
+ PerlSendHeader On

+ # 强制 HTTPS 访问
+ RewriteEngine On
+ RewriteCond %{SERVER_PORT} !^443$
+ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

然后重启 Apache 服务, 再次用 http 访问 phpmyadmin 就可以自动跳转到 https

1
sudo /opt/lampp/lampp restartapache

WordPress 账号和数据库

需要创建 WordPress 专用的 MySQL 账户和数据库

创建数据库

登录 phpmyadmin 后, 点击左侧数据库列表最顶部的 新建 或者点击 数据库 标签新建数据库, 数据库名字自定义, 最好是加上前缀, 比如我的数据库名字为: clv_wp_db, 点击 创建 按钮

创建数据库
创建数据库

新建账户

点击左侧数据库列表新建的数据库, 然后点击 权限 标签, 就可以看到该数据库下的账户权限, 点击下方的 新增用户账户 按钮

新增用户账户
新增用户账户

输入 账号 和 密码, 主机名选择 本地, 并滚动到下方将数据库全局权限的 全选 勾上, 然后点击 执行 保存

配置账户密码
配置账户密码

配置账户权限
配置账户权限

最后点击 执行 按钮, 跳转到新界面后, 会显示该新建账户在当前数据库权限, 也将 全选 勾上, 然后点击 执行 保存

配置账户权限
配置账户权限

配置 WordPress

修改 WordPress 目录权限

1
2
3
cd /opt/lampp/htdocs
sudo chown -R wp:www-data wordpress
sudo chmod -R 777 wordpress

复制 wordpress 目录下 wp-config-sample.php 为 wp-config.php, 并修改配置

1
2
3
cd wordpress/
cp wp-config-sample.php wp-config.php
vi wp-config.php

修改数据库连接配置

wp-config.php
1
2
3
4
5
6
7
8
/** WordPress数据库的名称 */
define( 'DB_NAME', 'clv_wp_db' );
/** MySQL数据库用户名 */
define( 'DB_USER', 'test1' );
/** MySQL数据库密码 */
define( 'DB_PASSWORD', '12345678' );
/** WordPress数据表前缀 */
$table_prefix = 'clv_'; # 自定义, 我自己用数据库名字前缀

并在该文件最后添加

wp-config.php
1
2
3
4
+ /** wordpress 后台管理安装插件不需 ftp 登录  */
+ define("FS_METHOD", "direct");
+ define("FS_CHMOD_DIR", 0777);
+ define("FS_CHMOD_FILE", 0777);

保存后直接访问你的域名 https://www.domain.com 即可初始化 WordPress

强制 HTTPS 访问

1
sudo vi /opt/lampp/htdocs/wordpress/.htaccess

在 </IfModule> 以外添加

.htaccess
1
2
3
4
5
6
7
</IfModule>

# END WordPress

+ # 强制 HTTPS 访问
+ RewriteCond %{SERVER_PORT} !^443$
+ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

保存并重启 Apache 服务

1
sudo /opt/lampp/lampp restartapache

此时用 http://www.domain.com 会自动跳转到 https://www.domain.com

美化 WordPress 搜索 url

将搜索后的 url 从 https://www.domain.com/?s=搜索词 变为 https://www.domain.com/search/搜索词

在主题函数模板 functions.php 最后添加即可

functions.php
1
2
3
4
5
6
7
8
9
10
11
//搜索美化伪静态
function change_search_url_rewrite() {
if ( is_search() && ! empty( $_GET['s'] ) ) {
wp_redirect( home_url( '/search/' ) . urlencode( get_query_var( 's' ) ) );
exit();
} elseif ( is_search() && empty( get_query_var( 's' ) ) ) {
wp_redirect( home_url( '/search' ) );
exit();
}
}
add_action( 'template_redirect', 'change_search_url_rewrite' );
  • 标题: 使用 Ubuntu 20.04 XAMPP WordPress 搭建博客
  • 作者: Gelomen
  • 创建于 : 2021-10-17 00:39:18
  • 更新于 : 2021-10-17 00:39:18
  • 链接: https://gelomen.github.io/posts/ubuntu-xampp-wordpress/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论