Tutorial Notes Help

Wordpress食用说明 — WP的搭建及踩坑

前言

关于站点使用WP的动机呢,其实还是由于规划太大,导致个人站点极度难产,由于最近产生了笔记和文档的需求,所以使用WP先行一步。 至于为什么要使用WP而不是其他的,当然是为了后台管理的便捷啦~ 由于本人可以算是初次写博客,所以有啥写的不好的地方各位看官多多指教哟~ヾ(≧▽≦*)o

云服务器的选用

首先,个人比较偏好阿里云,所以选取了阿里云的服务器,其次呢,为了随时可以敲代码,所以同时部署了一个CodeServer ,因此选了个配置稍微高一点的服务器,当然这个费用嘛......至于没啥需求的一般人,直接最低配就行,反正后期如果有需要也能增改不是。至于操作系统,随意选择就行,这边不推荐CentOS ,因为已经停止维护了。本文以Ubuntu22.04 64位进行讲解

环境的准备与安装

本文采用最新的PHP+openresty+MariaDB环境

Openresty

Openresty是一个基于Nginx和lua的高性能Web平台。 这里我们采用apt的方式进行安装

  1. 首先添加GPG公钥:

    sudo apt-get -y install --no-install-recommends wget gnupg ca-certificates
  2. 然后导入PGP密钥:

    wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add -
  3. 添加官方apt地址,当然,别忘了备份:

    echo "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" > openresty.list sudo cp openresty.list /etc/apt/sources.list.d/
  4. 在我们更新apt索引之后就可以安装Openresty了!

    sudo apt update -y sudo apt upgrade -y sudo apt-get -y install --no-install-recommends openresty
  5. 此时如果你在浏览器中输入IP应该可以看到一个Openresty的初始页面。

(相关的配置和指令参见后文~)

MariaDB

  1. 安装MariaDB是比较简单的。 输入sudo apt install -y mariadb-server即可安装,安装完会自动启用,可使用sudo systemctl status mariadb确认运行状态

  2. 据说mysql_secure_installation脚本可以很容易提高数据库服务器安全,那么我们就先来配置一下: 执行sudo mysql_secure_installation即可开始配置。 之后脚本会让你确认一系列操作,全部确认即可: Enter current password for root (enter for none): 提示你输入数据库的root密码,默认是没有的,直接为空确认即可

  3. Switch to unix_socket authentication 这里我上面有一行告诉我说root用户已经有密码了,所以直接输入no跳过了,如果你没有设置密码可以进行设置

  4. Change the root password? 这里他问你是否需要修改root密码,如果你密码强度不高的话可以确认修改一下哦

  5. Remove anonymous users? 这里问你是否需要移除匿名帐户,匿名账户可以不需要密码直接登录数据库,这边建议移除哦亲

  6. Disallow root login remotely? 这里问你是否需要禁用root账户从远程进行连接,禁用的话就只能从本机进行连接了,这边推荐禁用哦

  7. Remove test database and access to it? 这里问你是否需要移除名为test的测试数据库,此数据库任何人都可以连接,这边推荐禁用哦

  8. Reload privilege tables now? 这里问你是否需要重新加载权限表来确保刚刚的修改,确定就行

到此我们就安装完啦~ 是不是很简单呢!(相关的配置和指令参见后文~)

PHP

安装步骤同样也很简单: 执行sudo apt install -y php-fpm php php-mysql 即可。这里关于PHP的插件不做推荐,可以参考WP官方文档 自行选择 ※ 这里我们安装的是此时的最新版8.1,实际安装的时候可能会有所差别,可以去/etc/php下查看,里面有个版本号的目录 等待安装完成后可以执行systemctl status php8.1-fpm来查看php是否启用,注意这里的8.1需要根据实际版本号进行替换

Wordpress的安装与配置

