2023年6月

都是在新版主机上修改配置文件,老版主机无需操作
新版本ssh客户端连接老版本ssh服务器出现报错提示时,修改/etc/ssh/ssh_config配置文件,在里面添加如下内容

HostKeyAlgorithms +ssh-rsa,ssh-dss
KeyAlgorithms +ssh-rsa,ssh-dss
PubkeyAcceptedKeyTypes +ssh-rsa,ssh-dss

老版本ssh客户端连接新版本ssh服务器出现"no hostkey alg"报错提示时,修改/etc/ssh/sshd_config配置文件,在里面添加如下内容

HostKeyAlgorithms +ssh-rsa,ssh-dss
KeyAlgorithms +ssh-rsa,ssh-dss
PubkeyAcceptedKeyTypes +ssh-rsa,ssh-dss

修改并保存好配置文件后需要重启ssh服务

service sshd restart
# 或者
systemctl restart sshd

完成后即可互相连接

Linux在字符控制台模式下连接无线网络的方法
记录一下防止忘记了
编辑/etc/network/interfaces文件,加入如下内容

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
    wpa-ssid wifiname
    wpa-psk password
    #如果是需要吧下面一行前面的#号删除
    #wpa-scan-ssid 1
#如果使用配置文件就把下面一行前面的#号删除,在上面wpa-ssid和wpa-psk前面加上#号
#wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

如果使用配置文件还需要进行下面的操作

#在命令行输入下面的命令,需要root权限
wpa_supplicant wifiname password > /etc/wpa_supplicant/wpa_supplicant.conf
#如果是隐藏网络需要编辑/etc/wpa_supplicant/wpa_supplicant.conf配置文件添加下面两行
scan_ssid=1
priority=1
#添加好之后就类似下面这样
network={
  ssid="wifiname"
  #psk="password"
  psk=2jh3g42jg34k234k2g34k2g3h4g23g4j2hg34j2g34j2g
  scan_ssid=1
  priority=1
}

保存配置文件后重启网络服务

service networking restart

稍等片刻即可自动连接好无线网络

好久没有学习PHP了,今天继续学习源文件 install.php

 // 源文件 /install.php
1407    // display version
1408    if (install_is_cli()) {
1409        echo $options->generator . "\n";
1410        echo 'PHP ' . PHP_VERSION . "\n";
1411    }
  • 如果是在使用客户端运行网站代码就输出typecho和PHP的版本
 // 源文件 /install.php
1413    // install finished yet
1414    if (
1415        install_check('config')
1416        && install_check('db_structure')
1417        && install_check('db_data')
1418    ) {
1419        // redirect to siteUrl if not cli
1420        if (!install_is_cli()) {
1421            install_redirect($options->siteUrl);
1422        }
1423
1424        exit(1);
1425    }
  • 如果三个install_check()函数的返回值都为真,并且不是在用php客户端运行网站代码就执行install_redirect()函数,不管是不是在用PHP客户端运行网站代码都不会再往下执行后面的代码。
 // 源文件 /install.php
440 /**
441  * check install
442  *
443  * @param string $type
444  * @return bool
445  */
446 function install_check(string $type): bool
447 {
448     switch ($type) {
449         case 'config':
450            return file_exists(__TYPECHO_ROOT_DIR__ . '/config.inc.php');
451         case 'db_structure':
452         case 'db_data':
453             global $installDb;
454 
455             if (empty($installDb)) {
456                 return false;
457             }
458 
459             try {
460                 // check if table exists
461                 $installed = $installDb->fetchRow($installDb->select()->from('table.options')
462                     ->where('user = 0 AND name = ?', 'installed'));
463
464                 if ($type == 'db_data' && empty($installed['value'])) {
465                     return false;
466                 }
467             } catch (\Typecho\Db\Adapter\ConnectionException $e) {
468                 return true;
469             } catch (\Typecho\Db\Adapter\SQLException $e) {
470                 return false;
471             }
472
473             return true;
474         default:
475             return false;
476     }
477 }
  • 由于还未安装完毕case 'config'的返回值为假,case 'db_structure'内无代码,会执行default返回假,case 'db_data':因为$installDb为空返回值为假