Forev3rNAlway5
INTP / Auditor / PwC
SJH.MOE

记录一次 WordPress 安装

现在的 sjh.moe 是运行在现成的 docker 上的,想想也不是长久的事。个人不懂运维,只知道碰到问题谷歌解决。现在打算现搭建一个测试站,来遇见一下不用 docker 跑 WP 可能遇到的问题。

安装 Ubuntu

此次安装选择 Ubuntu 18.04.1 LTS 系统,更换 SSH 端口,开启 tcp_bbr 。教程参考此处

uname -r
lsmod | grep bbr
sudo modprobe tcp_bbr
echo "tcp_bbr" | sudo tee --append /etc/modules-load.d/modules.conf
echo "net.core.default_qdisc=fq" | sudo tee --append /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee --append /etc/sysctl.conf
sudo sysctl -p
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
lsmod | grep bbr

配置 LEMP

LEMP 是搭建网站的基础,此处使用 DigitalaOcean 教程

安装 Nginx

sudo apt-get update && sudo apt-get install nginx -y

安装 MySQL

sudo apt-get install mysql-server -y
sudo mysql_secure_installation

密码等级选择 1 (MEDIUM) ,输入符合标准的密码,其余选项均选择 YES 。

sudo mysql 
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user; 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
mysql> exit

安装 PHP

sudo apt install php-fpm php-mysql -y

创建 Nginx 配置文件 /etc/nginx/sites-available/xxx.xxx

server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name xxx.xxx;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}

将配置文件链接至 sites-enabled ,删除
sites-enabled 内的 default 链接。

sudo ln -s /etc/nginx/sites-available/xxx.xxx /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default

测试配置文件并重启 Nginx

sudo nginx -t
sudo systemctl reload nginx

测试 php 是否已正确配置

sudo nano /var/www/html/info.php
<?php
phpinfo();

打开 http://your_server_domain_or_IP/info.php 查看是否显示正常。若显示正常,删除测试页面。

sudo rm /var/www/html/info.php

安装 WordPress

WP 安装教程同样参考 DigitalOcean ,见此处

配置 MySQL

mysql -u root -p
mysql> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
mysql> GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> exit

安装额外 PHP 扩展

sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip -y
sudo systemctl restart php7.2-fpm

修改 Nginx 配置文件

server {
    . . .

    client_max_body_size 100M;

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
    . . .
}
server {
    . . .
    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }
    . . .
}
sudo nginx -t
sudo systemctl reload nginx

安装 WordPress

cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
sudo cp -a /tmp/wordpress/. /var/www/html
sudo chown -R www-data:www-data /var/www/html

配置 WordPress

curl -s https://api.wordpress.org/secret-key/1.1/salt/

将以上命令得到的结果粘贴至 /var/www/html/wp-config.php

并修改如下内容

. . .

define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpressuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

. . .

define('FS_METHOD', 'direct');

至此,WordPress 已安装完毕,可以访问网址进行进一步安装。

使用 Let’s Encrypt 证书为网页 +1s

教程参考此处

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot -y
sudo apt-get update
sudo apt-get install python-certbot-nginx -y
sudo certbot --nginx

输入你的邮箱地址,同意 ToS ,同意/拒绝分享邮箱地址,选择域名,redirect。此时再次访问网址已成功+1s。进入 WP 后台设置,将网站地址从 http 改为 https 。

为 WordPress 安装上喜欢的主题

新建站点同样使用 AxtonYao 开发的 MDx 主题。主题的开发文档在此。按照文档内的步骤安装主题,十分方便。

截至 2019年1月27日 ,最新版 MDx 主题有以下 Bug :

  1. 当“网页标题计算方式 ”为“WordPress默认”时,网页标题无效。
  2. 当“文末信息”为空时,分享链接无效。

当遇到以上情况时,请不要惊慌,找源代码看一下尝试理解一下,多尝试几种解决办法,再去 GitHub 发 issue 。

为 WordPress 安装实用的插件

推荐两个插件:

  1. Tuxedo Big File Uploads 此插件可以去除上传文件 2MB 限制的讨厌设定。
  2. WP Statistics 通过此插件,可以随时了解网站的访问情况(顺便钓鱼。

进一步个性化主题

进阶玩家可以尝试修改 /path/to/wordpress/wp-content/themes/mdx/ 内的PHP 文件以进一步个性化主题。当然是在尊重主题原作者的条件下。

修改 footer.php 加入自定义页脚(保留主题作者信息)

向 style.css 添加额外 css ,例如

.sjh-firstpagesay{
    font-size:120%; color: white; text-shadow: black 0.1em 0.1em 0.2em
}
.sjh-side-info{
        text-shadow: black 0.1em 0.1em 0.2em
}
.sjh-404{
        font-size:20%; color: #FFF6F7; text-shadow: black 0.1em 0.1em 0.2em
}
.sjh-page-title{
        text-shadow: black 0.05em 0.05em 0.1em
}
.container {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 56.25%;
}
.video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

修改 index.php single.php

修改 comments.php single.php functions.php 英化

算了算了 完全英化太麻烦了

而且每次主题更新都必须改这些东西真的很烦。

赞赏
本文链接:https://sjh.moe/tutorial/197
本文采用 CC BY-NC-SA 4.0 协议进行许可
没有标签
首页      教程      记录一次 WordPress 安装

发表评论

textsms
account_circle
email

SJH.MOE

记录一次 WordPress 安装
本文介绍如何从0开始搭建 WordPress 。
扫描二维码继续阅读
2019-01-27