服务器搭建记录 · Wordpress

简介: Wordpress

本文文章均首发于我的博客:https://blog.yisrime.xyz/。点击前往浏览我的更多文章。若无特殊说明,未经许可禁止转载。转载需保留此段文字。

选择Wordpress的原因

经典。虽然Hexo和Typecho主题繁多,也有很多很好看的主题,但是我还是选择了这个很传统的系统。也不支持Markdown(虽然目前我还不是很会用Markdown,不过至少有Typora这种所见即所得的Markdown软件可以供我使用)。

Hexo因为是静态博客,原生不支持评论系统,所以我也没考虑。不过有时间的话,我会把它装在我的Github Pages上面。Typecho,对啊,是个好问题,为什么没用(可能是没看见,搭好了才看见),不过无所谓了。(补充:太 老 了

除此之外,我还看见了Mix-Space这种很好看的主题,不过,我看了一下它的部署方法,比较复杂,虽然勉强能搞明白,不过还是算了吧。

Wordpress好看的主题也就Sakara&Argon两个,我选择了Argon。因为Sakura的设置比较复杂,不够简单(虽然自带的特效很多,对于这些特效的优化也挺好)。

安装Wordpress

本文所采用的安装方法均为最新版。这样做的好处是可以通过Apt等包管理器管理,而不必make install。同时Nginx高版本支持添加动态模块(后面有时间我会单开一章说明),可以不必手动编译安装。采用MariaDB主要是因为MariaDB非商业化,实际使用与Mysql相同。

安装Nginx

详细步骤参见Nginx官方文档,摘录如下:

安装依赖:

sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring

导入密钥:

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

导入Stable/Mainline对应Source.list

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list

修改优先级:

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \ | sudo tee /etc/apt/preferences.d/99nginx

安装Nginx:

sudo apt update sudo apt install nginx

安装PHP

导入PPA:

sudo add-apt-repository ppa:ondrej/php -y

安装PHP:(此处仅为Nginx要求模块)

sudo apt install php8.3 php8.3-fpm php8.3-cli

可以自行选择模块安装,可通过如下命令搜索

sudo apt search php8.3-

安装MariaDB

详细步骤参见MariaDB官方文档,摘录如下:

导入密钥:

sudo apt-get install apt-transport-https curl
sudo mkdir -p /etc/apt/keyrings
sudo curl -o /etc/apt/keyrings/mariadb-keyring.pgp ' https://mariadb.org/mariadb_release_signing_key.pgp '

新建/etc/apt/sources.list.d/mariadb.sources并复制以下内容:

# MariaDB 11.2 repository list - created 2024-02-03 02:31 UTC 
# https://mariadb.org/download/ 
X-Repolib-Name: MariaDB 
Types: deb 
# deb.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details. 
# URIs: https://deb.mariadb.org/11.2/ubuntu 
URIs: https://mirrors.xtom.com/mariadb/repo/11.2/ubuntu 
Suites: jammy 
Components: main main/debug 
Signed-By: /etc/apt/keyrings/mariadb-keyring.pgp

或者采用旧的Apt格式,新建/etc/apt/sources.list.d/mariadb.list并复制以下内容:

# MariaDB 11.2 repository list - created 2024-02-03 02:31 UTC 
# https://mariadb.org/download/ 
# deb.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details. 
# deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://deb.mariadb.org/11.2/ubuntu jammy main 
deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://mirrors.xtom.com/mariadb/repo/11.2/ubuntu jammy main 
# deb-src [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://mirrors.xtom.com/mariadb/repo/11.2/ubuntu jammy main

安装MariaDB:

sudo apt-get update
sudo apt-get install mariadb-server

下载Wordpress

使用cd切换到需要安装Wordpress的目录,然后wget下载安装包,unzip解压:

wget https://cn.wordpress.org/latest-zh_CN.zip
unzip latest-zh_CN.zip

使用chmodchown更改权限(重要),在这里我更改所有者为www-data,这是PHP的默认用户,你也可以更改为其它用户,同时也要修改Nginx和PHP的对应配置

chmod 755 wordpress  -R
chown www-data:www-data wordpress -R

到这里为止,基本的安装工作都已经完成,接下来将会进行一些配置来进行安装Wordpess的工作。

配置环境

配置Nginx

因为通过apt安装,所以Nginx的配置文件在/etc/nginx。主配置文件是nginx.conf,这个配置文件一共由三部分组成,分别为全局块、events块和http块。在http块中,又包含http全局块、多个server块。每个server块中,可以包含server全局块和多个location块。在同一配置块中嵌套的配置块,各个之间不存在次序关系。

配置文件支持大量可配置的指令,绝大多数指令不是特定属于某一个块的。同一个指令放在不同层级的块中,其作用域也不同,一般情况下,高一级块中的指令可以作用于自身所在的块和此块包含的所有低层级块。如果某个指令在两个不同层级的块中同时出现,则采用“就近原则”,即以较低层级块中的配置为准。比如,某指令同时出现在http全局块中和server块中,并且配置不同,则应该以server块中的配置为准。

nginx.conf需要修改的配置如下:(这里我使用与PHP相同的用户,方便调用PHP)

user www-data;

在conf.d中,默认存在default.conf,此文件中的配置会被优先使用。个人建议还是删除/注释掉此文件,以免影响到个人配置。我的个人配置如下,请依照实际情况修改

server {
    listen 443 ssl;  //HTTPS监听
  http2 on;  //开启HTTP2
    server_name www.example.com;  //此处修改为你的域名
    ssl_certificate     /etc/nginx/cert/cf.pem;  //证书路径,修改为自己的
    ssl_certificate_key /etc/nginx/cert/cf.key;
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
    ssl_dhparam /etc/nginx/cert/dhparam.pem;  //公共密钥
    add_header X-XSS-Protection 1;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA;  //加密算法
    ssl_prefer_server_ciphers off;
  #HSTS HPKP OCSP
    add_header Strict-Transport-Security "max-age=63072000" always;
    add_header Public-Key-Pins 'pin-sha256="klKsARIDn8AL7KefboUkSGZfcFrIVJwpxj8gq0C7f/E="; pin-sha256="81Wf12bcLlFHQAfJluxnzZ6Frg+oJ9PWY/Wrwur8viQ="; max-age=2592000';
    #ssl_stapling on;
    #ssl_stapling_verify on;
    #resolver 8.8.8.8 223.5.5.5 valid=60s;  //OCSP因为自签名证书而不可用
    #resolver_timeout 3s;
  
    root /usr/share/nginx/wordpress;  //Wordpress根目录
    location / {
    try_files $uri $uri/ /index.php?$args;  //伪静态
        index index.php;
    }
  rewrite /wp-admin$ $scheme://$host$uri/ permanent;
    location ~ \.php$ {
        fastcgi_pass   unix:/run/php/php8.3-fpm.sock;  //套接字监听,注意在PHP中修改对应监听
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
server {
    listen 80;  //HTTP自动重定向
    server_name www.example.com;  //此处修改为你的域名
    return 301 https://$host$request_uri; 
}

配置PHP

PHP的配置文件位于/etc/php/{版本名}/fpm,没有什么需要专门修改,酌情修改以下配置即可

php.ini

max_execution_time = 300
memory_limit = 256M
post_max_size = 1024M

www.conf

user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
listen.owner = www-data
listen.group = www-data

配置MariaDB

建立Wordpress的数据库以便之后Wordpress链接。首先输入mariadb进入MariaDB数据库内,此时无密码,可直接进入,进入数据库后首先修改密码。注意:MariaDB命令以“;”结尾。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

然后创建名为“wordpress"的数据库和用户,为用户设置"password”的密码,给予此用户对"wordpress"数据库的所有权限。最后,刷新权限并退出数据库。

create database wordpress;
create user 'wordpress'@'localhost' identified by 'password';
grant all privileges on wordpress.* to 'wordpress'@'localhost' identified by 'password';
flush privileges;
exit;

进行如上步骤后,MariaDB已经配置完成。一定要先建立并配置好config.php后再尝试访问Wordpress页面,否则会报错。

配置Wordpress

cd进入wordpress目录,将wp-config-sample.php复制一份,重命名为wp-config.php,修改以下内容为你配置的数据库内容并保存(注意wp-config.php所有者权限):

/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );
/** Database username */
define( 'DB_USER', 'wordpress' );
/** Database password */
define( 'DB_PASSWORD', 'password' );

修改完以上配置后,对于Wordpress的环境配置已经完成,可以尝试访问你的域名开始安装Wordpress了。还有一件事,不要忘记放行对应端口和做好域名解析。安装完Wordpress后,接下来就是Nginx和PHP的配置调优,以及Wordpress的自定义了,这些内容我会在接下来逐步记录。

目录
相关文章
|
3月前
|
Ubuntu 关系型数据库 MySQL
百度搜索:蓝易云【ubuntu系统服务器安装WordPress教程】
现在,你已经成功在Ubuntu系统服务器上安装了WordPress。可以使用你的域名或服务器IP地址访问WordPress网站,进行网站配置和内容发布。
92 0
|
9月前
|
域名解析 弹性计算 网络协议
阿里云服务器搭建网站完整教程(宝塔面板+wordpress)
阿里云服务器搭建网站完整教程(宝塔面板+wordpress)阿里云轻量应用服务器怎么使用?阿里云轻量应用服务器使用教程:轻量应用服务器购买、重置密码、远程连接、宝塔面板的Web环境搭建、WordPress网站程序安装到网站上线,阿里云服务器网分享轻量应用服务器从购买、配置建站环境、轻量服务器应用服务器远程连接、开端口到网站上线全流程
485 0
|
11月前
|
域名解析 弹性计算 安全
阿里云服务器搭建网站完整教程(WordPress+宝塔面板)
阿里云服务器搭建网站完整教程(WordPress+宝塔面板),使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程
1490 0
|
11月前
|
域名解析 弹性计算 安全
阿里云ECS服务器如何建站?以WordPress为例
阿里云ECS服务器如何建站?以WordPress为例,使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程:
184 0
|
11月前
|
域名解析 弹性计算 安全
如何在阿里云服务器安装个人WordPress博客网站?
如何在阿里云服务器安装个人WordPress博客网站?使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程:
336 0
|
11月前
|
域名解析 弹性计算 安全
如何使用阿里云服务器搭建个人WordPress网站?
如何使用阿里云服务器搭建个人WordPress网站?使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程:
1353 0
|
11月前
|
域名解析 弹性计算 安全
阿里云服务器搭建个人WordPress网站博客流程
阿里云服务器搭建个人WordPress网站博客流程,使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程:
289 0
|
12月前
|
域名解析 网络协议 关系型数据库
使用阿里云轻量服务器安装WordPress博客网站三步走
阿里云轻量应用服务器镜像可选WordPress应用,应用镜像可以自动安装WordPress程序及WP所依赖的Web安装环境,轻量服务器网来详细说下轻量服务器选择WordPress应用镜像创建成功后的操作流程使用方法:
594 0
|
12月前
|
域名解析 网络协议 关系型数据库
阿里云轻量服务器搭建WordPress博客流程
阿里云轻量服务器搭建WordPress博客流程,阿里云轻量应用服务器镜像可选WordPress应用,应用镜像可以自动安装WordPress程序及WP所依赖的Web安装环境,轻量服务器网来详细说下轻量服务器选择WordPress应用镜像创建成功后的操作流程使用方法:
174 0
|
12月前
|
域名解析 网络协议 关系型数据库
阿里云轻量应用服务器怎么安装WordPress网站程序?
阿里云轻量应用服务器怎么安装WordPress网站程序?阿里云轻量应用服务器镜像可选WordPress应用,应用镜像可以自动安装WordPress程序及WP所依赖的Web安装环境,轻量服务器网来详细说下轻量服务器选择WordPress应用镜像创建成功后的操作流程使用方法:
132 0