Windows中使用nginx搭建WordPress

前面的博客容器中搭建WordPress介绍了在容器中搭建WordPress,如果使用的是Windows环境而不是Linux,则可以使用Windows版的nginx来搭建WordPress。

根据WordPress的安装要求,需要准备以下软件环境:

  • PHP版本7.3+以上
  • MySQL版本5.6+或者MariaDB版本10.1+以上

一、下载必需软件

1. PHP

目前最新的PHP为PHP 8.1,可以根据自己的系统选择安装不同的版本,这里笔者选择的是VS16 x64 Thread Safe。

2. 数据库

这里以常用的Mysql为例,去mysql官网下载最新Windows版本的安装包。

3.nginx

在nginx官网下载最新稳定版本的nginx。

4. WordPress

目前最新版本为WordPress 6.0

二、安装配置

所有下载的软件中,只有Mysql是需要安装的,php以及nginx都是免安装的,直接解压即可。Mysql的的安装也非常简单,网上也比较多相关的教程,这里就不再赘述了。

我们可以新建一个目录,比如Web,把nginx以及php都放在该目录下,然后把WordPress放在nginx目录中,如下的目录结构:

Web
|__nginx
|    |__wordpress
|__php

1. 配置PHP

把php目录中的php.ini-production复制一份,并改名为php.ini,修改配置,打开如下配置项:

extension_dir = "ext"
cgi.fix_pathinfo=1
extension=bz2
extension=curl
extension=mysqli
extension=pdo_mysql

如果需要在线安装主题,可能需要将配置:

max_execution_time = 30

修改长一些,因为网络访问可能会比较慢。

为了方便启动PHP CGI服务给nginx使用,可以创建一个处理文件来运行下面的命令:

php-cgi.exe -b 127.0.0.1:9000 -c php.ini

2. 配置nginx

server {
        listen       80;  # 监听端口
        charset utf-8;  # 设置字符集,Windows下也可以设置为GBK,因为Windows的默认字符集就是GBK
        ……
        location / {
            root wordpress;  # 设置站点的根目录
            index index.php; 
        }
        location ~ \.php$ {
           root           wordpress; # 设置PHP的根目录
           fastcgi_pass   127.0.0.1:9000; # 设置PHP的处理URL,需要与实际PHP的CGI服务端口一致
           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           include        fastcgi_params;
        }
 }

3. 安装配置WordPress

通过前面的配置,启动PHP GCI服务,再启动nginx,就可以通过:127.0.0.1访问WordPress了,就与前面的博客容器中搭建WordPress中的初始化WordPress一样了,这里不再赘述。

至此,我们就可以愉快的玩WordPress了。但是发布的文章固定链接形式为:http://127.0.0.1/?p=123,如下图所示:
Windows中使用nginx搭建WordPress_第1张图片
如果我们使用其它的形式,就会出现无法访问的情况。此时需要修改nginx配置,添加如下配置:

server {
        ……
        location / {
            ……
            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; 
 }

重启nginx即可。

你可能感兴趣的:(Windows,nginx,nginx,windows,php,wordpress,mysql)