昌平
四月末到昌平,回学校走了一遭,也拍了些照片。
早晨下着小雨
德胜门公交站需要绕到后面上车
北门口立的新牌子
图书馆前面这片草坪刚修剪过
正月初五
无人的街道上,路灯笔直排队,岔口栉比相依。
黄月一弯,躲在乌烟瘴气之外,朦朦胧胧。
远处的烟花不时从楼缝间跳出,嫣然一笑,转头隐去,留隆隆的呼喊在林宇间混合、反转。
耳机里送来熟悉的旋律,悠扬又凛冽,随着我的脚步婉转起伏,飘然四散…
XAMPP 升级 PHP
Windows 环境,给 XAMPP 升级 PHP 7.4 → 8.0,记录一下要点。
下载 PHP8.0 版本的 XAMPP,提取其中的
php
文件夹,改名为php8
放到原 XAMPP 根目录,为了不与原php
文件夹重名。下载对应 8.0 版本的
extension
到xampp/php8/ext
。修改
xampp/php8/php.ini
启用需要的extension
。修改
xampp/php8/php.ini
内文件路径参数,基本都以\xampp
开头,修改为实际的绝对路径。修改
xampp/apache/conf/extra/httpd-xampp.conf
。1
2
3
4
5
6
7
8# LoadFile "D:/xampp/php/php7ts.dll"
# LoadFile "D:/xampp/php/libpq.dll"
# LoadFile "D:/xampp/php/libsqlite3.dll"
# LoadModule php7_module "D:/xampp/php/php7apache2_4.dll"
LoadFile "D:/xampp/php/php8ts.dll"
LoadFile "D:/xampp/php/libpq.dll"
LoadFile "D:/xampp/php/libsqlite3.dll"
LoadModule php_module "D:/xampp/php/php8apache2_4.dll"并且把其余所有
php7_module
改为php_module
。关闭 apache,把
xampp/php
改为xampp/php7.4
,把xampp/php8
改为xampp/php
。启动 apache。无法正常启动的话运行
xampp/apache_start.bat
,可以看到报错信息。
docker容器内设置开机启动程序
在 docker 里用 PHP + Apache 的环境做 web 服务器,想在容器启动时自动运行一个其它的程序(已手动安装),从网上搜索,尝试了好久,终于找到了可以接受的方法,在此记录。
镜像用的 php:7.2-apache,里面操作系统是 Debian。开始搜索的方向一直是如何给 Debian 设置开机启动,方向偏了。
Debian 旧版本:在 /etc/rc.local
文件中 exit 0
之前的位置添加自己需要的命令。
Debian 新版本:在 /etc/init.d/
下新建符合格式要求的脚本文件,然后用 update-rc.d
命令设置脚本运行的优先级。
这两种方法我都遇到了各种问题。
第一种方法需要先添加 rc.local 服务,这步没问题,但是之后需要用 systemctl 启用并启动这个服务。在容器中用 systemctl 的话需要在容器启动时添加额外的参数,因为我用的 docker composer,感觉很麻烦,放弃了。
第二种方法按搜到的各种步骤做完之后,自定义的脚本没有被添加到各个 /etc/rcX.d/
目录下,可能因为没使用 systemctl 命令,也可能因为这个容器修改了操作系统的配置,进行了限制(修改 /usr/sbin/policy-rc.d
的返回值不管用)。后来没再细究。
之后又尝试在 docker-compose.yml
中用 CMD
命令覆盖容器默认的启动命令,可能是命令写的不对,导致容器启动不了了。
这时,想到了现在我用的方法。
把自定义的启动命令写到容器自带的启动文件里。 php:7.2-apache 这个镜像是 /usr/local/bin/docker-php-entrypoint
用360安全卫士替换360天擎
win10系统装上360天擎之后卡的一比(不确定是否为个例),而且这玩意没法正常的退出或卸载。于是乎找了宛转的方法把360天擎卸载了。
如此一直正常用了挺长时间,最近突然出问题了。网络策略会检测电脑上是否有360的主动防御,没有的话就断网。
怎么办?
其实答案是呼之欲出的。给电脑一个容易掌控的360主动防御。
安装360安全卫士。关掉开机启动,并按照自己的意愿进行其它设置,最后退出360安全卫士。主动防御进程会一直在后台运行的。
其实还有其它更彻底的方法,例如安装虚拟机,让虚拟机满足网络策略并接受检测,物理主机通过虚拟机来连网。有兴趣的朋友可以研究一下。
鉴于这种方法过于生猛,建议慎用。
安装 DockerToolbox 遇到 VT-X/AMD-v not enabled
网上搜了一下,遇到这个问题的貌似都是用的 AMD 的 CPU
若确实已经启用 CPU 虚拟化,仍有此问题,解决方案:
添加如下参数 (不检查虚拟化是否已启用)
1 | --virtualbox-no-vtx-check |
①手动执行简单命令
1 | docker-machine create default --virtualbox-no-vtx-check |
或者
②修改 DockerToolbox 自带的启动脚本
修改 start.sh (在 DockerToolbox 的安装目录下)
找到这行
1 | "${DOCKER_MACHINE}" create -d virtualbox $PROXY_ENV "${VM}" |
改为
1 | "${DOCKER_MACHINE}" create -d virtualbox $PROXY_ENV --virtualbox-no-vtx-check "${VM}" |
方向
于此世荒诞,吾将何如