服务器搭建记录 · Wordpress

简介: Wordpress

本文文章均首发于我的博客。若无特殊说明,未经许可禁止转载。转载需保留此段文字。

选择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的自定义了,这些内容我会在接下来逐步记录。

目录
相关文章
|
2月前
|
域名解析 网络协议 数据安全/隐私保护
阿里云轻量应用服务器搭建WordPress个人博客教程
阿里云轻量应用服务器搭建WordPress个人博客教程
|
2月前
|
域名解析 弹性计算 程序员
想要轻松地搭建一个即开即用的WordPress博客吗?借助宝塔面板镜像+阿里云ECS,迅速拥有自己的个人博客
拥有个人博客是每位程序员的梦想,但对服务器不熟悉的初学者而言,搭建博客颇具挑战。本文介绍利用阿里云市场的宝塔面板镜像与ECS云服务器,轻松搭建WordPress博客的方法,让您快速拥有专属博客空间。通过简单的操作步骤,即使是新手也能轻松上手,实现从零到有的博客搭建过程。
220 3
|
2月前
|
域名解析 安全 网络安全
阿里云服务器WordPress环境上安装SSL证书
阿里云服务器WordPress环境上安装SSL证书
|
2月前
|
弹性计算 JSON 关系型数据库
使用ROS模板基于ECS和RDS创建WordPress环境
使用ROS模板基于ECS和RDS创建WordPress环境
|
2月前
|
弹性计算 关系型数据库 MySQL
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站
|
4月前
|
弹性计算 关系型数据库 应用服务中间件
从零基础到博主大亨!一键解锁阿里云ECS,LNMP秒搭WordPress,你的个性博文帝国,今日崛起!
【8月更文挑战第5天】随着互联网技术的发展,个人博客成为技术爱好者和内容创作者分享知识的平台。阿里云ECS以其高性能和灵活性成为搭建博客的优选。本文指导你购买配置ECS,并安装CentOS 7。通过SSH登录后,更新系统并安装LNMP环境,包括Nginx、MariaDB、PHP。配置Nginx处理PHP请求,初始化数据库并设置WordPress数据库。接着下载WordPress,解压并设置权限。最后,通过浏览器完成安装向导。利用WordPress丰富的资源定制网站,开启个性化创作之旅。记得定期备份数据,利用ECS的扩展性支持网站成长。
72 4
|
5月前
|
弹性计算 监控 网络协议
云服务器 ECS产品使用问题之如何一键配置WordPress系统
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
6月前
|
关系型数据库 MySQL PHP
蓝易云 - WordPress建站可以用阿里云服务器吗?
具体的操作步骤包括购买和设置阿里云服务器,安装LAMP或LNMP环境,创建MySQL数据库,最后下载和安装WordPress。
67 2
|
6月前
|
关系型数据库 MySQL Apache
蓝易云 - WordPress安装教程(使用服务器)
以上就是在服务器上安装WordPress的基本步骤。不同的服务器环境可能会有一些差异,但大体流程是相同的。
50 2
|
6月前
|
关系型数据库 MySQL Linux
蓝易云 - 如何为WordPress选择虚拟主机或服务器
选择预装了Apache、MySQL和PHP的服务器可以让你更容易地安装和运行WordPress。
61 1