使用 MacPorts 替代 brew / 解决低版本 macOS 系统使用 brew 安装软件包慢的问题 作者: Shine 时间: 2025-05-13 分类: macOS 评论 ## 背景 根据官方的介绍,brew 仅适合 macOS 13 及更高的版本上使用了:https://docs.brew.sh/Installation#macos-requirements 对于我还在用黑苹果 macOS Big Sur 确实不友好(公司电脑 3、4 年都没更新硬件了 😓)  ## brew 替代品 - MacPorts 通过在网络搜索,很多人推荐使用 [MacPorts](https://macports.org/ "MacPorts") 替代 brew。 安装方法也很简单,下载一个安装包就可以用了,具体安装教程看这个:https://www.macports.org/install.php 以我的系统 Big Sur 为例,我就下载对应的版本安装就好了  ### 使用方法 使用方法也很简单,访问这个网站 https://ports.macports.org/ 搜索你要的软件,比如 PHP84  找到对应的版本,点击进入详情,然后就会提示你用什么命令安装,点击 Copy 返回到终端执行即可: | - | - | | ------------ | ------------ | |  |  | | |  | 网络环境好的情况下,安装速度挺快的
macOS PHP 使用 Pecl 安装 Swoole 扩展并启用 openssl 作者: Shine 时间: 2023-08-26 分类: PHP 评论 ## 安装 PHP 可以参照此教程安装:https://stitcher.io/blog/php-82-upgrade-mac#upgrade-with-shivammathur/homebrew-php 为了节约时间,我摘抄部分 ```shell brew tap shivammathur/php brew install shivammathur/php/php@8.2 # 切换至 PHP 8.2 brew link --overwrite --force php@8.2 ``` ## 安装 openssl & 获取安装路径 如果你没有安装,可以使用此命令进行安装 ```shell brew install openssl ```  比如我的就是 `/usr/local/Cellar/openssl@3/3.1.2` 这个路径,请记住这个路径 ## 安装 swoole 扩展 & 启用 openssl 支持 > 确保你的网络环境正常 执行以下命令 ```shell sudo pecl install swoole ``` 当询问你是否启用 openssl 是,你就输入 `yes --with-openssl-dir=/usr/local/Cellar/openssl@3/3.1.2` > 其中 `/usr/local/Cellar/openssl@3/3.1.2` 是 openssl 的安装路径  其他的按照自己需求填入 `yes` OR `no` 就好了,不过需要注意可能需要指定相关库的路径,详情请查看[官方文档 -> 编译选项 -> 通用参数](https://wiki.swoole.com/#/environment?id=%e9%80%9a%e7%94%a8%e5%8f%82%e6%95%b0 "官方文档") ## 安装完成  检查是否安装成功,执行命令 `php --ri swoole`,如果有内容输出(如图)表示安装成功 
macOS 使用命令(networksetup)设置 PAC 代理 作者: Shine 时间: 2022-10-14 分类: macOS 评论 因为手动在网络设置里,设置的 PAC  可能会因为其它软件给关掉,如 ClashX 设置为系统代理替换掉  然后自己手动替换又比较麻烦,所以想着用命令去替换一下 ## 解决方案 所以在网上找到了一篇问答 [https://apple.stackexchange.com/a/166443](https://apple.stackexchange.com/a/166443 "https://apple.stackexchange.com/a/166443"),使用 `networksetup -setautoproxyurl` 命令即可 ### networksetup -setautoproxyurl 语法如下 ```shell networksetup -setautoproxyurl ``` #### 问题 1:怎么拿到 `` ? 可以通过 `networksetup -listallnetworkservices` 命令拿到(只是猜测,因为我的是黑苹果,并且是有以太网网卡)  #### 示例 1 给以太网网卡设置 PAC 地址 ```shell networksetup -setautoproxyurl "Ethernet" "http://192.168.30.87/autoproxy.pac" ``` 然后检查下设置状态 : ```shell networksetup -getautoproxyurl "Ethernet" ``` 
解决 VirtualBox Error creating machine: Error in driver during machine creation: Error setting up host only network on machine start 作者: Shine 时间: 2021-12-14 分类: VirtualBox 评论 执行命令 `docker-machine create --driver virtualbox master` 创建虚拟网卡报错: ```log Running pre-create checks... Creating machine... (master) Copying /Users/chuwen/.docker/machine/cache/boot2docker.iso to /Users/chuwen/.docker/machine/machines/master/boot2docker.iso... (master) Creating VirtualBox VM... (master) Creating SSH key... (master) Starting the VM... (master) Check network to re-create if needed... (master) Found a new host-only adapter: "vboxnet0" Error creating machine: Error in driver during machine creation: Error setting up host only network on machine start: /usr/local/bin/VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.99.1 --netmask 255.255.255.0 failed: VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available) VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp ``` 搜到的相关链接: - https://www.bookstack.cn/read/Minikube-1.24-en/ad8abb690946c9ec.md 原因:**在 Linux、Mac OS X 和带有 VirtualBox >= 6.1.28 的 Oracle Solaris 上,默认情况下,仅主机网络只允许 192.68.56.0/21 范围内的 IP 地址。** 然而 docker-machine 指定创建(VBoxManage hostonlyif ipconfig vboxnet0 --ip192.168.99.1 --netmask 255.255.255.0)`192.168.99.1/24` 的网段,这就导致创建失败 ## 解决办法 1.VirtualBox 降级到 `6.1.28` 之前的版本,可以从这里下载:https://www.virtualbox.org/wiki/Download_Old_Builds_6_1 我下载的是 `6.1.26` (注意我下载的是 macOS X 版本):https://download.virtualbox.org/virtualbox/6.1.26/VirtualBox-6.1.26-145957-OSX.dmg 成功运行了 2.执行以下命令: > **我自己测试是失败的** ```shell sudo mkdir -p /etc/vbox sudo vim /etc/vbox/networks.conf ``` 内容填写 `* 10.0.0.0/8` 然后保存即可 --- #### 你在 Big Sur 安装,可能会遇到的: ``` Kernel driver not installed (rc=-1908) Make sure the kernel module has been loaded successfully. where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT. ``` 解决办法:https://apple.stackexchange.com/questions/410529/virtualbox-does-not-work-after-upgrading-to-big-sur 简要概述: - 重启到恢复模式 -> 终端 -> 运行命令 `spctl kext-consent add VB5E2TV963` - 最后重启进系统即可
【并不难】macOS 下编译安装 Swoole 扩展 作者: Shine 时间: 2021-01-09 分类: PHP 评论 **目录** [TOC] # macOS 下安装 Swoole 扩展 > 我以为会很复杂,但发现其实也并不难 ## 安装前准备 请注意 macOS 是自带了 php 7.1 的,如果你卸载了可以使用 `brew` 等方法安装,这里不做过多赘述 ## 下载 Swoole 源码 Swoole 的 GitHub 仓库地址是:https://github.com/swoole/swoole-src 源码发行版下载地址:https://github.com/swoole/swoole-src/releases 我们这里以当前最新版本**v4.6.0**为例 ```shell curl https://github.com/swoole/swoole-src/archive/v4.6.0.zip -O swoole-src-4.6.0.zip ``` ## 解压 Swoole 源码压缩包 ```shell unzip swoole-src-4.6.0.zip ``` ## 切换到 swoole-v4.6.0 目录 ```shell cd swoole-src-4.6.0 ``` ## 然后进行编译和安装 > 以下命令请一行一行执行,以 `#` 开头的是注释 ```shell phpize ./configure # 为了提升编译效率,我们可以使用多核编译 # 也就是你有多少核心就 -j核心数 # 我的 CPU 有 8 核心,那么使用 -j8 参数 make -j8 # 如果你不懂你就使用这个命令 make sudo make install ``` ## 不出意外的话,执行到最后一条命令并完成后,将出现以下类似的日志 ```log chuwen@WenzhoudeMacBook-Pro swoole-src-4.6.0 % sudo make install Password: Installing shared extensions: /usr/local/Cellar/php/8.0.0/pecl/20200930/ Installing header files: /usr/local/Cellar/php/8.0.0/include/php/ ``` ## 修改 php.ini 文件 在文件末尾追加内容 `extension=swoole.so` 即可 > **[推荐] 你可以使用 `php --ini` 命令查询 `php.ini` 所在位置** > > 一般 `php.ini` 文件在 `/usr/local/etc/php/PHP的版本/php.ini` > 比如我的 PHP 版本是 **8.0**,那么是在 `/usr/local/etc/php/8.0/php.ini` > 或者也可以使用 `find / -name php.ini` 查找 `php.ini` 所在路径 **编辑文件你可以按照你习惯的方式编辑,或者像我这样使用 `vim` 命令编辑** ```shell vim /usr/local/etc/php/8.0/php.ini # 然后按 `Shift + G`,其实就是输入 G # 即可跳转到文件最后一行 # 然后你 i 键进行编辑文件,然后你另起一行 # 写上这一行内容 extension=swoole.so # 然后按 ESC 键,输入 :wq # 按回车保存并退出编辑 ``` ## 验证是否安装成功 执行以下命令,如果出现 **swoole** 字样,代表安装 Swoole 扩展成功了 ```shell php -m | grep swoole ``` 这是我的执行结果,是安装成功了 ```log chuwen@WenzhoudeMacBook-Pro swoole-src-4.6.0 % php -m | grep swoole swoole ```