分类目录归档:WordPress

在IIS中部署WordPress

在IIS中部署Wordpress

1.准备工作

1.Windows系统
2.PHP程序
下载网址:
https://windows.php.net/download/
或者
https://windows.php.net/downloads/releases/php-8.2.11-nts-Win32-vs16-x64.zip

Alt text

2.配置PHP

解压下载的PHP压缩包,找到php.ini-development文件,复制一份,重命名为php.ini。
修改该php.ini配置文件。


;放置PHP扩展的目录,去掉下面前面的注释,启用扩展功能
extension_dir = "ext"

;启用扩展。不需要一个一个的找,这一块的扩展全部启用都可以。
extension=bz2
extension=ldap
extension=curl
extension=ffi
extension=ftp
extension=fileinfo
extension=gd
extension=gettext
extension=gmp
extension=intl
extension=imap
extension=mbstring
extension=exif      ; Must be after mbstring as it depends on it
extension=mysqli
extension=odbc
extension=openssl
extension=pdo_firebird
extension=pdo_mysql
extension=pdo_oci
extension=pdo_odbc
extension=pdo_pgsql
extension=pdo_sqlite
extension=pgsql
extension=shmop
extension=soap
extension=sockets
extension=sqlite3
extension=tidy
extension=xsl
extension=zip

;启用并修改session文件的存储目录。
session.save_path = "C:\tmp"

;修改PHP上传最大限制
post_max_size = 200M
upload_max_filesize = 200M

修改完保存一下。设置一下C:\tmp的文件夹权限。添加IIS_IUSRS用户,设置所有权限。
Alt text

3.安装IIS

安装IIS

打开Windows 11 的应用界面->可选功能->更多Windows功能。进入启用或关闭Windows功能界面。
展开Internet Information Services,勾选Web管理工具中的IIS管理控制台和万维网服务中的CGI、ASP.NET,还有常见HTTP功能中的静态内容、默认文档、目录浏览,然后点击确定。
如果不勾选ASP.NET,IIS管理器里面没有默认文档设置。
如果不勾选静态内容,IIS管理器里面没有MIME类型设置。

Alt text

稍等片刻,安装完后。打开IIS管理器。在Windows 11开始菜单上搜索IIS,打开即可。最好把IIS管理器固定在开始菜单,方便下次使用。

Alt text

配置PHP

打开IIS管理器,找到处理程序映射。

Alt text

打开处理程序映射界面,点击有右边的添加模块映射。添加PHP相关信息,然后点击确定。如下。

Alt text

如果提示:要为此可执行文件创建FastCGI应用程序吗?点击“是”将此项添加到FastCGI集合中,以及允许此可执行文件作为FastCGI应用程序运行。
点击是即可。

添加默认文档

默认文档即index.html、index.htm、default.htm。这里我们要使用PHP,就要把idnex.php设置为默认文档。
找到默认文档设置。
Alt text

添加index.php为默认文档。

Alt text

添加MIME类型

这里的操作主要是一些文件如CSS、JS、ISO等在IIS中默认不下载。会提示错误。
Alt text
添加文件扩展名为星号(*),MIME类型为application/octet-stream。表示所有文件皆可下载。
Alt text

4.安装Wordpress

注:Wordpress需要数据库支持,默认链接数据库是MySQL或MariaDB。这里使用的是SQLite,具体使用SQLite操作方法请查阅上一篇。

将下载下来的Wordpress压缩包放在网站目录里。可以放在默认网站C:\inetpub\wwwroot,也可以新建的网站目录里面。

在浏览器中打开http://localhost/wordpress,可以即可安装Wordpress。

注意:
还需要给网站目录设置IIS_IUSRS权限,否则Wordpress无法安装插件。

Alt text

5.Wordpress伪静态

到微软网站下载URL重写模块(URL Rewrite)。
https://www.iis.net/downloads/microsoft/url-rewrite

Alt text

安装完成后。
将以下内容保存为web.config文件,放在wordpress跟目录中。
如果网站根目录就是Wordpress的根目录,那就放置再网站根目录。
一定要先安装然后再存放web.config文件。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
                <rule name="category">
                    <match url="category/?(.*)" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                    <action type="Rewrite" url="/index.php?category_name={R:1}" appendQueryString="false" logRewrittenUrl="false" />
                </rule>
                <rule name="tags">
                    <match url="tag/?(.*)" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                    <action type="Rewrite" url="index.php?tag={R:1}" />
                </rule>
                <rule name="Main Rule" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php/{R:0}" />
                </rule>
                <rule name="wordpress" patternSyntax="Wildcard">
                    <match url="*" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php" />
                </rule></rules>
    </rewrite>
  </system.webServer>