好!我们现在已经完成了前置条件的安装,那么接下来就可以进行环境的配置和激动人心的——WP的安装配置啦! 首先,让我们前往官网进行下载: 官网 考虑到官网有时会打不开,放了一份到蓝奏云,可以自行下载: wordpress-6.0.3-zh_CN.zip 下载完成后解压再上传或者上传后再解压都是可以的,因为大部分远程传输工具都可以传输文件夹的,所以这里推荐解压后再上传。 放置的位置可以为任意位置,这里为/home/xxx/ ,即index.php位于/home/xxx/index.php 之后我们进入/usr/local/openresty/nginx/conf ,openresty的站点相关配置文件就在此文件夹中的nginx.conf 如果openresty不在默认路径可以使用:

file `which openresty`

进行查看之后我们删除nginx.conf中的所有内容,替换成我们自己的: ※ 小提示:Vim可以使用 gg dG 快速删除整个文件的内容

# 工作所使用的核心数 worker_processes 1; events { use epoll; # epoll是高版本内核优化后的网络I/O模型 worker_connections 4096;#单个进程最大连接数 multi_accept on; #打开快速接收新连接 } http { charset utf-8;#默认编码 server_names_hash_bucket_size 512; #服务器名字的hash表大小 client_header_buffer_size 10M; #上传文件大小限制 large_client_header_buffers 4 1M; #设定请求缓存数 client_max_body_size 256m; #设定请求缓存大小 sendfile on; #开启高效文件传输 tcp_nopush on; #防止网络阻塞 tcp_nodelay on; ####解决跨域问题#### add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Requested-With,Content-Type,If-Modified-Since; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; #以下是FastCGI 的相关参数,主要作用减少资源占用优化网站性能提高访问速度 fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 1M; fastcgi_buffers 4 1M; fastcgi_busy_buffers_size 2M; fastcgi_temp_file_write_size 1M; #gizp优化配置,加速传速 gzip on; gzip_min_length 1M; gzip_buffers 4 1M; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; gzip_disable msie6; # 需要用到lua的项目脚本设用路径 lua_package_path "/usr/local/openresty/nginx/lua/?.lua;;"; server { listen 80; server_name localhost; root /home/xxx/; index index.html index.php; location / { # 设置伪静态,用以支持WP的固定链接 if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } } # 使nginx支持php文件 location ~ \.php$ { # 设置监听端口 #fastcgi_pass unix:/run/php/php-fpm.sock; fastcgi_pass 127.0.0.1:9000; # 设置nginx的默认首页文件(上面已经设置过了,可以删除) #fastcgi_index index.php; #fastcgi_split_path_info ^(.+\.php)(/.+)$; # 设置脚本文件请求的路径 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 引入fastcgi的配置文件 include fastcgi_params; } } }

别急,还没完,现在我们再进入/etc/php/8.1/fpm文件夹内,然后打开php.ini 找到doc_root =在后面加上/home/xxx ,一般位于754行 之后我们保存关闭文件,进入/etc/php/8.1/fpm/pool.d文件夹内,打开www.conf 然后把默认的listen = /run/php/php8.1-fpm.sock替换为listen = 127.0.0.1:9000 下面的;listen.mode = 0660可以去掉那个分号(也就是去掉注释)如果你的网站不需要也能正常运行那就不用动他 然后重启一下php和openresty即可!

sudo systemctl restart php8.1-fpm sudo openresty -s reload

现在你输入域名或者IP地址应该就可以看到安装界面啦~ 如果你发现你的WP只有一部分样式或者没有样式,试试在nginx.conf中的http部分加上这行: include mime.types; 这个问题我当时排查了好几小时,都是泪啊,控制台都没有报错,最后发现居然是css文件被当作文本解析了.....

常用指令

此块内容后续会不定时更新

openresty

# 路径:/usr/local/openresty openresty -s reload # 重启openresty openresty # 开启openresty openresty -s stop # 关闭openresty

php

# 路径:/etc/php/8.1 systemctl status php8.1-fpm # 查看php运行状态 systemctl start php8.1-fpm # 开启php systemctl stop php8.1-fpm # 关闭php

MariaDB

mysql # 进入MariaDB,注意在MariaDB中的操作都需要 ; 结尾 create database wordpress; # 创建名为wordpress的数据库 use wordpress; # 进入使用wordpress数据库 show databases; # 查看所有数据库 DROP DATABASE wordpress; # 删除wordpress数据库
Last modified: 16 十一月 2023