2019年1月

Windows 10 家庭版 添加 Hyper-V 虚拟机

Windows10家庭版 本身不带 Hyper-V 虚拟机,而专业版或者Server版以上系统带有Hyper-V虚拟机,控制面板-程序和功能 -> 启用或关闭Windows功能 勾选 Hyper-V 即可。

家庭版安装 Hyper-V 一点都不复杂,仅需一个脚本即可

一、先查看电脑配置是否满足要求。

  1. CPU 支持数据执行保护(DEP)。
  2. CPU 支持硬件虚拟化技术。
  3. CPU 64位处理器。
  4. 内存最低限度为 2GB。

- 阅读剩余部分 -

PHP 判断 Email 在 Gravatar 有没有自定义头像

<?php
function check_have_avatar($email){
    $md5 = md5(strtolower(trim($email)));
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://www.gravatar.com/avatar/{$md5}");
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    curl_close($ch);

    if(md5($result) === 'd5fe5cbcc31cff5f8ac010db72eb000c'){
        return false;
    }

    return $result;
}

if(!check_have_avatar('ne@nowtime.cc')){
    echo '没有自定义头像';
}else{
    echo '有自定义头像';
}

ThinkPHP 5.1 使用 Md\MDAvatars 输出无法显示图片 的 解决办法

代码如下:

<?php
/**
 * Created by PhpStorm.
 * Date: 2019/1/20
 * Time: 9:53
 */

namespace app\api\controller;

use Md\MDAvatars;

class Avatars
{
    public function index()
    {
        $Avatar = new MDAvatars('X', 512);
        $Avatar->Output2Browser();
    }
}

输出结果

Snipaste_2019-01-20_10-08-47.png

解决办法

$Avatar->Output2Browser(); 上一行加一句 ob_end_clean(); 即可解决

<?php
/**
 * Created by PhpStorm.
 * Date: 2019/1/20
 * Time: 9:53
 */

namespace app\api\controller;

use Md\MDAvatars;

class Avatars
{
    public function index()
    {
        $Avatar = new MDAvatars('X', 512);
        ob_end_clean();
        $Avatar->Output2Browser();
    }
}

Snipaste_2019-01-20_10-12-15.png

Composer 常见问题

原文链接:Composer常见问题
安装了Composer后,运行 composer --version,查看Composer的版本号。如果出现下面的提示,那么软件安装成功。

Composer version 1.2.0 2016-07-19 01:28:52

若想给某个项目添加类似monolog的第三方库,则按下面的步骤操作:

新建 composer.json 文件,添加内容:

 {
       "require": {
         "monolog/monolog": "1.20.0"
       },
       "repositories": {
         "packagist": {
           "type": "composer",
           "url": "https://packagist.phpcomposer.com"    // Mirror site in China.
         }
       }
 }

以命令行方式打开项目的根目录,输入命令:composer install

正常情况下,一切顺利,执行完上述命令就能够成功导入 monolog 库到项目中。但是,现实与想象总是有段距离,上面只是走完了“长征”路程的一半,还有“雪山”要翻、“草地”要过呢!

执行完命令:composer install 后,并不会像期待那样地导入依赖,而是抛出异常。

The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl exension, you can disable this error, at your own risk, by setting the ‘disable-tls’ option to true.

这段异常日志的大致意思是,Composer 采用 SSL 连接,需要外挂 OpenSSL 插件。

要消除这个异常,有两种解决方式,一是放弃SSL连接、直接“裸奔”;二是启用 OpenSSL。

取消SSL连接的命令是 composer config -g -- disable-tls true。然而并没有什么卵用,试过之后,又抛出了新的异常。

剩下来的方案就是尝试启用 OpenSSL。安装了PHP后,安装目录(类似C:php-5.6.24)中包含两个文件,一个是php.ini-development,另一个是php.ini-production,选择将其中任意的一个文件重命名为 php.ini,用作PHP的默认配置文件。通过修改配置文件来启用OpenSSL插件。

编辑php.ini文件,首先,定位到:

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
extension_dir = "./"
; On windows:
extension_dir = "ext"

删除 extension_dir = "./"extension_dir = "ext" 前面的分号,取消注释这两行代码,配置 PHP 插件目录为./ext。

然后,定位到:

...
;extension=php_mysqli.dll
;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
...

删除 extension=php_openssl.dll 前面的分号,取消注释,从而启用 OpenSSL 插件。

注意:因为 SSL 连接需要认证,所以继续下面的步骤之前,需要准备好CA证书(建议把证书保存到 C:\php-5.6.24\verify 目录中),可以从 https://curl.haxx.se/docs/caextract.html 处下载。

接下来,定位到

;openssl.cafile= 

和上面一样,删去分号,取消注释,设置CA证书为 openssl.cafile= C:\php-5.6.24\verify\cacert.pem

最后, 重新在命令行窗口中打开项目的根目录,执行命令:composer install,等待几分钟后,就可以成功添加 monolog 依赖。

(2018年8月)中国主要骨干网络国际出口带宽数 | 第42次《中国互联网络发展状况统计报告》

骨干网

定义:

Internet backbone:Internet 骨干网
几台计算机连接起来,互相可以看到其他人的文件,这叫局域网,整个城市的计算机都连接起来,就是城域网,把城市之间连接起来的网就叫骨干网。这些骨干网是国家批准的可以直接和国外连接的互联网。其他有接入功能的ISP(互联网服务提供商)想连到国外都得通过这些骨干网。

中国主要骨干网络国际出口带宽数

参考数据:第42次《中国互联网络发展状况统计报告》 2018/08/20 17:24
数据来源:中国互联网络信息中心
国际出口带宽数(Mbps)
中国电信4,422,215
中国联通2,274,207
中国移动2,007,000
中国教育和科研计算机网(CERNET)61,440
中国科技网(CSTNET)61,440
合计8,826,302

主要骨干网络国际出口带宽数.png