MacOS全栈开发环境搭建

标签: Macos 分类: 操作系统 创建时间:2021-04-24 02:48:28 更新时间:2025-09-26 04:44:39

1.Nginx

使用brew安装nginx的时候出现的问题: “Your CLT does not support macOS 11.2”

【解决方法】

1
2
3
4
5
6
7
8
## 更新brew,这一步操作必须做,否则会出现CLT问题,即便重新安装了xcode-select之后,还是出现了这个问题。
brew update
## 安装nginx
brew intall nginx

## 解决方法安装xcode-select,结果不起作用,还是出现了这个问题,解决方案就是在安装nginx之前要执行update操作。
sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install

安装之后,启动和运行nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
## 启动
nginx

## 重新加载配置
nginx -s reload
## 重启
nginx -s reopen
## 停止
nginx -s stop
## 退出
nginx -s quit
## 编辑配置文件
vim /usr/local/etc/nginx/nginx.conf
## 查看启动状态
ps -ef|grep nginx

参考文章:
1.MAC升级Big Sur后解决brew update时error:Your CLT does not support macOS 11. (执行了重新安装xcode-select之后,还是需要执行:brew update 才能解决这个问题)
2.Error: Your CLT does not support macOS 11. (参考文章1和2都是一样的,就是重新安装xcode-select)
3.MAC下安装nginx
4.Mac OS X 10.15 编译和安装 Nginx
5.MAC 安装 Nginx
6.Mac OS系统下,Nginx的配置和常用命令 (nginx的配置和使用)
7.nginx在MAC上的安装、启动、重启和关闭 这里都是在安装路径下 /usr/local/Cellar/nginx 进行的操作,有点繁琐了。 /usr/local/etc/nginx/nginx.conf (配置文件路径);/usr/local/var/www (服务器默认路径);/usr/local/Cellar/nginx/1.8.0 (安装路径)

2.Redis

安装Redis有两种方式,一种是源码安装,一种是使用brew安装。
(1) 源码安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 解压
tar -zxvf redis-5.0.5.tar.gz
# 拷贝的local目录下
sudo cp -rf redis-5.0.5 /usr/local/
# 进入相应目录下
cd /usr/local/redis-5.0.5
# 编译 - 时间有点长,可能要等几分钟
sudo make test
# 安装
sudo make install
# 建立相应目录
sudo mkdir bin etc db
# 拷贝启动文件
sudo cp src/mkreleasehdr.sh src/redis-benchmark src/redis-check-rdb src/redis-cli src/redis-server bin/
## 启动服务端
redis-server
## 启动客户端
redis-cli
## 配置文件在安装目录下的 redis.conf

(2) brew自动安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
## 安装
brew install redis
## 启动
brew services start redis
## 关闭
brew services stop redis
## 重启
brew services restart redis
## 客户端
redis-cli

## 开机启动
ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
## 使用配置文件启动
redis-server /usr/local/etc/redis.conf

## 停止
redis-cli shutdown
## 配置文件
/usr/local/etc/redis.conf
## 卸载
brew uninstall redis rm ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

注意第一次执行:brew services start redis 命令的时候,可能会出现问题,我再次执行的时候,这个问题就没有了,可能就是无法链接github吧。

1
2
3
4
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...
fatal: unable to access 'https://github.com/Homebrew/homebrew-services/': LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
Error: Failure while executing; `git clone https://github.com/Homebrew/homebrew-services /usr/local/Homebrew/Library/Taps/homebrew/homebrew-services --origin=origin` exited with 128.
Error: Failure while executing; `/usr/local/bin/brew tap homebrew/services` exited with 1.

参考文章:
1.Mac OS 下安装 Redis (这里使用的是源码编译的方式进行的安装)
2.mac os 安装 redis (这也是使用的源码安装,使用make&&make install)
3.在Mac上安装redis (这里使用的是brew进行自动安装的,还有使用命令,最后一点说了如何关闭protected-mode模式,开启远程访问)

3.node

这里我只是记录使用brew安装和卸载node的过程,其实更好是使用nvm管理不同的node版本,我觉得更加的方便,这里在其他的文章中已经记录了,这里先不说了。这个问题,是因为我使用 nvm ls 命令查询安装的node版本的时候,发现系统里面多出了很多的不知道的node版本。出现这个问题的原因,有可能是先安装了node之后,又安装了nvm,又使用了nvm安装了node,我使用 brew list 命令查看安装的软件,果然这里有了node。

1
2
3
4
5
6
7
8
9
10
11
12
node -> stable (-> v16.15.0) (default)
stable -> 16.15 (-> v16.15.0) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/gallium (-> v16.15.0)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.19.3 (-> N/A)
lts/gallium -> v16.15.0

卸载

1
2
3
4
## 卸载node
brew uninstall node
## 如果安装了yarn,还需要先卸载yarn
brew uninstall yarn

参考文章:
1.mac 使用brew卸载安装node
2.nvm ls 列表为空 这里有相同的情况,就是出现了iojs->N/A,这种情况,可能是因为先安装了node后安装了nvm
3.怎么彻底删除node和nvm?
4.如何完全卸载 Node.js,并从头开始重新安装 (Mac OS X) - How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)
5.Mac 下 brew 的安装、使用、卸载
6.详解如何使用nvm管理Node.js多版本

4.python

1
2
## 安装python
brew install python3

参考文章:
1.Mac——三步更改python 默认pip源
2.安装Python
3.Day03 - 在Mac安裝Python(好用的Homebrew)
4.在Mac OS X上安装Python 3

5.php

1
brew install php 

参考文章:
1.macOS 系统下的安装

小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件(ititchuan@gmail.com)通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
ititchuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。