我的服务器是在2021年买的,从那个时候就不时捣鼓网站,可玩性真的很不错。
那个时候遇到这么几个问题:
- 固定链接修改后很多页面都变404了;
- 不知道怎么设置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的权限应该就没有问题了,固定链接也可以正常使用。
发表回复