手机端下拉列表
400-002-9968

博客 > 【Plesk经验分享】如何应对内部错误:解析元数据失败

【Plesk经验分享】如何应对内部错误:解析元数据失败

  • 标签:
  • parse
  • metadata
  • internal
  • error

浏览量:4472次评论:0次

作者:Christina时间:2019-09-05 23:46:00

适用版本:
Plesk 11.x for Linux
Plesk 11.x for Windows
Plesk 12.5 for Linux
Plesk 12.5 for Windows


问题描述
1. 无法打开域名控制面板(Domain Control Panel),并出现下面的错误:
Internal error: Failed to parse metadata

Message Failed to parse metadata
File aps_php.php
Line 12559
Type Exception


2. 无法检查APS包设置:
# /usr/local/psa/bin/aps --get-packages-global-settings
Failed to parse metadata


或出现下面的错误信息:
# /usr/local/psa/bin/aps --get-packages-global-settings
PHP Warning : aps_registry_packageconfiguration_getglobalsettings(): Entity: line 7: parser error : Char 0x0 out of allowed range; File: /usr/share/aps_php/aps_php.php, Line: 10024
PHP Warning : aps_registry_packageconfiguration_getglobalsettings(): ; File: /usr/share/aps_php/aps_php.php, Line: 10024
...
Failed to parse metadata


3. 无法安装应用程序


4. 无法在 Plesk上从 工具与设置 > 应用百宝箱 > 清除缓存 实现缓存清除:
Internal error: Cannot find package cache directory: '/usr/local/psa/var/apspackages/apscatalog7R2ZJ5.zipb17fa7a9-c64e-c0'
Message Cannot find package cache directory: '/usr/local/psa/var/apspackages/apscatalog7R2ZJ5.zipb17fa7a9-c64e-c0'
File Content.php
Line 73
Type CommonPanel_Aps_Cache_Exception


原因
出现该问题是因为'metafile_uri'目录(来自apsc.aps_package 表)在服务器上缺失或 APP-META.xml 文件已损坏。


解决方案
Windows:
1. 使用RDP连接服务器。


2. 请复制下面的脚本并以文件名 restore-cache.ps1 进行保存:


$arr=@((plesk bin aps -gp | Select-String -Pattern "Name|Version" | Out-String | Foreach {$_ -replace ".*:\s*", '' }).Split("`r|`n",[System.StringSplitOptions]::RemoveEmptyEntries))
for ($i = 0; $i -le $arr.Count; $i = $i + 2){plesk bin aps -d -package-name $arr[$i] -package-version $arr[$i+1]}


3. 右击该脚本并选择 在Powershell中运行


Linux:
1. 使用SSH连接服务器。


2. 请复制下面的脚本并以文件名 restore-cache.sh 进行保存:


 #!/bin/bash
 name=
 i=0
 for line in `plesk bin aps -gp | awk  '/Name:|Version:/ {print $2}'`;
do
 if [ $((i%2)) -eq 0 ];
  then
   name=$line
   ((++i))
  else
   plesk bin aps -d -package-name $name -package-version $line
   i=0
  fi
done


3. 令其成为可执行文件并运行它:
# chmod +x restore-cache.sh
# ./restore-cache.sh


如果该问题在10分钟后仍然存在,请执行下面的步骤:
1. 清除应用缓存:工具与设置 > 应用百宝箱 > 清除缓存


2. 如果无法清除缓存请创建所报告的目录然后再试:
# mkdir /usr/local/psa/var/apspackages/apscatalog7R2ZJ5.zipb17fa7a9-c64e-c0 # chown -R psaadm:psaadm /usr/local/psa/var/apspackages/apscatalog7R2ZJ5.zipb17fa7a9-c64e-c0


3. 请务必确保在config文件 /usr/local/psa/admin/conf/panel.ini中禁用SQL查询调试。启用调试则无法运行脚本。


4. 登录到MySQL服务器:
# MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin apsc


