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访问
现在是真正意义上的写完了🙂