默认是安装不上的,因为brew 不维护老系统了
链接1:https://github.com/Homebrew/homebrew-core/blob/05fa8165ec18b2fd582598f8006d6bd8df29eebd/Formula/o/[email protected] 源文件
链接2:https://github.com/openssl/openssl/issues/22467 解决办法

Run brew edit openssl@3 or find the file [email protected] and edit it.
Look for the line system "make", "test"
Change it to system "make", "test TESTS='-test-cmp_http'" and save the file
Run brew install --build-from-source --formula /path/to/[email protected]. Make sure you change the path to wherever your file is. In my case it was in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/o/[email protected].

可能不严谨,但是相对通俗的说明了几个事物的关联

美国的三驾马车:科技,军事,美元 牢牢掌控世界!

出现这种状况的前提就是:用科技和军事确保美元的的国际货币地位,必须用美元,然后才可以肆意收割!

下面一段文字是一个高人的非常浅显的描述:

首先要知道一个东西叫金融杠杆,美国的杠杆在10倍左右吧。

举个例子,我有100元借给你,我是不是有100元的资产,你也有了100元的现金,你再借给别人,如此类推,10次以后,市场上> > 只有100元的现金,但是却有1000元的资产,这个就是金融杠杆。

假设利息是1%每年,市场一直看涨,大家都不用还钱,那样市场只需要印10元的现金做利息,就足够维持这1000元的资产了。市> 场上没有钱(流动性),但是大家似乎都有钱(资产),大家一起开心,这个就是金融市场。

现在发生危机了,我怕赔钱,就让你把100元还给我,你没有,就找另一个人要,然后发现大家都没有,因为看起来市场上有1000> 元,实际上只有110元现金,但是我让你立刻还钱,你得还呀,没钱就只能破产了,这时候就是缺少流动性,钱慌。这个就是> 金融危机。

这时候美联储怕美国人破产,就开始印钱了,但是他只印500元,借给我,你,还有你的朋友,前5个是美国人每人借100,这样美> 国人就有钱不着急了,这就是量化宽松。

但是后面那5个外国朋友,有4个是要还100元但手里没有的,还有一个很幸运,手里是真的有那100元的,他们为了还钱就开始抢> 这100元,所以美元就更值钱了,相对的,别的国家的钱就不值钱了。这个就叫做汇率。

因为最后只能有1个人能还上钱,其他的4个就只能变卖地产,黄金,股票等所有的资产来凑钱,所有能换美元的资产就都贬值了。> 这时候就爆发了另一个危机,叫经济危机。

这时候,我和你手上有美联储给的钱,也不急着还钱了,看到那4个卖便宜货的,就开启了买买买的模式,咱们捡了大便宜,那4个> 外国兄弟也有钱还债了。世界回复正常。这个就是并购重组。

危机度过,美国人不但没破产,东西也都是美国人的了。这就是割全世界韭菜。

但是这里有一个问题,毕竟美联储是真金白银的印了500元的,以后美元多了不就贬值了吗?那怎么办?

苦思冥想后,美国想出来一个办法,他把这500元包装一下,说这虽然是现在印的,但不是现在的钱,是未来的钱,这就叫美债,> 和国家信用挂钩,美国不倒,美债有效,抗风险能力比黄金好多了,最重要的是用它可以买美国的飞机大炮,而且收益率也不错> 哟,但是只能用美元才能买到。

然后美国让其他国家花美元买他的国债,这样印出来的500元就变成美国国债,流到了各国作为资产无法进行民间流通,而真正的> 美元又回到了美国。所以美国超发多少钱,就得发多少国债,现在差不多23万亿美元吧。

好了,美元回国了,一把火烧了它,又没有流动性了,也就不会贬值了。
所以美国人说,美元是美国人的钱,但是是别国的麻烦。

一直以来,macos上的PHP开发环境除了常规的虚拟机姿势以外,系统自带的apache+php也是可选项之一

后来系统自带的PHP环境满足不了要求,又懒得倒腾虚拟机,采用了一个第三方一键脚本环境:https://php-osx.liip.ch/

用得挺身心的,一直到系统升级了了mojave的大版本,系统自带的apache版本和https://php-osx.liip.ch/的类库冲突,导致服务不能正常启动,解决版本就是卸载系统自带的apache,采用brew安装,那么既然重新装了,索性连PHP环境也整体更新吧,毕竟现在是7.X版本为主了,5.X都是一些历史项目兼容需要

过程记录如下:

  1. 首先确保系统brew已经安装且 brew update 后正常状态
  2. 卸载老版本的PHP,这一点php-osx比较好,删除/usr/local/php5 所在的软链和原文件夹即可
  3. 停止系统自带apache服务并卸载

    sudo apachectl stop
    sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null

  4. 通过brew安装apache

    brew install httpd

期间配置省略,附带若干常用命令

sudo brew services start httpd

sudo apachectl start
sudo apachectl stop
sudo apachectl -k restart
  1. 安装PHP环境,如果需要PHP5.X则需要额外支持

    brew tap exolnet/homebrew-deprecated
    2020年12月12 更新 ,因为openssl和icu4c的版本问题,上面这个包没有很好解决
    [email protected] 换下面的安装方式
    brew tap shivammathur/php
    brew install shivammathur/php/[email protected]

    安装PHP
    brew install [email protected]
    brew install [email protected]
    brew install [email protected]
    brew install [email protected]

安装顺序执行后的PHP版本是7.3的,如果我们要PHP5.X版本,则执行如下命令

brew unlink [email protected] && brew link --force --overwrite [email protected]
  1. 在/usr/local/etc/httpd/httpd.conf 的如下地方加入以下配置

    LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
    LoadModule php5_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp5.so

    LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so

    LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so

    LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so

重启apache即可生效

最后如果我们要切换PHP版本
可以在/usr/local/bin 里面安装一个sphp可执行shell

$ curl -L https://gist.githubusercontent.com/rhukster/f4c04f1bf59e0b74e335ee5d186a98e2/raw > /usr/local/bin/sphp
$ chmod +x /usr/local/bin/sphp

确保sphp所在的bin目录在$PATH中,最后可以随意的切换了

在命令行中输入 sphp 7.3即可

本文参考翻译自https://getgrav.org/blog/macos-mojave-apache-multiple-php-versions

十年前的某些天,当同学们忙着玩传奇、CS、红警、等游戏的时候。我在91i上面学手写html,做的第一个网页是一个上翻滚动栏,里面是徐志摩的诗:轻轻的我来了云云~

然后在某一堂课上抓破头皮去想我要注册的域名,最终在十年前的今天,我注册了现在的域名很难想象我从正式接触浏览器相关开发到现在已经10年了,那个marquee勉强算是吧。中间被移动互联网转移了两年多注意力,如今依然回到2P的怀抱。

突然间很多想说,也不知道说哪一个好了,仅此回忆一下当初为什么把域名起做tencn.net吧。

当你的程序莫名其妙的空白,好不容易输出错误的时候,显示“Call-time pass-by-reference has been removed”时,这基本可以确定是你辛苦搭建出来的web环境的php版本的问题了。

在php5.4的版本中,有一个:调用时引用传递已被废弃。当我们这样使用函数(或者类)的话,会产生一个error:foo(& $var);实际上,这样用本来就是错的,只是之前的错误级别仅仅是Deprecated而已。而正确的使用方法应该是在函数定义时:

function foo(& $var) {
}

而在调用时直接传参就行了: foo($var);