WordPress+Nginx 安装教程

WordPress 是一个开源的网站建设工具,可以用它来“快速”搭建个人博客,官网等等。它本身是用 php 开发的,本身部署不复杂,主要是需要一些配套的东西才能跑起来,网上的一些教程也是写的不清不楚,本文针对非 php 技术栈人员, phper 勿扰。

我们会分 Windows 和 Linux 两个平台来说明部署过程,由于 WordPress 本身是 php 开发的,与平台无关,所以首先我们从官网下载 WorpPress 源码,目前的最新版是 6.6.2。它是一个压缩包,到这里第一步就结束了。

在正式开始之前,还有一点前置知识需要说明。php 是前端用的后端语言,不同于 go 或 elixir,它不是编译成可执行文件运行并提供网络服务,而是类似于静态文件,但也不完全相同。所以运行 php 服务还需要额外的网络服务器作为静态文件服务。当客户端请求 html 文件时,服务器就直接将文件响应给客户端了,而请求 php 文件时,服务器先调用 php 解释器运行 php 文件,然后将结果响应给客户端,当然这里说的调用也不是直接调用,而是通过 cgi 来调用。这里的服务器可以选择 nginx 或者 apache 都可以。下图是两种请求区别的示意图。

在这里插入图片描述

关于什么是 cgi,什么是 php-cgi 以及 php 的运行原理,推荐阅读这篇文章:彻底明白php中cgi、fastcgi和php-cgi、php-fpm及php运行原理_什么是php-cgi-****博客。建议先看看,作为预备知识了解下,后面会用得上。

接下来我们来看各个平台上面的具体部署过程。服务器的话,我选择的是 nginx,因为刚好有。

Windows+Nginx

在 nginx 的安装目录下新建一个 www 目录,将之前下载的 wordpress 安装包解压到该目录下。然后进入 www 目录,将 wordpress 目录重命名为 wp.test.com 目录。

在这里插入图片描述

注意这些目录并不是一定要按我的来命名,这只是一种习惯,将静态资源放在 www 目录下,将各网站内容放在各自域名的同名目录下。我是在本地测试,所以用了一个假的域名 wp.test.com 。随后我们到 C:\Windows\System32\drivers\etc 目录下找到 hosts 文件,以管理员身份编辑改文件,在最后加上一行内容:

192.168.1.xx wp.test.com

前面的 IP 是你自己电脑的IP地址,不通过域名访问的话,后面也可以配置通过端口访问。到这里 WordPress 就算安装好了,后面就是服务器配置和依赖环境安装了。

还是 nginx 的安装目录,找到 conf/nginx.conf 文件,在最后一个 } 前加上一行配置:

