Windows11更新后闪屏问题的解决方法

今天我更新Windows11系统并重启后,电脑屏幕出现了闪烁问题。

我检查显卡驱动,无论是Nvidia显卡驱动还是Intel显卡驱动都是最新的。那么问题出在哪里?

我猜测是因为我的操作系统是从Windows10升级而来,之前Windows10下某些Intel显卡驱动的隐藏设置(配置)在Windows11下与新版本的显卡驱动不兼容所致。

因此,我使用Display Driver Uninstaller (DDU)彻底卸载Intel显卡驱动后,再重装最新版本的Intel显卡驱动,就解决了电脑屏幕闪烁问题!

注意,安装最新版本的Intel显卡驱动程序时需要以管理员身份运行安装程序。

最新版Intel显卡驱动官网下载地址:

https://www.intel.com/content/www/us/en/download/19344/intel-graphics-windows-dch-drivers.html

最新版DDU官网下载地址:

https://www.wagnardsoft.com/display-driver-uninstaller-ddu-

参考

https://bbs.pcbeta.com/viewthread-1944975-1-1.html

How to Fix Screen Flickering Issue After Windows 11 Update

Today, after updating my Windows 11 system and rebooting, I encountered a screen flickering problem.

I checked both my Nvidia and Intel graphics drivers, and they were up to date. So where was the issue?

I suspected that the problem arose because my system had been upgraded from Windows 10 to Windows 11. Some hidden settings or configurations from the older Intel graphics drivers on Windows 10 might have been incompatible with the newer drivers on Windows 11.

To resolve the issue, I used Display Driver Uninstaller (DDU) to completely remove the Intel graphics driver. Afterward, I reinstalled the latest version of the Intel graphics driver, and the screen flickering problem was fixed!

Note: When installing the latest Intel graphics driver, make sure to run the installer as an administrator.

Download the latest Intel graphics driver here: https://www.intel.com/content/www/us/en/download/19344/intel-graphics-windows-dch-drivers.html

Download the latest DDU here: https://www.wagnardsoft.com/display-driver-uninstaller-ddu-

Reference
https://bbs.pcbeta.com/viewthread-1944975-1-1.html

LayUI列间距注意点

1 列间距是在.layui-col-* 元素上使用padding样式实现的,并且.layui-col-元素最好不要再自定义style,否则会导致样式混乱。参考:
https://blog.csdn.net/qq_40943363/article/details/118052587


2 一行中最左的列不会出现左边距,最右的列不会出现右边距。


3 使用列间距还会导致.layui-col-*元素出现上下padding。例如.layui-col-space20列间距会被浏览器渲染为padding: 10px


4 如果需要的列间距大于30px(一般不常见),请采用列偏移。

VirtualBox Linux虚拟机与Windows宿主机的共享文件夹里面无法创建符号链接的解决方法

我的软件环境:

VirtualBox虚拟机:Ubuntu 22

宿主机:Windows 10

在Ubuntu 22虚拟机中创建符号链接时,可能的报错有以下几种:

第一种,在运行npm install esbuild时报错:

Error: EPERM: operation not permitted, symlink '../esbuild/bin/esbuild' -> '/var/www/reverb.test/node_modules/.bin/esbuild'

第二种,执行PHP代码创建符号链接时报错:

symlink(): Operation not permitted

第三种,运行ln命令时报错:

ln: failed to create symbolic link 'xxx.so.0': Read-only file system

第四种,运行cp命令时报错:

cannot create symbolic link `xxxx':Read-only file system

第五种,运行cp命令时报错:

cannot create symbolic link `xxxx': Protocol error

原因是VirtualBox从安全角度出发,限制了软链接(符号链接)的创建。如果想正常使用符号链接,需要对虚拟机设置 VBoxInternal2/SharedFoldersEnableSymlinksCreate/<share_folder_name> 这个 extradata。这里顺带一提,对于 vagrant,这个选项只要你运行 vagrant up之后这个选项便会自动设置好。可以使用 VboxManage设置这个 extradata ,这个工具在 Windows 下是和 VirtualBox 图形界面在一个相同目录的。以下是详细步骤:

1 关闭 VirtualBox。

2 以管理员身份打开命令行窗口,cd到VirtualBox安装目录(例如cd C:\Programs\Oracle\VirtualBox),执行如下命令:

VBoxManage setextradata YOURVMNAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/YOURSHAREFOLDERNAME 1

其中:

YOURVMNAME填写ubuntu 虚拟机系统的名称

YOURSHAREFOLDERNAME填写共享文件夹的名称,注意这个共享文件夹名称是你在 VirtualBox 中设置共享时对应的“共享文件夹名称”一栏的内容,不是共享文件夹的路径或者文件夹名称。

3 以管理员身份运行VirtualBox

参考

https://blog.csdn.net/tekenuo/article/details/82386552

https://tty.moe/blog/virtualbox-symlink-windows

