密码的,这两天用wsl2搭建wordpress,刚开始没啥问题,访问正常,结果第二天打开电脑发现无论如何都访问不了wsl2搭建的wp,一直报错无法连接,无法访问,请检查防火墙和网络代理什么的。
然后去网上各种搜Windows访问不了WSL2搭建的网站、wsl2网络问题什么什么的,反正相关关键词都搜了一遍都没解决,最后改了mirrored模式网络,访问新的wsl2 ip(192开通),发现居然跳转到旧IP(172开头)了,之前都没发现,一问AI:
WSL2在默认的NAT模式下,每次重启Windows或WSL服务,它的IP地址都会变。但WordPress把站点的地址(home和siteurl)硬编码写死在了数据库的wp_options表里。IP一变,数据库里的旧IP却没变,导致网站所有链接、重定向都指向一个已经不存在的地址,自然就无法访问了。
mysql> UPDATE wp_options SET option_value = 'http://192.168.93.156/wordpress' WHERE option_name = 'home';
PDATE wp_options SET option_value = 'http://192.16Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0mysql> UPDATE wp_options SET option_value = 'http://192.168.93.156/wordpress' WHERE option_name = 'siteurl';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> SELECT * FROM wp_options WHERE option_name IN ('siteurl', 'home');
+-----------+-------------+---------------------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+---------------------------------+----------+
| 3 | home | http://192.168.93.156/wordpress | on |
| 2 | siteurl | http://192.168.93.156/wordpress | on |
+-----------+-------------+---------------------------------+----------+
2 rows in set (0.00 sec)
手动更换IP,ai说镜像模式IP不会变了,不知道是不是真的,下次开机再看看。
另外给了几个方法
- localhost
UPDATE wp_options SET option_value = 'http://localhost/wordpress' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'http://localhost/wordpress' WHERE option_name = 'home';
- wp-config.php(没试过)
//末尾添加
define('WP_HOME','http://xxxxxx/wordpress');
define('WP_SITEURL','http://xxxxxx/wordpress');