WordPress是全球数百万网站(从创作者、小型企业到大型企业)的首选开源发布平台。最近,响应国家号召,折腾了一番将家里的光猫改成桥接模式,用路由器拨号,成功获得了ipv6。总不可能放着这来之不易的公网ip不用吧?于是就搭建了一个WordPress网站(以下简称wp)。
我用的是windows IIS+DDNS的方法。
准备工作
- Windows电脑/服务器
- 公网ipv4/ipv6的IP地址
- 拥有一个域名
- mysql安装包,可以在这里找到,填好版本号即可下载,让我们登陆账号时选择左下角的
No thanks, just start my download. - wp安装包可以在WordPress官网找到
- php压缩包可以在php-win官网找到,下载时选择
VS16 x64 Non Thread Safe的最新.zip压缩包 - 比较好用的、带代码高亮的文本编辑器(比如VS Code)
安装mysql
打开下载的mysql安装包,选择Server only,然后一直下一步
这一步将设置管理员root的密码,请牢记 忘记了密码怎么办?

然后一直下一步完成安装即可(记得勾选将mysql加入环境变量)手滑了没点到怎么办?
完成安装后,打开cmd,输入:
mysqld --install
net start mysql
mysql -uroot -p
%请在输入框中输入root密码%
出现以下输出:

接着继续在命令框中输入:
create database wordpress;
完成后就可以关闭窗口了
安装IIS
打开Windows设置,转到“系统 > 可选功能”,滑动到最下方,找到更多Windows功能,单击

勾选Internet Information Services,并展开此项,确保"Internet Information Services > 万维网服务 > 应用程序开发功能 > CGI"被勾选,单击完成,等待IIS安装完毕
安装PHP
将php压缩包解压到你想放的目录,尽量保证目录中不含中文(我选择的D:\php8)
在其中找到php.ini-production将其重命名为php.ini,并打开
其中大部分内容都被注释掉了,将下列内容 去掉注释/修改(请熟练使用“查找”功能)
post_max_size = 2G ;这是最大允许 POST 提交数据大小,我设置的是2G,大家看情况
extension_dir = "D:\php8\ext" ;这个改成“安装路径\ext”
upload_max_filesize = 2G ;这是文件最大上传大小,我设置的是2G,大家看情况
max_file_uploads = 20 ;同时上传的文件个数,视情况修改
extension=curl
extension=ftp
extension=fileinfo
extension=gd
extension=php_imagick.dll ;这个比较麻烦,建议先跳过,不管这一项
extension=intl
extension=mbstring
extension=exif ; Must be after mbstring as it depends on it
extension=mysqli
extension=openssl
extension=zip
跳过的模块在这里,推荐最后再弄这个
打开刚刚安装好的IIS(可以在搜索框中输入“IIS”),双击“处理程序映射”,如下图

在右边栏找到“添加模块映射”,按如图所示方式填写

其中可执行文件路径为“安装php路径\php-cgi.exe”
确认无误后,单击“确定”,并在弹出的窗口中选择“是”
安装wp
解压wp安装包到你喜欢的位置,我放在D:\wordpress中。
在其中找到wp-config-sample.php并将其更名为wp-config.php,并打开
找到下面三项,改成如图(密码填你自己的,这么臭的密码还能要吗)
define( 'DB_NAME', 'wordpress' );
/** 刚刚创建的数据库名 */
define( 'DB_USER', 'root' );
define( 'DB_PASSWORD', '1145141919810' );
/** root用户的密码 */
打开IIS,在左边栏右键“网站”,选择“添加网站”

按如图所示填写

其中,物理路径是你安装wp的路径
在弹出的窗口中选择“是”
打开新建网站的主页,双击“默认文档”

在其中添加一项index.php

在左边栏展开“网站”,右键“Default Web Site”将其停止

再如法炮制将刚刚新建的网站启动
配置wp
打开一个浏览器,在地址栏中输入localhost
如果看到以下界面,恭喜你,已经成功了!

接下来按照指引完成安装程序,就完成了
配置域名DNS解析
在各大服务商处购买一个域名(我在ailiyun买的),进入到其域名控制界面,单击“添加记录”
其中:
- 记录类型,根据ipv4/ipv6的不同,选择A/AAAA
-
主机记录,即你根域名的前缀
- 记录值,打开cmd,输入
ipconfig /all找到你的公网IP(ipv4不以192.168开头,ipv6不以fe/fd开头)填入
有能力的同学可以去搜索“DDNS服务”,这项服务可以很好的让你的域名自动绑定上你变化的公网IP。由于不同域名提供商的服务不尽相同,在此不作展开
进一步配置wp
其实设置里写的都很详细,故不提,重点要提一下“设置 > 常规”中的WordPress 地址(URL)、站点地址(URL)
在配置的时候一定要小心!!!!!一旦输错,你将无法访问这个网站!!!!!
如果输错了怎么办?
配置https
这里又需要花钱了,请去卖证书的网站上购买一个证书(我是在Nya SSL购买的证书)
如果你曾经使用过Sakura Frp的服务,那么你还可以得到优惠(如果有需要的可以联系我,我有优惠码)
建议选择「单域名证书」,因为便宜
付完款后,就进入了配置页面,这里注意请再三检查你的域名填写是否正确
验证方式选择默认的“DNS解析”(类似的名字)就可以了
配置完了以后,网站会验证你对域名的所有权,你需要打开你域名的控制台,添加几个TXT类型的解析,内容就填写网站提供给你的验证码
然后回到网站,点击“立即验证”,等待一段时间后就成功获取到了证书
然后将证书和私钥保存到本地(私钥是敏感信息,千万千万千万妥善保存,并且在截图时打码)

