记录自己搞WordPress

我的服务器是在2021年买的,从那个时候就不时捣鼓网站,可玩性真的很不错。

那个时候遇到这么几个问题:

  1. 固定链接修改后很多页面都变404了;
  2. 不知道怎么设置https。

还有其他一些小问题,想不起来,只记得那个时候穿梭在各个科技页面中,如同在垃圾堆中找金子一样,找问题的答案。那个时候不觉得很麻烦,而是把这些当成一种消遣。

既然是消遣的事,那我也没有很认真地对待。服务器不知道被我重装过多少次,网站被我来回搞崩,后面有段时间稍微更新了些网站内容,结果也被我重置的时候弄没了,不知道有没有备份。

那个时候也有写过一篇装WordPress的记录,现在稍微认真一下,我认为这次的WordPress装得比较完美,在此重新记录。

我这次是在debian 12.0上面安装的。

首先自然是更新一下系统的包和软件

apt update
apt upgrade
apt-get update
apt-get upgrade

之前只执行了update而没有执行upgrade,实际只更新了包列表,真正系统上的包没有更新(好像是这样的)。

然后配置LAMP环境。我之前用的nginx,现在改用apache了。网上都说nginx的效率更好,但是我感觉没有apache配置简单,而且那点性能提升对我这个小网站也没什么用。

安装apache

apt install apache2

安装mysql,我这里安装的是它的替代品mariadb

apt install mariadb

直接输入mysql可以查看数据库管理软件的版本信息。

安装安全性脚本

mysql_secure_installation

照着指示安装,登录

mysql -u 用户名 -p

然后创建一个网站数据库

CREATE DATABASE name_database;
CREATE USER "name_user"@"xxxhost" IDENTIFIED BY "password";
GRANT ALL PRIVILEGES ON name_database.* TO "name_user"@"xxxhost";
FLUSH PRIVILEGES;

上面每一条指令的意思是创建一个名为name_database的数据库。然后新建一个在xxxhost(学名不知道叫啥)的用户name_user,密码为password。接着将刚才创建的数据库的权限全部赋给这个用户。最后刷新权限。

安装PHP和模块

apt install php

执行php -v可以查看php版本。

模块基本参照官网需求,可以用php -m这条命令看哪些模块已经安装了。

但是我有看到部分模块安装了但是命令结果没显示,比如php-mysql,一开始WordPress官网说是php捆版自带的,我就没装,装了php-mysqli(还自动把php-mysqlnd给装上去了,官网说只用装其一),后面运行5分钟安装时才提示没有php-mysql,后面装了也没有显示在php -m的结果中。

php-imagick这个模块需要先安装imagemagick,要确认有无安装imagemagick,可以执行convert -version

apt install imagemagick
apt install php-imagick

php-intl这个模块需要先安装ICU,确认有无安装ICU,可以执行ldconfig -p | grep icu,如果安装了,会返回类似下列代码

libicuuc.so.72 (libc6,x86-64) => /lib/x86_64-linux-gnu/libicuuc.so.72
libicutu.so.72 (libc6,x86-64) => /lib/x86_64-linux-gnu/libicutu.so.72
libicutest.so.72 (libc6,x86-64) => /lib/x86_64-linux-gnu/libicutest.so.72
libicui18n.so.72 (libc6,x86-64) => /lib/x86_64-linux-gnu/libicui18n.so.72
libicuio.so.72 (libc6,x86-64) => /lib/x86_64-linux-gnu/libicuio.so.72
libicudata.so.72 (libc6,x86-64) => /lib/x86_64-linux-gnu/libicudata.so.72

php-zip要求先安装libzip,要确认有无安装libzip,可以执行zip -v

还要安装一个和apache搭配的php模块

apt install libapache2-mod-php

下载WordPress

wget https://wordpress.org/latest.tar.gz

可以将wordpress文件夹中的文件复制到/var/www/html中,也就是web服务器的根目录。这样子可以无需设置虚拟服务器而直接通过ip访问网站。

tar -xzvf latest.tar.gz -C /var/www/html

第二种方法是复制到其他的地方,然后设置虚拟服务器,将目录写入配置中。通常这里的其他地方是/usr/share中,然后创建一个文件夹,将网站文件都放进去。

tar -xzvf latest.tar.gz -C /usr/share
nano /etc/apache2/sites-available/wordpress.conf
<VirtualHost *:80>
   ServerAdmin webmaster@example.com
   DocumentRoot /usr/share/foldername
   ServerName your_domain.com
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

nano编辑通过Ctrl-X,然后y进行保存退出。

第一种方法可以不设置虚拟服务器。

安装wordpress

通过访问wp-admin/setup-config.php进行安装,前面的具体路径参照之前的虚拟服务器进行设置。

按照页面上的指示填写信息,连接数据库即可。

安装完之后输入网址可能还是看到apache的页面,这点我不太理解,我是把index.html重命名为其他,让服务器只找到index.php这种办法解决的。接着就可以进入前台和后台了。

接着配置WordPress的权限,这也是困扰我最多的一个问题了,现在也不敢说完全理解了。大部分参照官网的更改文件权限页面。

首先,Apache服务器的进程用户为www-data,我将wordprrss的文件权限都给了这个用户。

cd DIR
chown -R www-data:www-data *

按照顺序试下面列表的命令,直到wordpress可以正常使用固定链接功能。DIR更改为想要更改权限的文件路径,一般为wp-content,也可以是网站根目录。

chmod -v 746 DIR
chmod -v 747 DIR
chmod -v 756 DIR
chmod -v 757 DIR
chmod -v 764 DIR
chmod -v 765 DIR
chmod -v 766 DIR
chmod -v 767 DIR
chmod -R 746 DIR
chmod -R 747 DIR
chmod -R 756 DIR
chmod -R 757 DIR
chmod -R 764 DIR
chmod -R 765 DIR
chmod -R 766 DIR
chmod -R 767 DIR
chmod -R 777 DIR

上面的命令越往下权限限制越松,越不安全。

更改好规则后需要重启apache服务

systemctl restart apache2

确保服务器重写规则是开启的(这一项我不清楚有没有必要)

a2enmod rewrite
systemctl restart apache2

修改配置文件/etc/apache2/apache2.conf

虚拟服务器/etc/apache2/sites-available/wordpress.conf

在其中添加如下配置

<Directory /path/to/wordpress/>
    AllowOverride All
    # ... 其他配置 ...
</Directory>

保存后重启服务器

systemctl restart apache2

至此WordPress的权限应该就没有问题了,固定链接也可以正常使用。


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注