• 2022年5月4日

文件名超过此平台上允许的最大路径长度(260)

今天发表文章时遇到“警告:file_exists():文件名超过此平台上允许的最大路径长度(260)”等多个警告,百度了一下网络上的一些经验分享,说的是多重目录下的文章长标题容易遇到此类警告提醒,由于不光是面对管理员的警告,每一个访客都能看到这几行警告,就像代码溢出一样,非常的不美观。

Warning: file_exists(): File name is longer than the maximum allowed path length on this platform (260): C:\wwwroot\imopu.cn/wp-content/themes/blogwaves/single-post-%e9%87%91%e5%8d%81%e6%95%b0%e6%8d%ae%e6%9c%ba%e6%9e%84%e7%8e%a9%e5%ae%b6%e6%8c%81%e4%bb%93%e6%8a%a5%e5%91%8a%e5%88%86%e6%9e%90%e5%af%b9%e9%bb%84%e9%87%91%e4%bb%b7%e6%a0%bc%e6%9c%89%e5%bc%95%e5%af%bc.php in C:\wwwroot\imopu.cn\wp-includes\template.php on line 703
Warning: file_exists(): File name is longer than the maximum allowed path length on this platform (260): C:\wwwroot\imopu.cn/wp-content/themes/blogwaves/single-post-%e9%87%91%e5%8d%81%e6%95%b0%e6%8d%ae%e6%9c%ba%e6%9e%84%e7%8e%a9%e5%ae%b6%e6%8c%81%e4%bb%93%e6%8a%a5%e5%91%8a%e5%88%86%e6%9e%90%e5%af%b9%e9%bb%84%e9%87%91%e4%bb%b7%e6%a0%bc%e6%9c%89%e5%bc%95%e5%af%bc.php in C:\wwwroot\imopu.cn\wp-includes\template.php on line 706
Warning: file_exists(): open_basedir restriction in effect. File(C:\wwwroot\imopu.cn/wp-includes/theme-compat/single-post-%e9%87%91%e5%8d%81%e6%95%b0%e6%8d%ae%e6%9c%ba%e6%9e%84%e7%8e%a9%e5%ae%b6%e6%8c%81%e4%bb%93%e6%8a%a5%e5%91%8a%e5%88%86%e6%9e%90%e5%af%b9%e9%bb%84%e9%87%91%e4%bb%b7%e6%a0%bc%e6%9c%89%e5%bc%95%e5%af%bc.php) is not within the allowed path(s): (C:/wwwroot/imopu.cn/;C:/Windows/Temp/;C:/Temp/;C:/BtSoft/temp/session/) inC:\wwwroot\imopu.cn\wp-includes\template.phpon line709

可如果光说因为多重目录下的长标题是导致此问题出现的,也不绝对,我的墨铺网早已经使用这方式安装好,而且我检查之前发表的文章都没有此类警告提示,哪怕是标题更长的文章也没有此类提示。所以事情应该从我这两天对网站的一些操作分析起才能找到解决问题的办法。

我的建站程序是wordpress,昨天切换了php版本,把原来使用的php5.6直接删除掉,安装过php7、7.2和8等多个版本,最初是直接卸载php5.6,然后切换到php7,但这样一样,网站竟然打不开了,明明在BT面板下网站管理中已经切换到php7的。不得已,只能又重新安装回php5.6。我对于这些建站环境本就是门外汉,只知道需要安装这么几款软件才能运行网站,对于版本这一块并不了解,也是为了安装phpmyadmin,装错了新版本,导致原来安装的php版本不支持,为了升级php版本才闹出这么多事来。

但我尝试了把网站的php版本从php5.6切换到7.0,结果并不能让警告消失。明明别的标题更长却没事,这个标题并不是最长的只是因为新文章发布(昨天折腾php版本之后的事)就出现这样的问题呢?我有些抓狂了。好在我尝试着看了一下所有文章下,文章快速编辑里面的别名,对照后发现以前的长标题文章别名都是截取的,并非全部标题名。于是我修改了一下别名后更新,发现不再提示“文件名超过此平台上允许的最大路径长度(260)”了。

以下的内容全是我猜测的,不过应该很接近问题的本质了,但我并没有对其进行修复的能力。猜测如下:以前的网站配置里,发表文章时系统会自动截取一段标题内容为别名,这样对外显示的是文章标题全名,而在系统内部,使用的是别名,可以规避路径长度260字符的限制。但在我昨天对系统配置的修改中,原来配置好的自动截取标题做别名的功能不再生效了,而是以完整的文章标题做别名,这样一发表时就会引起警告。

解决办法应该一是有地方可以修改这个设置问题,另一办法或许是实现一次网站主机的重启能解决此类问题。