一、安装Homebrew
Brew是Mac下面的包管理工具,就像centos下面的yum一样。HomeBrew可以通过ruby来安装,mac系统是自带ruby的,所以只要在终端运行下面的代码即可安装HomeBrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
在安装的时候会有下面的提示,你应该仔细看下,要清楚知道HomeBrew给你安装了哪些脚本,给你创建了哪些文件夹,路径是在哪里的。仔细的看下安装时出现的说明信息,这样即使没有用过的软件,你根本不用看文档,都是能够使用它的最基础功能的。如果你一定要研究下细致的,可以看HomeBrew的官网:https://brew.sh/
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
==> The following new directories will be created:
/usr/local/Cellar
/usr/local/Homebrew
/usr/local/Frameworks
/usr/local/bin
/usr/local/etc
/usr/local/include
/usr/local/lib
/usr/local/opt
/usr/local/sbin
/usr/local/share
/usr/local/share/zsh
/usr/local/share/zsh/site-functions
/usr/local/var
现在我们已经安装完HomeBrew了,其实你只要运行brew help就能知道该怎么用这个软件了。
自检Brew
安装完成之后,建议执行一下自检,brew doctor如果看到Your system is ready to brew.那么你的brew已经可以开始使用。
"这里是我已经安装了oh-my-zsh"
Homebrew 常用命令一览
$ brew --help #简洁命令帮助
$ man brew #完整命令帮助
$ brew install git #安装软件包(这里是示例安装的Git版本控制)
$ brew uninstall git #卸载软件包
$ brew search git #搜索软件包
$ brew list #显示已经安装的所有软件包
$ brew update #同步远程最新更新情况,对本机已经安装并有更新的软件用*标明
$ brew outdated #查看已安装的哪些软件包需要更新
$ brew upgrade git #更新单个软件包
$ brew info git #查看软件包信息
$ brew home git #访问软件包官方站
$ brew cleanup #清理所有已安装软件包的历史老版本
$ brew cleanup git #清理单个已安装软件包的历史版本
美化下终端
安装oh-my-zsh
brew我们已经安装好了,现在已经可以使用了,但是看上面的图,我们的终端太他妈的丑了,mac默认使用的shell是bash,如果把它换成zsh,并安装zsh的插件oh-my-zsh,那就会好很多了,mac系统已经自带了zsh,我们就不用去安装了,执行zsh --version可以查看zsh的版本,我们需要安装个zsh的插件oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
终端执行上面的代码即可
接下来我们先安装字体,设置稍后再说。
安装FiraCode字体
我们安装个比较流行的编程字体FireCode,可以进入:https://github.com/tonsky/FiraCode点击下载,下载后解压然后找到TTF文件夹,安装其中的五个字体。
现在打开终端,点击终端->偏好设置,在这里按自己的喜欢设置一下背景,字体,颜色,行间距等即可
设置完就成为下面这样了,嗯,这样就好看多了
设置启动安装完oh-my-zsh后会自动帮我们把shell切换为zsh,现在我们的终端就变成这样了,注:oh-my-zsh还可以更换主题和装插件的,具体访问:http://ohmyz.sh
安装终端的命令自动提示
在终端下操作会经常需要输入一些常用的命令,要不出错的输入这些命令也不是件容易的事,zsh还有一个很好用的补全命令的插件zsh-autosuggestions, 我们通过下面命令安装下:
brew install zsh-autosuggestions
安装完成后我们需要设置一下变量:
这里根据之前查阅资料设置以后,执行后只有本次有效,关闭后再打开就无效了,所以在这里进行了修改,增加echo 'xxx' >> ~/.zshrc,这样每次打开都有提示了!不知道是不是只有我这样。
echo 'source /usr/local/Cellar/zsh-autosuggestions/0.4.2/share/zsh-autosuggestions/zsh-autosuggestions.zsh' >> ~/.zshrc
source ~/.zshrc
好了,然后你可以执行source ~/.zshrc或者重新打开终端,看下效果,输入b以后会自动提示输入过的内容,然后按向右的箭头就可以自动补全:
二、安装Mysql
先查找下mysql
brew search mysql
==> Searching local taps...
mysql ✔ mysql-connector-c
automysqlbackup mysql-connector-c++
josegonzalez/php/php53-mysqlnd_ms mysql-sandbox
josegonzalez/php/php54-mysqlnd_ms mysql-search-replace
josegonzalez/php/php55-mysqlnd_ms mysql-utilities
josegonzalez/php/php56-mysqlnd_ms mysql@5.5
mysql++ mysql@5.6
mysql-cluster mysqltuner
……
看一下mysql的版本信息
brew info mysql
mysql: stable 5.7.20 (bottled), devel 8.0.3-rc
Open source relational database management system
https://dev.mysql.com/doc/refman/5.7/en/
……
下面就用brew install mysql安装下吧,安装时的消息有这么一句话We've installed your MySQL database without a root password. To secure it run:mysql_secure_installation,那就来设置下root的密码
# 第一步:打开mysql服务
mysql.server start
# 第二步:执行mysql_secure_installation
mysql_secure_installation
# 执行后按照提示信息进行设置,慢慢看下英文,都能看懂的,主要修改密码,和一些基本配置,实在看不懂可以用翻译软件
登录mysql
mysql -u root -p
Enter password: #输入你设置的密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.20 Homebrew
……
设置mysql开机启动
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
三、安装PHP
直接brew search php72 也可以,你可以试下看看提示信息,只是有时候会有包错误,要先添加php扩展其中php72中的72对应版本号,如:你要安装php5.6那么就是php56
brew update # 安装软件前都要习惯的更新下brew源
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
现在brew search php就可以了,出来一堆版本的php,我们就安装php7.2版本吧。
可以先brew options php72看看你安装的时候要哪些选项,我选择了下面这些,因为后面我们会用nginx作为反向代理,所以就不要用--with-apache选项了,也不要添加--without-fpm选项
brew install php72 --with-debug --with-gmp --with-homebrew-curl --with-homebrew-libressl --with-homebrew-libxml2 --with-homebrew-libxslt --with-imap --with-libmysql --with-mssql
由于Mac自带了php和php-fpm,因此需要添加系统环境变量PATH来替代自带PHP版本,我们用的是zsh,所以放进/.zshrc中,如果你用的shell是bash,那么可以把下面的信息写入到/.bash_profile文件中,如果这个文件没有,你自己建一个就行。
注:上面我们有安装过oh-my-zsh,所以我们在~/.zshrc文件中写入内容,如果你没有安装,请将下段中的~/.zshrc替换为~/.bash_profile。
echo 'export PATH="$(brew --prefix php72)/bin:$PATH"' >> ~/.zshrc #for php
echo 'export PATH="$(brew --prefix php72)/sbin:$PATH"' >> ~/.zshrc #for php-fpm
echo 'export PATH="/usr/local/bin:/usr/local/sbib:$PATH"' >> ~/.zshrc #for other brew install soft
source ~/.zshrc
测试下效果
输入php -v和php-fpm -v查看版本是不是自己安装的版本
#brew安装的php
➜ ~ php -v
PHP 7.2.0 (cli) (built: Dec 14 2017 21:50:48) ( NTS DEBUG )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
with Xdebug v2.6.0alpha1, Copyright (c) 2002-2017, by Derick Rethans
#brew安装的php-fpm
➜ ~ php-fpm -v
PHP 7.2.0 (fpm-fcgi) (built: Dec 14 2017 21:50:50) (DEBUG)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
with Xdebug v2.6.0alpha1, Copyright (c) 2002-2017, by Derick Rethans
#mac自带的php
➜ ~ /usr/bin/php -v
PHP 7.1.7 (cli) (built: Jul 15 2017 18:08:09) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
#mac自带的php-fpm,呵呵没找到。。
➜ ~ /usr/bin/php-fpm -v
zsh: no such file or directory: /usr/bin/php-fpm
下面先来看下php-fpm的配置文件,路径在/usr/local/etc/php/7.0/php-fpm.conf, 大家应该都猜的到。我们主要看下pid和log文件会放在哪里
- [global]
- ; Pid file
- ; Note: the default prefix is /usr/local/var
- ; Default Value: none
- pid = run/php-fpm.pid
- ; Error log file
- ; If it's set to "syslog", log is sent to syslogd instead of being written
- ; into a local file.
- ; Note: the default prefix is /usr/local/var
- ; Default Value: log/php-fpm.log
- error_log = log/php-fpm.log
自己看下上面的信息,去掉17行和24行前面的分号,使用php-fpm -t测试下配置是否正确,按提示信息是不管它也可以,默认就是在/usr/local/var路径下的,不过还是设置下吧;
➜ ~ php-fpm -t
[15-Dec-2017 10:31:28] NOTICE: configuration file /usr/local/etc/php/7.2/php-fpm.conf test is successful
php-fpm的一些管理:
#测试php-fpm配置
php-fpm -t
#启动php-fpm
php-fpm -D
#关闭php-fpm
kill -INT cat /usr/local/var/run/php-fpm.pid
#重启php-fpm
kill -USR2 cat /usr/local/var/run/php-fpm.pid
#也可以用上文提到的brew命令来管理php-fpm
brew services start|stop|restart php72
#还可以用这个命令来管理php-fpm
php72-fpm start|stop|restart
#建议使用最后两个命令来启动|停止|重启php-fpm
启动php-fpm之后,确保它正常运行监听9000端口:
➜ ~ lsof -Pni4 | grep LISTEN | grep php
php-fpm 2255 qytx 10u IPv4 0xd1e5b0fbcd0615df 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 2256 qytx 0u IPv4 0xd1e5b0fbcd0615df 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 2257 qytx 0u IPv4 0xd1e5b0fbcd0615df 0t0 TCP 127.0.0.1:9000 (LISTEN)
四、安装Nginx
和前面一样先brew search nginx查找nginx, 看下信息brew info nginx
然后安装brew install nginx
安装信息记录下,用的到:
➜ ~ brew install nginx
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
gitless
==> Updated Formulae
fzf gammu
==> Downloading https://homebrew.bintray.com/bottles/nginx-1.10.2.sierra.bottle.tar.gz ############################################### 100.0%
==> Pouring nginx-1.10.2.sierra.bottle.tar.gz
==> Using the sandbox
==> Caveats Docroot is:
/usr/local/var/www
The default port has been set in/usr/local/etc/nginx/nginx.conf to 8080 so that nginx can run without sudo.
nginx will load all files in /usr/local/etc/nginx/servers/.
To have launchd start nginx now and restart at login:
brew services start nginx Or, if you don't want/need a background service you can just run:
nginx
==> Summary
Nginx启动关闭命令:
#测试配置是否有语法错误
nginx -t
#打开nginx
sudo nginx
#重新加载配置|重启|停止|退出nginx
sudo nginx -s reload|reopen|stop|quit
好了,来跑下nginx
sudo nginx
到这里为止,我们已经安装完了mysql php nginx, 在安装php的时候添加了--with-mysql, 所以php操作mysql是没有问题的,现在我们就要配置nginx,让它监听php-fpm的进程,这样当用户打开浏览器访问的时候,身为反向代理的nignx就能把东西让php去执行了。
接下来,我们要配置nginx.conf文件,创建一个php-fpm文件(监听php-fpm), 还要约定下将nginx.pid文件,log日志,以及以后我们要配置的站点.conf的路径,我们的路径约定还是按照brew默认的目录来设置,如下:
# nginx.conf,已经被创建好了,我们一会要更改下
/usr/local/etc/nginx/nginx.conf
# php-fpm,这个我们就放在和nginx.conf一样的路径下吧,这个要我们自己创建
/usr/local/etc/nginx/php-fpm
# 日志文件放在/usr/local/var/log/nginx中,默认已经有了access.log和error.log文件了
/usr/local/var/log/nginx/
# nginx.pid文件,放在/usr/local/var/run/下面,和php-fpm.pid放一堆
/usr/local/var/run/
# 以后要配置的站点.conf, 我们就放在/usr/local/etc/nginx/servers/下面,这个servers文件夹本身就存在的
/usr/local/etc/nginx/servers/
# 站点的根目录,也就用brew给我们设置的吧
/usr/local/var/www/
一般我都用brew安装软件,所以用brew默认的路径,我能方便的找到我的文件。
下面我们先来修改nginx.conf, 用vim打开,把下面的信息覆盖nginx.conf, vim /usr/local/etc/nginx/nginx.conf, 如果你不习惯vim, 那就用sublime/Atom打开吧subl /usr/local/etc/nginx/nginx.conf
worker_processes 1;
error_log /usr/local/var/log/nginx/error.log debug;
pid /usr/local/var/run/nginx.pid;
events {
worker_connections 256;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /usr/local/var/log/nginx/access.log main;
sendfile off;
keepalive_timeout 65;
port_in_redirect off;
include /usr/local/etc/nginx/servers/*;
}
接下来,将下面的信息放入到php-fpm文件中,vim /usr/local/etc/nginx/php-fpm
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_intercept_errors on;
include /usr/local/etc/nginx/fastcgi.conf;
}
ok, 下面就能配置站点了,先到/usr/local/var/www
目录下建立站点根目录,就叫做default吧,然后在里面建立个info.php,内容就放phpinfo()函数就行.
mkdir /usr/local/var/www/default
vi /usr/local/var/www/default/info.php #输入 ,活着自己去这个目录下手动创建文件也可以
<?php phpinfo();?>
#info.php内容
最后,去创建站点.conf文件
vi /usr/local/etc/nginx/servers/default.conf #在目录下创建文件
#输入下面的内容
server {
listen 80;
server_name localhost;
root /usr/local/var/www/default;
access_log /usr/local/var/log/nginx/default.access.log main;
location / {
index index.html index.htm index.php;
autoindex on;
autoindex_exact_size on;
autoindex_localtime off;
include /usr/local/etc/nginx/php-fpm;
}
error_page 404 /404.html;
error_page 403 /403.html;
}
#以上内容中可自定义端口号listen、项目路径root,以及日志路径access_log
#如要设置错误页,则在error_page 中添加即可,注意路径
#测试下配置文件
➜ ~ sudo nginx -t
Password:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
然后开启php-fpm,已经开启的就不用开了
php-fpm -D
开启nginx服务
sudo nginx # 已经开启的用sudo nginx -s reload 重启下
浏览器打开http://localhost/info.php测试下
别名
上面的php-fpm关闭和重启的命令有点长,我们给它做个别名,在你的个人主目录下先建立一个.aliases文件,然后放入下面的内容
alias fpm.start='php-fpm -D'
alias fpm.stop='kill -INT `cat /usr/local/var/run/php-fpm.pid`'
alias fpm.restart='kill -USR2 `cat /usr/local/var/run/php-fpm.pid`'
alias fpm.status='lsof -Pni4 | grep LISTEN | grep php-fpm'
然后
echo 'source ~/.aliases' >> ~/.zshrc
source ~/.zshrc
这里我自己没有建,我用
brew services start|stop|restart php72
或者
php72-fpm start|stop|restart
五、安装xdebug
安装php扩展,也可以先不急,等后面要用到什么扩展的时候再安装也可以
安装扩展的方法(以xdebug扩展为例):
brew install php72-xdebug --build-from-source;
最后的--build-from-source是一定要加上的,我看很多教程里都漏了这一句。加上这句可以保证安装的扩展与php版本保持一致
备注:要卸载通过homebrew安装的php扩展,参考这篇文章:mac环境下通过
homebrew安装的php报错解决
找到/usr/local/etc/php/7.2/conf.d/ext-xdebug.ini
#复制以下内容到ext-xdebug.ini
[xdebug]
zend_extension="/usr/local/Cellar/php72-xdebug/2.6.0alpha1/xdebug.so"
xdebug.remote_autostart=On
xdebug.remote_enable=Off
xdebug.remote_mode="req"
xdebug.remote_host="localhost"
xdebug.remote_port=9001
xdebug.remote_handler="dbgp"
xdebug.idekey="PhpStorm"
xdebug.max_nesting_level=600
重新启动php-fpm和nginx
php72-fpm restart
sudo nginx -s reopen
查看xdebug信息
六、配置PHPSTORM
PHPSTORM的安装就不说了
THE END
这篇文章摘自Zackpy and 笨尛孩你谁啊整合版本
然后经过自己的一些实践和后期加工完成!
整理出来,以后自己忘了也能看,哈哈