分类 电脑 下的文章

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

在 FreeBSD 11.2 里安装使用 nginx + php7.1(php-fpm) + mysql 5.7

过程:

1.pkg install nginx # 安装 nginx-1.14

2.pkg install mysql57-server # 安装 mysql server 5.7

3.pkg install php71 php71-curl php71-gd php71-mbstring php71-mcrypt php71-mysqli php71-openssl php71-pdo_mysql php71-xml # 安装 php7.1 和相关模块

4.vi /usr/local/etc/nginx/nginx.conf # 编辑nginx配置文件,添加站点,如本例添加drs2.anqun.org的https站点

        server {
        listen       443 ssl;
        server_name  drs2.anqun.org;

        ssl_certificate      ssl/drs2.anqun.org.pem;
        ssl_certificate_key  ssl/drs2.anqun.org.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
         ssl_prefer_server_ciphers  on;

         location / {
                 root   /usr/local/www/nginx/drs2.anqun.org;
                 index  index.html index.htm index.php;
                 try_files $uri $uri/ /index.php?$args;
                }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           drs2.anqun.org;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/www/nginx/drs2.anqun.org/$fastcgi_script_name;
            include        fastcgi_params;
        }

        }

freebsd-nginx-php-mysql-1.png

5.sysrc nginx_enable=yes # 允许 nginx 服务

6.sysrc mysql_enable=yes # 允许 mysql 服务

7.sysrc php_fpm_enable=yes # 允许 php-fpm 服务

8.service nginx start # 启动 nginx 服务

9.service mysql-server start # 启动 nginx 服务

10.service php-fpm start # 启动 nginx 服务

11.ALTER USER 'root'@'localhost' IDENTIFIED BY 'niDEpASSWORD' ; # 首次启动mysql5.7后,root的密码会写在/root/.mysql_secret 文件里,需要用 ALTER USER 命令更改密码后使用
freebsd-nginx-php-mysql-2.png

12.phpinfo显示信息
freebsd-nginx-php-mysql-3.png

13.wordpress安装效果
freebsd-nginx-php-mysql-4.png

参考:https://www.digitalocean.com/community/tutorials/how-to-install-an-apache-mysql-and-php-famp-stack-on-freebsd-10-1