尝试升级MAMP时,会出现以下错误:
Notice: unserialize(): Error at offset 276 of 1133 bytes in Config.php on line 1050
ERROR: The default config file is not a valid config file or is corrupted.
一些建议如何解决这个问题?
Steps to reproduce:
-
已安装的MAMP(版本2.0.5)
-
cd /Applications/MAMP/bin/php/php5.3.6/bin
-
sudo ./pear升级梨
-
以上提到的错误被抛出
Update (1):
基于答案8375349/420953我尝试了两种可能来解决这个问题
-
答: delete pear.conf
-
rm /Applications/MAMP/bin/php/php5.3.6/conf/pear.conf
-
B: edit pear.conf
-
更改"php_dir"; s:44到"php_dir"; s: 43
两者都导致错误:
Could not get contents of package "/Applications/MAMP/bin/php/php5.3.6/bin/pear". Invalid tgz file.
upgrade failed
Update (2):
赛跑
- 哪个梨
结果输出
- / usr / local / bin / pear
有了这个,我注意到我使用的是PEAR的“本地”版本 .
我把它删除了
- sudo梨卸载梨
然后尝试升级MAMP版本的PEAR
- /Applications/MAMP/bin/php/php5.3.6/bin/pear升级梨
这会导致错误
Cannot install, php_dir for channel "pear.php.net" is not writeable by the current user
用 . 升级
- sudo /Applications/MAMP/bin/php/php5.3.6/bin/pear升级梨
在本地安装(再次) .
赛跑
- 哪个梨
输出
- / usr / local / bin / pear
这让我回到了 Update (2) 的起点 . 似乎我无法在MAMP目录下升级PEAR .
Update (3):
我发布了问题
因为我的假设是这个问题的根源与MAMP PEAR配置有关 .
Update (4):
我没有安装本地PEAR版本,这导致了一些问题 . 在安装本地版本(而不仅仅是MAMP)版本之后,更新MAMP版本的工作非常完美 .
4 回答
有确切问题的人似乎已经在this MAMP forum thread解决了这个问题 .
您可以删除
/Applications/MAMP/bin/php/php5.3.6/conf/pear.conf
,也可以将该文件中的一行从"php_dir";s:44
更改为"php_dir";s:43
.编辑pear.conf:在php_dir路径的末尾添加正斜杠“/”,同时保持s:44解决了我和几个同事的问题 .
我安装了XAMPP,我刚刚删除了/xampp/php/pear.ini,这解决了同样的问题
只是为其他人找到这个答案而迟到了 . 我的PEAR配置有几个问题,而不仅仅是php_dir配置设置 .
我必须检查所有设置以验证计数是否正确 . 当所有错误修复我的PEAR再次正常工作 .
在终端中看到此消息:
转到您的PEAR配置文件(可能位于此处
/MAMP/bin/php/php7.0.10/conf/pear.conf
)转到该文件中的第276个字符,并验证字符串长度是否与字符串之前定义的s43相匹配 .
再次运行PEAR命令(例如
pear version
)如果您有更多错误,例如第317个字符,您计算该字符串并在字符串前面的s:XX中写入长度 .
只是为了澄清其他人发现这个问题 . PEAR Config文件是运行命令时未序列化的序列化对象 .
序列化对象看起来像
s:5:"value"
,其中s:5定义字符串的长度 .