作者: Jefsky

  • 解决微信公众号文章图片防盗链

    n

    通常从微信公账号文章中直接复制过来发布,里面的图片基本都会变成这样,文章的图片无法显示。

    nnnn

    废话不多说了,直接干就完了!

    nnnn

    首先在文章模版头部加入

    nnnn
    <meta name="referrer" content="never">n
    nnnn

    然后用动态链接来解决:

    nnnn
    <script>nn    (".class img").each(function () {nn        var img =(this);nn        var img_src = img.attr("src");nn        img.attr('src',img_src+Math.random());nn    });nn</script>n
    nnnn

    相信对于其他的防盗链也可能适用

    n
  • uni-app 开发 html5执行没问题,微信小程序报错

    n

    uni-app 开发 html5执行没问题,微信小程序报错(jsEnginScriptError Component)

    nnnn

    大概意思是没有找到这个组件吧。检查了很久,源码中组件的路径是正确的,html编译也没问题,可以正常运行。

    nnnn

    既然是小程序报错,那就从小程序的组件入手吧。

    nnnn

    小程序的组件引用路径也是没问题的,相对源码目录或者小程序目录都是没问题。顺着这个思路,我去看组件目录。

    nnnn

    对比了一下,发现少了viewDynamic.json文件,这个文件相当于对组件的启用配置吧。因为文件的内容是

    nnnn

    为什么会没有生成呢?顺着这个思路,我去查看了组件的源文件。

    nnnn

    发现原来源文件的结构不完整,确实了结构,立马加上去编译。

    nnnn

    viewDynamic.json文件编译出来了,也没有报错,正常运行了!

    n
  • SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column

    n

    错误信息:

    nnnn
    SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column cms_edit_log.real_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_byn
    nnnn

    错误解决:

    nnnn

    修改/etc/my.cnf在[mysqld]下面添加如下列:

    nnnn
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESn
    n
  • PHP错误:SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

    n

    使用PHP连接MySQL 8的时候,可能会发生如标题所示的错误:

    nnnn
    SQLSTATE[HY000] [2054] The server requested authentication method unknown to the clientn
    nnnn

    发生这种错误,是由于MySQL 8默认使用了新的密码验证插件:caching_sha2_password,而之前的PHP版本中所带的mysqlnd无法支持这种验证。解决这个问题,有两种办法。

    nnnn

    一种办法是升级PHP支持MySQL 8的新验证插件。

    nnnn

    PHP 7.2.8和PHP 7.1.20已经可以支持caching_sha2_password,直接连接MySQL 8。

    nnnn

    截止PHP 7.0.31和PHP 5.6.37还无法支持caching_sha2_password,不知道后续版本是否会做出支持。

    nnnn

    可以通过phpinfo()函数了解当前安装的PHP是否支持caching_sha2_password:

    nnnn

    如果不能升级PHP,可以在MySQL 8中创建(或修改)使用caching_sha2_password插件的账户,使之使用mysql_native_password,这样先前版本的PHP就可以连接使用了。

    n
  • Typecho服务器出现”Database Server Error”错误

    n

    导入数据库、网站文件以及修改数据库链接,检测到解析正常之后打开网站意外发生了,出现”Database Server Error”错误。可以肯定的是数据库和文件确实没有问题。可能是数据库版本或者是PHP版本问题导致的。

    nnnn

    搜索到相关文章,提到Typecho不支持PHP7.0,需要将数据库引擎修改成Pdo_Mysql。

    nnnn
    /** 定义数据库参数 */ndb = new Typecho_Db('Pdo_Mysql', '*********');ndb->addServer(array (n  'host' => '*******',n  'user' => '*******',n  'password' => '*********',n  'charset' => 'utf8',n  'port' => '3306',n  'database' => '**********',n  'engine' => 'MyISAM',n), Typecho_Db::READ | Typecho_Db::WRITE);nTypecho_Db::set($db);n
    nnnn

    替换后就可以解决问题。不过,这里又出现故障了,在登录后台的时候有出现”Access denied. “问题。我们需要配置文件,修改php.ini文件。

    nnnn

    cgi.fix_pathinfo = 0 修改成 cgi.fix_pathinfo = 1

    nnnn

    替换之后,在执行重启PHP。

    nnnn

    service php-fpm restart

    n
  • 解决pjax加载页面导致js插件失效

    n

    因为pjax只在第一次加载的时候把js都加载,所以之后页面载入的时候如果需要初始化插件是不可能的,那应该怎么办呢?

    nnnn

    把插件的js引入放在pjax加载完成的时候就好了,如本站例子

    nnnn
    <script>n    // pjaxn    $(document).pjax('a[href^="xxx"]:not(a[target="_blank"], a[no-pjax])', {n        container: '#kratos-blog-post',    n        fragment: '#kratos-blog-post',    n        timeout: 8000    n    }).on('pjax:send',    n        function() {    n            NProgress.start();//加载动画效果开始    n    }).on('pjax:complete',    n    function() {    n        <script type='text/javascript' src='xxxxxxx'></script>  //载入插件js    n        NProgress.done();//加载动画效果结束    n    });    n</script>
    n
  • 新配置好的lamp访问phpmyadmin出错

    n

    新配置好的lamp访问phpmyadmin出错,

    nnnn
    phpMyAdmin - ErrornThe mbstring extension is missing. Please check your PHP configuration.n
    nnnn

    1、打开php的配置文件php.ini;
    2、查找; extension_dir = "ext",去掉前面的分号;
    3、重启Apache /etc/init.d/apache2 restart

    n
  • windows 开启卓越性能

    n

    在powershell中执行
    powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61

    n
  • Apache 开启伪静态模块

    n

    在 Apache 配置中启用 Rewrite,打开配置文件 \Apache24\conf\httpd.conf

    nnnn

    LoadModule rewrite_module modules/mod_rewrite.so 去掉句首的“#”

    nnnn

    如果没有就粘贴过去

    nnnn

    启用 .htaccess

    nnnn

    针对启用了虚拟机的,在系统配置项中找到 Apache 的配置文件 \Apache24\conf\extra\httpd-vhosts.conf

    nnnn
    <VirtualHost *:80>nn    ServerAdmin webmaster@dummy-host2.example.comnn    ServerName www.example.comnn    DocumentRoot "{SRVROOT}/htdocs"nn    ErrorLog "logs/www.example.com-error.log"nn    CustomLog "logs/www.example.com-access.log" commonnn    <Directory{SRVROOT}/htdocs >nn         #AllowOverride Nonenn        AllowOverride Allnn        Require all grantednn    </Directory>nn</VirtualHost>n
    nnnn

    没有启用虚拟机的,在系统配置项中找到 Apache 的配置文件 \Apache24\conf\httpd.conf

    nnnn

    将 AllowOverride None 修改为: AllowOverride All(对于配置文件,建议在修改前做下备份)

    n
  • Ubuntu下启动/重启/停止apache服务器

    n

    Start Apache 2 Server /启动apache服务

    nnnn

    $ sudo /etc/init.d/apache2 start

    nnnn

    Restart Apache 2 Server /重启apache服务

    nnnn

    $ sudo /etc/init.d/apache2 restart

    nnnn

    Stop Apache 2 Server /停止apache服务

    nnnn

    $ sudo /etc/init.d/apache2 stop

    n