分类 电脑 下的文章

magento - 不能登录后台 - Mage registry key _singleton/massemail/observer

magento网站程序,可更改 local.xml 配置后,网站前台正常,但访问后台提示错误。

1.在浏览器里尝试登录到magento站点后,提示错误
mage-error-registry-key-1.jpg

2.在var/report里找到相应的事件记录,有如下语句:

a:5:{i:0;s:64:"Mage registry key "_singleton/massemail/observer" already exists";i:1;s:2330:"#0 /www/users/domain.name/app/Mage.php(222): Mage::throwException('Mage registry k...')
#1 /www/users/domain.name/app/Mage.php(476): Mage::register('_singleton/mass...', false)

3.网上查得,可以尝试通过magento的管理脚本compiler.php来关闭comiler功能来解决

php compiler.php state
php compiler.php disable
php compiler.php clear

参考:https://community.magento.com/t5/Magento-1-x-Technical-Issues/Mage-registry-key-quot-singleton-massemail-observer-quot-already/td-p/60351

magento前台访问错误 - Class name must be a valid object or a string

1.magento 1.x 版本,站点搬迁后,前台访问,提示错误:Fatal error: Class name must be a valid object or a string in /www/users/domain.name/includes/src/__default.php on line 29658

2.查看 __default.php 相应的行,大概有如下:

    public function getConnectionTypeInstance($type)
    {
        if (!isset($this->_connectionTypes[$type])) {
            $config = Mage::getConfig()->getResourceTypeConfig($type);
            $typeClass = $config->getClassName();
            $this->_connectionTypes[$type] = new $typeClass();
        }
        return $this->_connectionTypes[$type];
    }

3.网上查得,这是mysql连接相关。查看 local.xml 文件中mysql的配置内容,是写了 pdo_mysqli ,但查看当前的php模块中,仅有 pdo_mysql
mag-pdo_mysql-1.png

4.将 local.xml 文件中的 pdo_mysqli 替换为 pdo_mysql 后,就正常了
mag-pdo_mysql-2.png

参考:https://stackoverflow.com/questions/13377491/magento-fatal-error-class-name-must-be-a-valid-object-or-a-string

在Windows 2019里安装WSL - Debian

在微软的新版本系统里,可以通过Windows Subsystem Linux跑Debian系统,完成一些日常开发的任务。

过程:

1.winver # 在PowerShell里,执行此命令,确认当前Windows版本支持WSL功能
win2019-wsl-1.png

2.Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux # 在PowerShell里,执行此命令,启用WSL功能,且重启机子
win2019-wsl-2.png

3.Invoke-WebRequest -Uri https://aka.ms/wsl-debian-gnulinux -OutFile wsl-debian-gnulinux.appx -UseBasicParsing # 在PowerShell里,执行此命令,下载 Debian 安装包

4.Rename-Item wsl-debian-gnulinux.appx wsl-debian-gnulinux.zip # 在PowerShell里,执行此命令,重启名安装包文件为zip文件

5.Expand-Archive wsl-debian-gnulinux.zip debian # 在PowerShell里,执行此命令,解压到debian目录
win2019-wsl-3.png

6..\debian.exe # 安装 debian 系统,完成后会提示设置新用户及密码
win2019-wsl-4.png

参考:https://docs.microsoft.com/zh-cn/windows/wsl/install-on-server

Windows添加.NET Framework 3.0 NetFx3 失败 - 状态为:0x800f0950

环境:Windows Server 2019

过程:

1.添加角色和功能时,选中IIS及.NET Framewok 3.5,提示安装失败,错误:0x800f0950
win-0x800f0950-1.png

2.在“事件查看器”中,有“启动程序包 Microsoft .NET Framework 3.0 的更新 NetFx3失败。状态为:0x800f0950”
win-0x800f0950-2.png

3.手动通过Windows Update更新,会自动打上.NET Framework的相关补丁
win-0x800f0950-3.png

4.再次添加角色和功能
win-0x800f0950-4.png

5.成功安装
win-0x800f0950-5.png

6.在IIS管理器中,查看应用程序池中,有相应的.NET版本
win-0x800f0950-6.png

参考:https://answers.microsoft.com/zh-hans/insider/forum/all/win10-dism%E9%94%99%E8%AF%AF-0x800f0950/f665f040-2192-4ffa-93b7-9f270c0881ec?page=2

在FreeBSD 11.2里安装shadowsocks-libev

移动宽带价格挺实惠,但可能是因为多用户使用同一个公网的IPv4地址,且有时IPv4的地址在站点的数据库中会飘移,时不时会被认为账号有操作风险,要求人机验证或手机短验证。所以呢,有时不得不找个代理来浏览网站方便些。

系统:FreeBSD 11.2 64位

过程:

1.pkg install shadowsocks-libev # 安装 shadowsocks-libev
freebsd-shadowsock-libev-1.png

2.vi /usr/local/etc/shadowsocks-libev/config.json # 编辑配置文件,如更改监听的IP地址
freebsd-shadowsock-libev-2.png

3.sysrc shadowsocks_libev_enable="YES" # 启用 shadowsocks_libev 服务

4.service shadowsocks_libev onestart # 启动 shadowsocks_libev 服务
freebsd-shadowsock-libev-3.png

5.在浏览器里测试,正常
freebsd-shadowsock-libev-4.png

参考:https://www.freebsd.org/cgi/ports.cgi?query=shadowsocks&stype=all