Guo Qiang

一些疑难问题

Frequently Asked Questions
image
当遇到困难时,一定要勇敢的去面对

我们总是被各种各样的问题困扰,有时为了解决这一个问题,可能需要话费几小时甚至几天的时间,有的问题确实复杂,而有的问题真得好简单,只是我们当时没有找对方向。

Linux系统修改设置系统时区

服务器的系统时区非常重要,尤其在使用 crontab 的时候,几次都因为时区问题,导致任务执行出现偏差。

一、Debian/Ubuntu 设置系统时区

在 Debian 或者 Ubuntu 系统上设置系统时区很简单,输入下面命令行:


# dpkg-reconfigure tzdata


回车之后根据提示选择时区即可,比如依次选择 Asia 和 Shanghai,说明时区已经修改完成了。

二、CentOS 设置系统时区

在 CentOS 上面,修改时区稍微复杂一些,不过也不难。

  • 查看所有可选系统时区


# timedatectl list-timezones


使用向上、向下、向上翻页和向下翻页键导航到正确的时区。 记住它,写下来或将其复制为鼠标选择。 然后按 q 退出列表。

  • 设置时区(比如将 America/New_York 设置为正确的时区)


# timedatectl set-timezone ‘America/New_York’


至此也就修改成功了。

PHP返回上一页总提示需要重新提交表单

PHP开发的网页,在使用中发现点击浏览器返回上一页时,总是提示“确认重新提交表单“的一个错误页面,在 Safari 浏览器中会弹出一个确认刷新的窗口,而在谷歌浏览器就会出现前面提到的那个错误页面,其他的浏览器没测试过,起初并没在意这个问题,后来随着网站使用越来越觉得这样不方便,经查询,找到两个解决方案:

  • 一个是将表格的传输方式由 POST 改为 GET,这需要稍微修改下代码,虽然不麻烦,但我不喜欢这种方式

  • 另一个就是需要修改服务器 PHP 配置文件 php.ini,这是个一劳永逸的方法,我个人比较喜欢,缺点暂时还没发现,遇到时再说吧,办法总比问题多。


;session.cache_limiter = nocache
session.cache_limiter = none


vim 记住上次编辑和浏览的位置

在 Debian 系统中使用 vim 编辑文件后再次打开又回到第一行,这样非常不方便,编辑 /etc/vim/vimrc 中,加入以下语句,就可以在打开文件后回到关闭文件前编辑和浏览的位置了


" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif


Python 开了代理后执行报错

Windows 环境下,开了 vpn 代理后,不论执行 py 代码还是 pip 命令,只要跟网络有关的都会报错:


WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)'))': /simple/urllib3/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)'))': /simple/urllib3/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)'))': /simple/urllib3/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)'))': /simple/urllib3/


解决办法就是安装版本号:1.25.11 的 urllib3


1. 关掉 vpn
2. pip install urllib3==1.25.11
3. 打开 vpn


Kali 更新源显示 Release 文件已经过期的解决办法

刚才在使用命令 apt update 更新 Kali 的时候,提示了如下错误信息:


# apt update

获取:1 http://mirrors.ustc.edu.cn/kali kali-rolling InRelease [30.5 kb]
正在读取软件包列表 ... 完成
E:http://mirrors.ustc.edu.cn/kali/dists/kali-rolling/InRelease 的 Release 文件已经过期(已经过期了 2天 3小时 45分 48秒)。该仓库的更新将不会应用。


起初以为是源的问题,换了几个其他的源,还是存在同样的错误,最后才知道居然是虚拟机系统时间与宿主机时间不一致造成的,只要将时间同步一下就可以了:


# service ntp restart


FreeBSD 如何挂载 exFat 分区

前不久入手了一块移动硬盘,考虑到可能会在 windows / Mac / FreeBSD 之间传输,exFat 分区是个不错的选择,windows 和 Mac 都自动识别 exFat,只有 FreeBSD 是需要安装 fusefs-exfat 才能识别


pkg install fusefs-exfat


然后,在 /etc/rc.conf 和 /boot/loader.conf 中各添加一行配置:


# 编辑文件 /etc/rc.conf,添加如下行
fusefs_enable="YES"

# 编辑文件 /boot/loader.conf,添加如下行
fusefs_load="YES"


这些都准备好后,重启系统后就可以正常挂载了:


mount.exfat /dev/da0s1 /mnt