include ../hosts/*.conf;

我们将自定义的代理配置统一放到 nginx 安装目录下的 hosts 目录下,方便管理。在 nginx 目录下手动创建该目录,然后新建 wp.test.com.conf 文件,输入以下内容:

server {
	listen       80;
	server_name  wp.test.com;
	
	location / {
	  root   www/wp.test.com;
	  index  index.php index.html index.htm;
	}
	
	location ~ \.php$ {
		root           www/wp.test.com;
		fastcgi_pass   127.0.0.1:9000;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
		include        fastcgi_params;
	}
}

这些依然不是必须的,你可以选择自己的配置习惯,重要的 wp.test.com.conf 文件里的内容。这里我选择监听 80 端口,你可以配置其他端口。两个 location 配置里的 root 都是 WordPress 存放的目录,因为我们放在 nginx 的安装目录下,所以这里使用了相对路径,如果你放在其他地方,使用绝对路径。

第二个 location 里面有一行配置 fastcgi_pass 127.0.0.1:9000; ,这个就是 php-cgi 的监听地址,因为我们到目前为止还没安装过 php,所以先这样配置。

服务器的配置到这里就结束了,接下来我们来安装 php。首先去官网下载 php 安装包,我选择的是 8.2 版本,建议选择 7 以上的版本。

在这里插入图片描述

下载完以后直接找个地方解压就行了,然后进入解压目录,将 php.ini-development 文件拷贝一份,重命名为 php.ini

在这里插入图片描述

打开 php.ini 文件 搜索 mysqli;extension=mysqli 取消注释,它在 939行。否则的话,后面运行 WordPress 安装时会报错。然后是 768 行的 ;extension_dir = "ext" 也把注释取消,然后保存。

在这里插入图片描述

好了,再回到 php 的解压目录,看到有一个叫 php-cgi.exe 的程序,看到这里应该感到无比熟悉了吧,它正是我们用来解析 .php 文件的程序。在该目录下打开 cmd 命令行,输入 .\php-cgi.exe -b 127.0.0.1:9000 运行 php-cgi 程序,它会监听本地的 9000 端口,这正是我们在 nginx 中配置的端口: fastcgi_pass 127.0.0.1:9000; ,nginx 也是用的 fastcgi 来管理 php-cgi 进程。

最后我们还需要一个 MySQL 数据,创建一个叫 wordpress 的库,当然也可以是任意你喜欢的名字。别忘了把 nginx 也运行起来,到这里所有的准备工作就全部结束了。接下来就是著名的5分钟安装 WordPress 流程,说是安装,其实是配置 WordPress。

在浏览器输入 http://wp.test.com/ap-admin/install.php ,如果你没有使用域名,输入 IP+端口访问。第一步是选择语言,拉到最后选择简体中文。

第二步是配置数据库信息,需要输入数据库的库名,用户名和密码。这一步会做两件事:一是在 WordPress 安装目录下生成 wp-config.php 文件,二是建表。网上会有人教你将 wp-config-sample.php 拷贝一份并重命名为 wp-config.php ,然后手动去改配置。千万不要这么做,因为如果 wp-config.php 以存在的话,访问 wp.test.com/ap-admin/install.php 时就会跳过这一步,导致它不会帮你建表,后面的步骤也就出错了。

在这里插入图片描述

点击提交进入下一步,配置管理后台的登录用户名和密码,此外还需要你填写标题,也就是管理后台网页的标题,邮箱也是必填的,要不要被搜索引擎检索就看个人需要了,填完之后点击安装WordPress就可以了。

在这里插入图片描述

点完安装之后,会跳转到安装成功的页面,点击登录,用这里填的用户名和密码就能登录管理后台了。管理后台都在 wp-admin 路径下,管理后台首页长这个样子:

在这里插入图片描述

直接输入域名的话就是我们的网站了。默认的网站是这样的。

在这里插入图片描述

大功告成。至于 WordPress 如何使用就请各位慢慢摸索了。

Linux+nginx

Linux 下的安装过程其实和 Windows 基本一致。只是 nginx 的配置稍有不同,准确来说是只有一个地方不同,就是 nginx 代理配置里面的 fastcgi_pass 这个配置不同。

这个配置配置实际上配置的是 nginx 和 php-cgi 之间通信的方式,这是两个进程,在 Windows 上他们通过 ip 和端口进行网络通信。那么在 Linux 上它们通过 .sock 文件进行进程间通信,所以明白了吧,在 Linux 上面我们需要配置的不再是 ip+端口, 而是一个 .sock 文件的路径,当然还要加上一个 unix: 的前缀。这里给出一个示例:

server {
	listen       80;
	server_name  wp.test.com;
	
	location / {
	  root   /www/wwwroot/wp.test.com/wordpress;
	  index  index.php index.html index.htm;
	}
	
	location ~ \.php$ {
		root           /www/wwwroot/wp.test.com/wordpress;
		fastcgi_pass   unix:/run/php-fpm/www.sock;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
		include        fastcgi_params;
	}
}

是不是和 Windows 上长得挺像的。整个安装步骤其实是一摸一样的。

  • 首先找个地方解压 WordPress 压缩包。
  • 然后配置 nginx 访问代理。
  • MySQL 上建个库,注意如果你同时为它新建了用户的话,一定要给用户加上建表的权限,因为表是 WordPress 自动给你建的。如果是测试或者怕麻烦的话可以 ALL PRIVILEGES 一把梭。
  • 没有 php 环境的话自己装一个 php 环境。
  • 浏览器访问 http://xxxx.xxxx.com/wp-admin/install.php 填写两个表单,齐活。

在 Linux 上面填写完第一个表单之后可能会遇到一个错误,提示说写入 wp-config.php 失败,这是文件权限问题,根据提示到 WordPress 的安装目录下创建这个文件并写入网页上的内容即可。当然更好的做法是将 WordPress 的所有文件拥有者改成和 php 一致,一般是 www


上一篇:观察者模式的思考-总结


下一篇:多级缓存-