过去写的一篇文章,放自己网站没人看. 拿简书上来试试! 源站地址: http://wizarot.me/post/2018-03-22/
基本配置篇
- MAC拿到手之后需要注册一个AppStore账号和Github.com账号.其余公司账号密码会专门分配,请参考使用.
- 生成自己的ssh_key. 基本操作在Launchpad的其他>终端 中进行命令行操作,请熟悉命令行操作,开发中会经常用到. 这里基本使用的命令是(命令行操作基础如果了解可以略过,不了解就稍微看一下或者问问同事):
> ls (显示当前目录内容)
> cd xxx (进入某一个目录)
打开后会默认在当前用户的home目录. 执行ls ~/.ssh
查看是否存在这个目录,正常新机器是不存在的,如果有请咨询同事. 如果不存在,那么我们就新建一个,这将会生成.ssh目录和下面的文件.ssh目录是隐藏目录,新建之后用ls不能直接看到,这个很正常. 执行命令: ssh-keygen -t rsa -C "youremail@example.com”
里面的email用公司分配给你的即可.后面还有一些询问,都直接回车默认.
- 安装xcode: 通过AppStore安装xcode.完成后,需要运行一次,同意里面的协议,然后关掉即可.在命令行工具,执行
xcode-select --install
完成安装xcode命令行工具. - 安装brew(OSX的软件包管理工具,之后的软件等安装,尽量使用brew来统一安装和管理,官网:http://brew.sh/index_zh-cn ),命令行执行:
> /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
- 安装iTerm2,更好的命令行终端软件:
brew install iterm2
完成安装,如果在过程中发生错误同样google或找同事帮助.安装完成后,可以在Launchpad中找到,直接启动.并固定在Dock上面吧! 这是你的好朋友. - zsh oh-my-zsh安装,配置.完成安装之后,重新打开一个iterm窗口,查看下效果.
> brew install zsh zsh-completions #安装zsh
> chsh -s $(which zsh) #切换zsh为默认shell
> sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
- git工具:
> brew install git
其他可选项目
- 常用文本编辑器sublime3
> brew tap caskroom/cask
> brew install brew-cask
> brew tap caskroom/versions
> brew cask install sublime-text
- TODO: 常用快捷键,有用的app推荐,iTerm主题和配置,MAC系统方便的配置等
PHP开发篇
- 安装php :推荐安装两个PHP版本 5.6 ,7.0 (brew 升级了,因此之前方式有些问题)
> brew install php@5.6 # 安装php5.6
- 安装php另一个版本
> brew unlink php # 不执行这个会报错
> brew install php@70 # 安装php7.0版本
- php redis等扩展可能无法直接安装,解决办法:
我们使用第三方的brew库: 原因是新版brew不支持同时使用多个版本php. 但会引入新问题,这个库中的lib引用没有维护,可能造成一些报错.但你可以通过软连接没有的这些库来解决. 网上也能找到非常多的解决方案. 具体缺哪个你就处理哪个即可.
> brew tap kyslik/homebrew-php
然后后面就可以正常安装对应的php扩展了.如不哦不行,那么建议考虑用源码安装吧!也是可以的.
- 安装php版本管理工具php-version:
不喜欢用,或者安装嫌麻烦也可以不用. 直接用brew unlink php71; brew link php56 这样也能简单切换.
项目github: https://github.com/wilmoore/php-version
> brew install php-version (这个办法已弃用!)
> mkdir -p $HOME/local/php-version
> cd !$
> curl -# -L https://github.com/wilmoore/php-version/tarball/master | tar -xz --strip 1
装好之后,编辑 ~/.zshrc文件,增加下面这行.这样在每次启动一个shell就会加载php-version管理了.
source $HOME/local/php-version/php-version.sh && php-version 7.0
具体使用方法: php-version
查看当前安装php版本. php-version 7.0
切换到对应版本.
- 修改php配置,以php7.0为例: 执行命令
brew info php70
可以看到关于php70的安装和使用信息.从里面找到php.ini文件路径: /usr/local/etc/php/7.0/php.ini 编辑php.ini文件配置
> subl "$(brew --prefix)/etc/php/7.0/php.ini" # 用之前安装的sublime编辑器编辑文件
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone (设置时区)
date.timezone =Asia/Macao
...
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit (设置运行的内存限制)
memory_limit = 1024M
...
; (设置post最大小)
post_max_size = 256M
; (设置上传单个文件大小)
upload_max_filesize = 256M
;if APC installed, update following in conf.d/ext-apc.ini(如果有,没有就算了)
apc.shm_size=256M
设置php-fpm: 为了方便好记设置 php7.0使用9070端口; php5.4用9054端口; php5.6用9056端口; php7.2 用9072端口
> subl "$(brew --prefix)/etc/php/7.0/php-fpm.conf"
listen = 127.0.0.1:9070 ;配置文件中分号是单行注释,设置为监听本机的9070端口是为了方便.
- 启动php-fpm服务:
brew services start homebrew/php/php70
- 确保php-fpm服务随开机启动:
> mkdir -p ~/Library/LaunchAgents
> cp /usr/local/opt/php70/homebrew.mxcl.php70.plist ~/Library/LaunchAgents/
> launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php70.plist
- 安装Redis:
> brew install redis # 安装reids软件
> brew info redis # 查看安装信息
> brew services start redis # 后台启动redis服务
- 安装Mysql:
> brew install mysql # 安装mysql
> brew info mysql # 查看安装信息(正常安装后也会直接显示一次)
> brew services start mysql # 启动mysql服务,默认用户root,密码为空
- 安装Nginx服务器:
> brew install nginx # 直接安装nginx
> brew info nginx # 查看安装信息
- 修改Nginx配置:
/usr/local/etc/nginx/nginx.conf
> subl /usr/local/etc/nginx/nginx.conf # 编辑修改配置文件
worker_processes 4; # nginx服务进程数量,本地开发4条进程就差不多了
...
- 增加开发虚拟站点: 新建文件放到目录
/usr/local/etc/nginx/servers/
下面
> cd /usr/local/etc/nginx/servers/
> subl test.conf
编辑文件 test.conf
# test;
server {
listen 80; # 监听80端口,注意会造成直接启动服务失败,因为权限问题,这个下一节说明
client_max_body_size 1024m;
server_name test.l.wizmacau.com; # 公司域名xxx.l.wizmacau.com会自动指向localhost,因此不需要改本机的hosts文件了.
access_log /Users/user/logs/test.access.log; # 访问记录路径
error_log /Users/user/logs/test.error.log; # 错误记录路径
root /Users/user/php_productions/test/web; # 网站根目录,根据实际修改
# 如果URL中包含app.php,则转发为伪静态格式
rewrite ^/app_dev\.php/?(.*)$ /$1 permanent;
location / {
index app_dev.php; # 默认解析本地开发模式 for symfony
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /app_dev.php/$1 last;
}
location ~ ^/(index|app|app_dev|config)\.php(/|$) {
fastcgi_pass 127.0.0.1:9070; # php-fpm端口,使用7.0则改为9070端口
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
}
}
注意不要使用.dev做为本地开发域名,因为chrome浏览器新版本强制要求.dev的域名必须使用https.如果没在nginx配置443端口,那么会导致怎么都访问不到你的本地项目.
- 启动nginx服务: 因为需要监听80端口,Mac普通用户权限启动不能监听1024以下端口,导致启动失败,需要给nginx提高到root权限
> which nginx # 查询当前nginx路径
> sudo chown root:wheel /usr/local/bin/nginx # 根据查询路径,给nginx修改所有者为root,注意会提示输入当前用户登录密码
> sudo chmod u+s /usr/local/bin/nginx
> sudo brew services start nginx # 使用root用户启动nginx服务
> ps aux|grep nginx # 查看后台进程,如果有 nginx: worker process 那么说明nginx服务启动成功,如果失败请叫同事帮忙
Python开发篇(TODO)
- 安装python3
> brew install python3 # 安装python3