证书下载下来通常是.crt格式的,但是IIS是不支持这种格式的证书的,所以我们需要对其进行转换
打开这个网站
Certificate File to Convert 选择 .crt 文件
然后Type To Convert To 这里选择 : PFX/PKCS#12
在弹出的界面上选的 Private Key File 选择 .key 文件,选好后如下图
密码自己随便输入,IIS导入证书要用到。

点击“convert”按钮,就可以开始转换,转换完成后就会自动下载
接下来打开IIS,双击“服务器证书”,在右边栏上选择导入
证书文件就是刚刚下载下来的.pfx,密码就是你在转换时输入的密码,单击“确定保存”
接下来转到你的网站,依次单击“绑定” -> “添加”
在弹出的窗口中将“类型”改为https,“SSL证书”处选择你导入的证书

然后就大功告成
如果要只允许https访问的话可以在“SSL设置”中勾选“要求SSL”
这样就会屏蔽http请求
注意事项
- 请定时做好
mysql和wp文件夹的备份(血与泪的教训,详见公告)wp的备份可以直接对wp的文件夹整个压缩mysql的备份可以通过在cmd/ps中输入
PS C:\Users\Admin> mysql -uroot -p
Enter password: ***********
mysql> flush tables;
Query OK, 0 rows affected (0.07 sec)
mysql> quit
Bye
PS C:\Users\Admin> mysqldump -uroot -p --databases wordpress > filename.sql
Enter password: ***********
常见问题
你猜为什么叫常见问题
你猜这些问题为什么我都知道怎么解决
(微笑)
mysql
我忘记了root用户的密码,怎么办?
先确保自己关闭了mysql服务,打开一个管理员模式的cmd/ps,输入以下内容
net stop mysql
接下来继续输入
mysqld --console --skip-grant-tables --shared-memory
不要关闭这个窗口,打开一个新的cmd/ps窗口,并输入
mysql
会直接登录成功,接下来将密码设置为空(直接设置新密码的话会报错)
use mysql;
update user set authentication_string = '' where user = 'root';
quit
接下来新开一个窗口,并把前两个窗口都关掉,继续输入
net start mysql
等待mysql启动,并继续输入
mysql -uroot -p
(让我们输入密码时直接回车即可)
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
最后再验证一下修改是否成功,quit后再重新用新密码登陆一次
如何将mysql加入环境变量?
在搜索框中输入“环境变量”,会弹出

直接打开
单击环境变量(N)…
按如图方式依次单击

点击新建,在其中输入“安装mysql的路径\bin”

然后一路确定、保存就行了
停电了mysql非正常退出怎么办?
之前备份过
打开一个cmd/ps窗口,输入
mysql -uroot -p [密码] < [sql备份文件的路径]
未备份
这个方法就比较玄学了
大家抱着试一试的心态就行了
先检查一下mysql服务启动没有,如果没有启动,就尝试启动一下
如果启动不了(启动报错“无法启动”)
去cmd/ps中尝试登录mysql看能不能登上,如果能登上,继续往后看
输入
flush tables;
然后退出,找到安装mysql的文件夹(我的在C:\Program Files\MySQL\MySQL Server 8.0)
检查这个目录下有没有my.ini文件,如果没有就新建一个
接下来重启电脑,期待奇迹发生
(我的网站的数据就是这么回来的,我也搞不懂为什么)
wp
我错误地配置了WordPress 地址(URL)、站点地址(URL),现在访问不了网站了,怎么办?
打开cmd/ps,登录mysql,输入以下命令
PS C:\Users\Admin> mysql -uroot -p
Enter password: ***********
mysql> use wordpress;
Database changed
mysql> select * from wp_options where option_name = 'siteurl';
+-----------+-------------+------------------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+------------------------------+----------+
| 2 | siteurl | https://remote.lucas2011.top | on |
+-----------+-------------+------------------------------+----------+
1 row in set (0.00 sec)
mysql> select * from wp_options where option_name = 'home';
+-----------+-------------+------------------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+------------------------------+----------+
| 3 | home | https://remote.lucas2011.top | on |
+-----------+-------------+------------------------------+----------+
1 row in set (0.00 sec)
mysql> update wp_options set option_value = 'http(s)://你网站的地址.com' where option_name = 'siteurl';
mysql> update wp_options set option_value = 'http(s)://你网站的地址.com' where option_name = 'home';




好的也是终于写完了
哦不对还差一个https访问
现在是真正意义上的写完了🙂