</configuration>

完成后,就可以设置Wordpress的伪静态链接了。

Alt text

结束,愉快的玩耍吧。

使用SQLite部署WordPress

Install WordPress with SQLite

使用SQLite部署Wordpress

使用SQLite部署Wordpress,不需要安装MYSQL(MARIADB),只需要一个能执行PHP的环境就行。

1. 准备工作

1.PHP运行环境
2.下载Wordpress
https://cn.wordpress.org/download/
3.下载SQLite Database Integration
https://wordpress.org/plugins/sqlite-database-integration/

2.处理插件文件

1.解压Wordpress和SQLite Database Integration压缩包。
2.将sqlite-database-integration文件夹复制到wordpress\wp-content\plugins文件夹中。
3.将wordpress\wp-content\plugins\sqlite-database-integration文件夹中的db.copy文件,剪切到wordpress\wp-content文件夹。并且重命名为db.php

3.修改wordpress的wp-config.php文件

1.将wordpress文件夹中的wp-config-sample.php文件复制一份,重命名为wp-config.php
2.修改wp-config.php中以下内容。
将DB_NAME、DB_USER、DB_PASSWORD、DB_HOST的值设置为空。

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', '' );

/** Database username */
define( 'DB_USER', '' );

/** Database password */
define( 'DB_PASSWORD', '' );

/** Database hostname */
define( 'DB_HOST', '' );

4.部署

完成上述操作,将wordpress文件夹中整体上传到网站上即可开始安装。

5.无聊的废话

WordPress 默认只支持 MySQL 数据库,MySQL 是世界上最流行的关系型数据库,WordPress 采用 MySQL 作为数据库也是自然而然的事情。不过除了 MySQL,我们还可以使用 SQLite 作为 WordPress 的数据库系统来安装使用。

SQLite Database Integration 是一个「Drop-in」类型的插件,是用来替换 WordPress 内置功能的,只要文件存在,插件就自动启用。

然后打开 WordPress 站点安装页面,我们会发现,没有要求输入 MySQL 数据库信息的步骤,直接进入了安装界面,接下来就和使用 MySQL 安装的 WordPress 是一样的。经过在wordpress6.3.2版本上测试,在使用上没有任何区别。

使用 SQLite 安装 WordPress 的好处

为什么 MySQL 使用的好好的,我们要使用 SQLite 来安装 WordPress 呢?有以下几点好处:

  • 对服务器要求低:SQLite 是基于文件的数据库,只要服务器上有 Nginx 和 PHP 就可以使用了,相对于默认的安装方法,少了一个 MySQL 服务。
  • 方便备份:直接打包站点目录就把整个站点备份好了。
  • 方便迁移:如果需要迁移服务器,直接把站点目录打包,上传到另外一个服务器上就可以了,不用再导出、导入数据库。

什么时候可以使用 SQLite

既然有了上面说的诸多好处,那我们是否可以在所有情况下都使用 SQLite 来安装 WordPress 呢?当然不是,WordPress 默认采用 MySQL而不是 SQLite 作为数据库是有原因的。

从名称就可以看出,SQLite 是一个轻量级的数据库,某些复杂的特性是支持不了的。所以,如果我们开发的是一个很简单的企业站点,只有为数不多的几个页面,不涉及复杂的数据库交互的情况下,使用 SQLite 是完全没有问题的。

因为 WordPress 是一个开源的生态系统,在站点架构上,会有很多可能,不只是 SQLite,WordPress 甚至也可以使用 PostgreSQL 进行安装,具体方法大家可以自行搜索,在这里就不在多说了。

在SQLite上运行WP有什么限制?为什么不将其用于所有站点?

缺点之一是SQLite在具有多个作者的站点中表现不佳。如果多个作者正在编辑网站上的帖子并同时更新它们,那么他们的保存请求将一个接一个地运行,而不是同时运行——因此会有一小段延迟(可能是毫秒,但仍然是延迟)。

SQLite是一个很棒的工具,但它不是灵丹妙药 – 就像MySQL一样。MySQL是并且应该继续成为默认的,因为如果你有成为下一件大事的愿望,那么MySQL可以更好地扩展。另一方面,如果您只想要一个博客,一个带有您的关于页面和联系表单的公司网站,或者任何类型的小型网站(可以说是WordPress上的大多数网站),那么SQLite就是您所需要的,它会表现得更好。