昌平
四月末到昌平,回学校走了一遭,也拍了些照片。
早晨下着小雨
德胜门公交站需要绕到后面上车
北门口立的新牌子
图书馆前面这片草坪刚修剪过
四月末到昌平,回学校走了一遭,也拍了些照片。
无人的街道上,路灯笔直排队,岔口栉比相依。
黄月一弯,躲在乌烟瘴气之外,朦朦胧胧。
远处的烟花不时从楼缝间跳出,嫣然一笑,转头隐去,留隆隆的呼喊在林宇间混合、反转。
耳机里送来熟悉的旋律,悠扬又凛冽,随着我的脚步婉转起伏,飘然四散…
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 | # LoadFile "D:/xampp/php/php7ts.dll" |
并且把其余所有 php7_module
改为 php_module
。
关闭 apache,把 xampp/php
改为 xampp/php7.4
,把 xampp/php8
改为 xampp/php
。
启动 apache。无法正常启动的话运行 xampp/apache_start.bat
,可以看到报错信息。
在 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
win10系统装上360天擎之后卡的一比(不确定是否为个例),而且这玩意没法正常的退出或卸载。于是乎找了宛转的方法把360天擎卸载了。
如此一直正常用了挺长时间,最近突然出问题了。网络策略会检测电脑上是否有360的主动防御,没有的话就断网。
怎么办?
其实答案是呼之欲出的。给电脑一个容易掌控的360主动防御。
安装360安全卫士。关掉开机启动,并按照自己的意愿进行其它设置,最后退出360安全卫士。主动防御进程会一直在后台运行的。
其实还有其它更彻底的方法,例如安装虚拟机,让虚拟机满足网络策略并接受检测,物理主机通过虚拟机来连网。有兴趣的朋友可以研究一下。
鉴于这种方法过于生猛,建议慎用。
网上搜了一下,遇到这个问题的貌似都是用的 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}" |