环境
- 系统:Ubuntu 20.04 LTS
- 服务:XAMPP (Apache + MySQL + PHP + PERL)
安装
更新系统
先将 Ubuntu 系统更新到最新
$ sudo apt update
$ sudo apt upgrade -y
安装 XAMPP
到 XAMPP 官网,选择 Linux 版本下载,在弹出的新页面复制地址栏链接,然后在 Ubuntu 主机下载
# 这个链接可能是旧的,以官网提供的地址为准
$ wget https://www.apachefriends.org/xampp-files/7.4.8/xampp-linux-x64-7.4.8-0-installer.run
赋予安装文件可执行权限
$ chmod +x ./xampp-linux-x64-7.4.8-0-installer.run
以 root 身份安装,安装过程提示的内容都默认即可
$ sudo ./xampp-linux-x64-7.4.8-0-installer.run
安装完成后,XAMPP 目录在 /opt/lampp 下
安装 WordPress
到官方简体中文网手动下载:cn.wordpress.org/download 或者执行:
$ wget https://cn.wordpress.org/latest-zh_CN.tar.gz
下载后解压并移动到目录 /opt/lampp/htdocs 下
$ tar zxf latest-zh_CN.tar.gz
$ sudo mv -f wordpress/ /opt/lampp/htdocs/
配置
到此最好有域名,然后生成 SSL 证书,如何生成证书这里就不赘述了
配置 HTTP
$ sudo vi /opt/lampp/etc/httpd.conf
将以下参数修改为自己的信息
ServerName www.domain.com:80
DocumentRoot "/opt/lampp/htdocs/wordpress"
<Directory "/opt/lampp/htdocs/wordpress">
修改后保存并重启 Apache 服务
$ sudo /opt/lampp/lampp restartapache
服务重启成功后,使用 http://www.domain.com 访问你的域名就可以进入 WordPress 配置界面了
升级 HTTPS
$ sudo vi /opt/lampp/etc/extra/httpd-ssl.conf
将以下参数修改为自己的信息
<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 服务
$ sudo /opt/lampp/lampp restartapache
服务重启成功后,就可以使用 https://www.domain.com 访问你的网站
数据库配置
允许 phpmyadmin 外网访问
XAMPP 自带 MySQL,同时也自带了 phpmyadmin,方便管理数据库,首先配置 httpd-xampp.conf 使其允许外网访问
$ sudo vi /opt/lampp/etc/extra/httpd-xampp.conf
找到 <Directory “/opt/lampp/phpmyadmin”> 修改参数
<Directory "/opt/lampp/phpmyadmin">
# Require local 这一行修改为
Require all granted
保存并重启 Apache 服务
$ sudo /opt/lampp/lampp restartapache
此时访问 https://www.domain.com/phpmyadmin 即可进入 MySQL 管理页面
phpmyadmin 账户登录
目前外网可以直接访问 phpmyadmin,没有提示登录,这样任何人只要尝试访问都可以进入 MySQL 管理页面,这样很危险,所以需要修改 phpmyadmin 为账户登录方式进入
首先给 localhost 的 root 用户添加密码,点击 phpmyadmin 的 账户 标签,在下方找到 用户名 root –主机名 localhost 一行后面点击 修改权限
点击 修改密码 按钮,在下方输入密码,点击 执行 按钮保存
然后修改 phpmyadmin 配置文件,使其不能自动登录
$ sudo vi /opt/lampp/phpmyadmin/config.inc.php
修改以下参数
$cfg['blowfish_secret'] = 'myblowfishsecretmyblowfishsecret' # 自定义且尽量长
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
修改后保存并重启 XAMPP 服务
$ sudo /opt/lampp/lampp restart
重启后访问 https://www.domain.com/phpmyadmin 即可看到需要账号密码登录
phpmyadmin 强制 HTTPS 访问
默认使用 http 访问 phpmyadmin 是不会重定向到 https 的,不安全,所以可以修改配置让其重定向
$ sudo vi /opt/lampp/etc/extra/httpd-xampp.conf
找到 <IfModule mod_perl.c>,在里面添加
<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
$ sudo /opt/lampp/lampp restartapache
WordPress 账号和数据库
需要创建 WordPress 专用的 MySQL 账户和数据库
创建数据库
登录 phpmyadmin 后,点击左侧数据库列表最顶部的 新建 或者点击 数据库 标签新建数据库,数据库名字自定义,最好是加上前缀,比如我的数据库名字为:clv_wp_db,点击 创建 按钮
新建账户
点击左侧数据库列表新建的数据库,然后点击 权限 标签,就可以看到该数据库下的账户权限,点击下方的 新增用户账户 按钮
输入 账号 和 密码,主机名选择 本地,并滚动到下方将数据库全局权限的 全选 勾上,然后点击 执行 保存
最后点击 执行 按钮,跳转到新界面后,会显示该新建账户在当前数据库权限,也将 全选 勾上,然后点击 执行 保存
配置 WordPress
修改 WordPress 目录权限
$ cd /opt/lampp/htdocs
$ sudo chown -R wp:www-data wordpress
$ sudo chmod -R 777 wordpress
复制 wordpress 目录下 wp-config-sample.php 为 wp-config.php,并修改配置
$ cd wordpress/
$ cp wp-config-sample.php wp-config.php
$ vi wp-config.php
修改数据库连接配置
/** WordPress数据库的名称 */
define( 'DB_NAME', 'clv_wp_db' );
/** MySQL数据库用户名 */
define( 'DB_USER', 'test1' );
/** MySQL数据库密码 */
define( 'DB_PASSWORD', '12345678' );
/** WordPress数据表前缀 */
$table_prefix = 'clv_'; # 自定义,我自己用数据库名字前缀
并在该文件最后添加
/** wordpress 后台管理安装插件不需 ftp 登录 */
define("FS_METHOD", "direct");
define("FS_CHMOD_DIR", 0777);
define("FS_CHMOD_FILE", 0777);
保存后直接访问你的域名 https://www.domain.com 即可初始化 WordPress
强制 HTTPS 访问
$ sudo vi /opt/lampp/htdocs/wordpress/.htaccess
在 </IfModule> 以外添加
</IfModule>
# END WordPress
# 强制 HTTPS 访问
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
保存并重启 Apache 服务
$ 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 最后添加即可
//搜索美化伪静态
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' );