Wordpress搭建教程(Debian 10)

一、概述

操作系统采用Debian 10,Web服务采用Nginx,数据库采用MySQL CE 8.0。以下教程只描述主要步骤,并假定你以有一定Linux、MySQL和百度使用基础。

建议先参照文章《Debian 10常用配置》进行防火墙设置、更换apt源等操作。

二、安装MySQL Server

1、安装MySQL Server

参考文章:《如何在 Debian 10 上安装 MySQL

默认软件源中并不包含 MySQL 软件包,它已被 MariaDB 替代。所以这里我们从官网下载 MySQL 软件源配置包,配置后再进行安装。

先到MySQL存储库下载页面获取到下载链接:

然后使用wget命令下载,例如:

wget https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb

下载完成后,通过以下命令安装:

dpkg -i mysql-apt-config_0.8.33-1_all.deb

你将会看到MySQL配置安装菜单,选择你要安装的版本:这里选择mysql-8.4。

配置参考图

选择“OK”后,将退出配置界面。接着使用以下命令更新软件包,并安装MySQL。

apt update
apt install -y mysql-server

2、设置为开机启动服务

systemctl enable mysql

3、创建WordPress用的数据库

连接MySQL:

mysql -u root -p

创建数据库,假定名字为test_com

create database test_com;

4、创建WordPress专用的MySQL用户

假定用户名为testuser,密码为testpassword

create user testuser@localhost identified with caching_sha2_password by 'testpassword';
grant all on test_com.* to testuser@localhost;

三、安装PHP

1、安装PHP8.2

apt install -y php8.2

2、安装PHP扩展模块

apt install -y php8.2-{cli,common,curl,dev,fpm,mysql,gd,opcache,mbstring,bcmath,imagick}
2.1、启用PHP-FPM模块

我在安装时看到了如下提示信息

NOTICE: Not enabling PHP 8.2 FPM by default.
NOTICE: To enable PHP 8.2 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php8.2-fpm
NOTICE: You are seeing this message because you have apache2 package installed.

看来默认是没启用PHP-FPM模块,那就安装提示启用。

a2enmod proxy_fcgi setenvif
a2enconf php8.2-fpm

话说我啥时候安装的apache2???算了,卸载它

apt remove apache2

3、配置

编辑/etc/php/8.2/fpm/php.ini,根据实际需要修改上传文件的最大限制:

upload_max_filesize = 10M
post_max_size = 10M

4、测试(待第四步-安装nginx完成后)

创建一个简易php文件,测试PHP运行是否正常。

在网站根目录(/var/www/html)下创建1.php文件,加入以下代码并保存。

<?php phpinfo(); ?>

然后用浏览器访问1.php,如果出现PHP详细信息的表格,说明一切正常。

四、安装nginx

1、安装

apt install nginx

2、运行

安装完会自动运行,开机也自动运行。浏览器访问服务器,看是否能打开nginx默认主页。

3、配置

编辑nginx默认配置文件/etc/nginx/sites-enabled/default,在Server{ }块里修改/增加以下字段

设置默认首页为index.php
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
设置上传文件的最大大小
client_max_body_size 10M;
修改php7.4模块相关设置

注意php7.4的实际位置!

location ~ \.php$ {
		include snippets/fastcgi-php.conf;
	
		# With php-fpm (or other unix sockets):
		fastcgi_pass unix:/run/php/php8.2-fpm.sock;
		# With php-cgi (or other tcp sockets):
		#fastcgi_pass 127.0.0.1:9000;
	}
解决wordpress设置固定链接后404问题
location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
		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;   
    	} 
	}
	rewrite /wp-admin$ $scheme://$host$uri/ permanent;

5、下载Wordpress

网站根目录是/var/www/html,我们下载Wordpress到这个目录下。

wget https://cn.wordpress.org/latest-zh_CN.zip -O /var/www/html/wordpress.zip

将压缩包解压:

unzip /var/www/html/wordpress.zip -d /var/www/html/

移动wordpress目录下的所有文件至网站根目录下:

mv /var/www/html/wordpress/* /var/www/html/

6、设置用户www-data对html目录的所有权限

nginx用户在/etc/nginx/nginx.conf里保存。默认是www-data

chown -R www-data:www-data /var/www/html/

7、重启nginx

systemctl restart nginx

五、安装WordPress

访问站点,按提示操作即可,如http://192.168.1.100/index.php

在遇到运行错误时(例如HTTP ERROR 500),打开调试模式,可以打开WordPress的调试模式以显示错误信息。

编辑wp-config.php文件,修改 define('WP_DEBUG', falase); 为 define('WP_DEBUG', true);

5.1 常见问题

更新失败:因为我们不能复制一些文件,升级未被安装

有时更新插件时会遇到更新失败,提示“更新失败:因为我们不能复制一些文件,升级未被安装”。一般是由于权限设置错误引起的,当你用SSH或者FTP直接上传插件到Wordpress目录中,那么你上传的文件所属的所有组和所有人就是root或者ftp user。而如果你的php或者nginx的运行者不是这两者,就会出现这个错误。

既然如此,那么我们将网站目录的拥有者改为与nginx相同的用户即可。(默认用户是www-data)。

运行chown -R www-data:www-data /var/www/html/即可。

六、启用https

使用certbot实现 Let’s Encrypt的免费SSL证书签发和自动更新。官网:https://certbot.eff.org/

等待DNS能解析网站域名后,执行以下命令,接下来按提示操作即可。

apt install -y certbot python3-certbot-nginx
certbot --nginx

七、优化

参照文章:《PHP安装memcached扩展

留下评论

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