5. 通过下面的sql查询确定 metafile_uri 路径:
mysql> select `id`, `name`, `version`, `release`, `metafile_uri` from apsc.aps_package;
+-----+-----------+---------+---------+----------------------------------------------------------------------------------+
| id | name | version | release | metafile_uri |
+-----+-----------+---------+---------+----------------------------------------------------------------------------------+
| 66 | WordPress | 2.3.3 | 5 | /usr/local/psa/var/apspackages/556229a0-5008-41b5-83d1-3c0b32649196/APP-META.xml |
| 77 | WordPress | 3.3.1 | 4 | /usr/local/psa/var/apspackages/2abd12d2-7017-46ee-a80b-ed42599f7c0a/APP-META.xml |
| 106 | WordPress | 3.5.2 | 2 | /usr/local/psa/var/apspackages/c22666c4-b469-4eb2-a0e7-7c6f3f4f11eb/APP-META.xml |
+-----+-----------+---------+---------+----------------------------------------------------------------------------------+
3 rows in set (0.00 sec)


6. 请确保服务器上存在 'metafile_uri' 目录。该类目录应如下方式存在:
# ls -la /usr/local/psa/var/apspackages/c22666c4-b469-4eb2-a0e7-7c6f3f4f11eb/APP-META.xml
-rw-r--r-- 1 psaadm psaadm 50828 Mar 12 21:23 /usr/local/psa/var/apspackages/c22666c4-b469-4eb2-a0e7-7c6f3f4f11eb/APP-META.xml
# ls -la /usr/local/psa/var/apspackages/556229a0-5008-41b5-83d1-3c0b32649196/APP-META.xml
-rw-r--r-- 1 psaadm psaadm 21506 Mar 12 21:23 /usr/local/psa/var/apspackages/556229a0-5008-41b5-83d1-3c0b32649196/APP-META.xml
# ls -la /usr/local/psa/var/apspackages/2abd12d2-7017-46ee-a80b-ed42599f7c0a/APP-META.xml
-rw-r--r-- 1 psaadm psaadm 21706 Mar 12 21:23 /usr/local/psa/var/apspackages/2abd12d2-7017-46ee-a80b-ed42599f7c0a/APP-META.xml


7. 请务必确保所有的 APP-META.xml 文件是可读的:
# head /usr/local/psa/var/apspackages/a1a41e6f-f5ae-4f80-8e30-788a0a418196/APP-META.xml

http://wordpress.org/
WordPress
4.1
74
http://wordpress.org/


WordPress.org
http://wordpress.org/


如果该文件不可读或是二进制文件,请将其移除并重新创建下面列出的包文件夹。
1. 如果'metafile_uri'目录丢失,请创建该目录:
# mkdir /usr/local/psa/var/apspackages/c22666c4-b469-4eb2-a0e7-7c6f3f4f11eb
# mkdir /usr/local/psa/var/apspackages/556229a0-5008-41b5-83d1-3c0b32649196
# mkdir /usr/local/psa/var/apspackages/2abd12d2-7017-46ee-a80b-ed42599f7c0a


2. 从dev.apsstandard.org 将相应名称和版本的APS包下载到在前一个步骤中创建的目录中。如果您的WordPress版本未出现在上面提及的页面上,请访问 apscatalog.com 。
通过浏览器下载时可能会出现nginx 403 Forbidden错误。如果出现此情况,请复制生成的链接到浏览器的存档,然后使用 wget 工具将其下载,例如:
# wget https://apscatalog.com/storage/wordpress.org/WordPress/2.7.1-2/parallels.com/undefined/undefined/undefined/WordPress-2.7.1-2.app.zip


3. 将zip文件解压到相同的目录中,例如:
# ls -la /usr/local/psa/var/apspackages/2abd12d2-7017-46ee-a80b-ed42599f7c0a/
drwxr-xr-x 5 psaadm psaadm 4096 Jan 17 2013 ./
drwxr-xr-x 15 psaadm psaadm 4096 Sep 5 04:34 ../
-rw-r--r-- 1 psaadm psaadm 13434 Jan 17 2013 APP-META.xml
drwxr-xr-x 2 psaadm psaadm 4096 Jan 17 2013 htdocs/
drwxr-xr-x 2 psaadm psaadm 4096 Jan 17 2013 images/
drwxr-xr-x 2 psaadm psaadm 4096 Jan 17 2013 scripts/


4. 将包文件夹上的权限递归地更改为 psaadm:
# chown -R psaadm:psaadm /usr/local/psa/var/apspackages/2abd12d2-7017-46ee-a80b-ed42599f7c0a/

我的评论

还未登录?点击登录

微信扫码沟通
微信扫码沟通

微信扫码沟通

售前咨询
合作
售后
return head