一语

活着,永远不是一个人的事

四月末到昌平,回学校走了一遭,也拍了些照片。

早晨下着小雨

早晨下着小雨

德胜门公交站需要绕到后面上车

德胜门公交站需要绕到后面上车

北门口立的新牌子

北门口立的新牌子

图书馆前面这片草坪刚修剪过

图书馆前面这片草坪刚修剪过

阅读全文 »

无人的街道上,路灯笔直排队,岔口栉比相依。

黄月一弯,躲在乌烟瘴气之外,朦朦胧胧。

远处的烟花不时从楼缝间跳出,嫣然一笑,转头隐去,留隆隆的呼喊在林宇间混合、反转。

耳机里送来熟悉的旋律,悠扬又凛冽,随着我的脚步婉转起伏,飘然四散…

Windows 环境,给 XAMPP 升级 PHP 7.4 → 8.0,记录一下要点。

  1. 下载 PHP8.0 版本的 XAMPP,提取其中的 php 文件夹,改名为 php8 放到原 XAMPP 根目录,为了不与原 php 文件夹重名。

  2. 下载对应 8.0 版本的 extensionxampp/php8/ext

  3. 修改 xampp/php8/php.ini 启用需要的 extension

  4. 修改 xampp/php8/php.ini 内文件路径参数,基本都以 \xampp 开头,修改为实际的绝对路径。

  5. 修改 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

  6. 关闭 apache,把 xampp/php 改为 xampp/php7.4,把 xampp/php8 改为 xampp/php

  7. 启动 apache。无法正常启动的话运行 xampp/apache_start.bat,可以看到报错信息。

需求

Ubuntu20.04 服务器在公司内网,不能连接 Internet,需要在内网搭建 apt 源方便服务器管理。

环境

用来搭 apt 源的机器是 Win10,只能通过特定的 http 代理才能连接 Internet。

步骤

在 Win10 内新建 Ubuntu 虚拟机,设置好 Ubuntu 里 apt 的走公司的 http 代理。

阅读全文 »

 

遇到问题:

Laravel (版本 5.5) 部署在内网,服务器 (win10-xmapp-php7.2) 只能通过特定的 http 代理访问外网。

如何让 Laravel 通过代理连接 mailgun 从而发送邮件?

阅读全文 »

在 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}"

于此世荒诞,吾将何如

0%