composer安装Laravel 11报错:laravel/framework[v11.9.0, …, v11.23.3] require fruitcake/php-cors ^1.3 -> found fruitcake/php-cors[dev-feat-setOptions, dev-master, dev-maincomposer…

我在使用composer安装Laravel 11的时候,遇到如下错误:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/framework[v11.9.0, ..., v11.23.3] require fruitcake/php-cors ^1.3 -> found fruitcake/php-cors[dev-feat-setOptions, dev-master, dev-main, dev-test-8.2, v0.1.0, v0.1.1, v0.1.2, v1.0-alpha1, ..., 1.2.x-dev (alias of dev-master)] but it does not match the constraint.
    - Root composer.json requires laravel/framework ^11.9 -> satisfiable by laravel/framework[v11.9.0, ..., v11.23.3].

原因是阿里云composer镜像源中没有fruitcake/php-cors包的最新版。

解决方法是,切换回默认的composer镜像源:

composer config -g --unset repos.packagist

执行composer install就安装成功了,不再报错。

参考

https://github.com/laravel/framework/issues/51201

升级PHP版本导致WordPress无法显示文章,而是显示“有点尴尬诶!该页无法显示。”的解决方法

我的WordPress版本是5.4.15,当我把服务器系统里的PHP 7.2升级到PHP 8.2后,通过浏览器访问WordPress网站,无法显示文章,而是显示“有点尴尬诶!该页无法显示。”这句话。

经测试,PHP可以正常连接到MySQL数据库。

原因应该是WordPress 5.4.15用到的某些PHP函数在PHP 8.2过时了。

升级WordPress到最新版本解决了这个问题。

为什么PHP的Composer包管理使用vendor模式而非全局模式?

vendor模式即在每个项目都创建一个vendor目录,用来存储本项目依赖的第三方模块的包或库文件。

全局模式即在操作系统的某个全局目录(一般是用户家目录里的某个子目录或者操作系统的某个系统目录)里,存储第三方模块的包或库文件,可以被多个项目共用,优点是相对于vendor模式节省存储空间。

都说PHP项目上线速度快,最大原因是PHP项目可以热更新热部署,通过FTP把整个PHP项目的源代码文件上传到服务器就部署好了,都不用重启Web服务器软件的。但是如果使用全局模式就会破坏这种方便的部署方式,因为你把PHP项目的源代码文件上传到服务器后,要么你还要把全局目录上传到服务器,要么你还需要在服务器运行composer命令安装本项目所缺的依赖项。使用vendor模式,就没有这个烦恼了。

Composer包管理器使用vendor模式,而非全局模式,应该就是出于这点考虑。像Go的go get、Java的maven、Node.js的npm、Python的pip使用全局模式,是因为它们无法做到像PHP那样热更新热部署Web项目。

PHP Warning: Module ‘curl‘ already loaded in Unknown on line 0警告的解决方法

我的软件环境是:Ubuntu 22操作系统,使用apt安装的PHP 8.2。

如果在执行PHP相关命令时,看到一条警告消息:

PHP Warning: Module ‘curl‘ already loaded in Unknown on line 0

那是由于curl模块被重复启用。如果在/etc/php/8.2/fpm/php.ini和/etc/php/8.2/fpm/conf.d/20-curl.ini两处配置文件里都启用了curl扩展,就会报这个警告。

解决方法是在/etc/php/8.2/fpm/conf.d/20-curl.ini配置文件中启用curl扩展即可,而在其他配置文件中都不启用curl扩展。

/etc/php/8.2/fpm/conf.d/里的配置文件其实都是/etc/php/8.2/mods-available/里的配置文件的符号链接,这些配置文件中的扩展是被PHP默认启用的。

修改了配置文件记得重启php-fpm服务。最后只要在php -m命令的输出中或者通过浏览器访问phpinfo函数的PHP脚本的输出中看到curl了,就说明已启用curl扩展。

Go安全

本文翻译自《Security》。

此页面为Go开发人员提供一些资源,以提高Go项目的安全性。

(另请参阅:Go开发人员应该知道的Go项目安全最佳实践。)

查找并修复已知的安全漏洞

Go的漏洞检测旨在为开发人员提供低噪声、可靠的工具,以了解可能影响其项目的已知漏洞。有关概述,请从Go漏洞管理体系架构和常见问题页面开始。对于应用方法,请探索以下工具。

使用govulcheck扫描代码以查找漏洞

开发人员可以使用govulcheck工具来确定是否有任何已知的漏洞会影响他们的代码,并根据实际调用的有安全漏洞的函数和方法来确定下一步先做什么。

在编辑器中检测漏洞

VS Code Go扩展可以检查第三方依赖项并发现相关漏洞。

查找你的项目用到的Go模块

Pkg.go.dev是一个用于发现、评估和学习有关go包和模块的更多信息的网站。在pkg.go.dev上发现和评估go包时,如果该版本存在漏洞,你会在页面顶部看到一条横幅。此外,你可以在go包的版本历史页面上看到影响某个版本的它的安全漏洞有哪些。

浏览安全漏洞数据库

Go漏洞数据库直接从Go包维护者以及MITRE和GitHub等外部来源收集数据。报告由Go Security团队策划。

报告Go项目中的安全漏洞

有关如何报告Go项目中的安全漏洞的说明,请参阅Go安全策略。该文章还详细介绍了Go安全团队跟踪问题并向公众披露的过程。有关过去的修复安全漏洞的记录的详细信息,请参阅发布历史记录。根据发布策略,我们在Go包的两个最新主版本上进行安全修复。

使用模糊测试发现意外输入

Go原生提供的模糊测试是一种自动测试,它不断地往程序的入数据来发现Bug。从Go 1.18开始,标准工具链加入模糊测试工具。也可以使用OSS fuzz,它支持原生的Go模糊测试。

使用Go的加密库提供的安全服务

Go的加密库旨在帮助开发人员构建安全的应用程序。请参阅有关加密的Go包golang.org/x/crypto/的文档