Mac下brew 方式的LNMP环境搭建

1 安装前准备

1.1 更新brew

brew update	

1.2 首先加入Homebrew官方的几个软件源

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/php

2 安装mysql

2.1 安装MySQL

brew install mysql

Mac下brew 方式的LNMP环境搭建_第1张图片
2.2 brew方式设置开机启动MySQL

cp /usr/local/Cellar/mysql/5.7.12/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

#brew设置开机启动MySQL完成后的提示信息

If you need to have this software first in your PATH run:
echo 'export PATH="/usr/local/opt/sphinx-doc/bin:$PATH"' >> ~/.zshrc

/usr/local/Cellar/mysql/5.7.20/bin/mysqld --initialize-insecure --user=king --basedir=/usr/local/Cellar/mysql/5.7.20 --datadir=/usr/local/var/mysql --tmpdir=/tmp

We've installed your MySQL database without a root password. To secure it run:
mysql_secure_installation

MySQL is configured to only allow connections from localhost by default

A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

To have launchd start mysql now and restart at login:
  brew services start mysql

Or, if you don't want/need a background service you can just run:
  mysql.server start

#关闭并取消MySQL的开机启动服务

brew services stop mysql

#登录&退出MySQL

mysql -uroot -p		
quit

2.3 MySQL安全配置
注意: 需先运行mysql 。 否则会报错:Error: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) 提示说找不到mysql.sock。原因是mysql进程还没启动。
mysql_secure_installation
#修改密码安全策略,设置密码为123456

  • 命令 mysql -uroot 登录 MySQL
  • set global validate_password_policy=0; #设置密码强度检查等级, 0:只检查长度
  • set global validate_password_length=4; #设置密码最小长度 LOW
    强度允许我们设置为纯数字纯字母等密码,但是我们还是不能设置 123456,因为最低要求 8 位,没事,继续跑这一句. 你要问我那个
    length 为什么要设置 4,因为不管你设置 1、2、3、4,最低长度都是 4。
  • SHOW VARIABLES LIKE ‘validate_password%’; #查看密码策略
  • 再次运行 mysql_secure_installation,安心的设置 123456 了。。。

2.4 配置文件介绍

3 安装PHP

3.1 #brew 安装php56

#查看php5.6安装选项
brew options php56   	  
#搜索PHP56安装包
brew search php56 	  
 #安装php56
brew install homebrew/php/php56    

注意:查看php5.6安装选项发现, php56中php-fpm, nginx, mysql扩展 默认已安装
Mac下brew 方式的LNMP环境搭建_第2张图片
Mac下brew 方式的LNMP环境搭建_第3张图片

3.2 #加入开机启动
#方式一

#To have launchd start homebrew/php/php56 now and restart at login:
brew services start homebrew/php/php56

#方式二

cp /usr/local/opt/php56/homebrew.mxcl.php56.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist

3.3 #替换Mac自带的PHP和php-fpm 添加环境变量
注意我们用的zsh,由于Mac自带了php和php-fpm,因此需要添加系统环境变量PATH来替代自带PHP版本(优先运行brew安装的版本)

#查看当前用的shell  并修改对应的配置文件
echo $SHELL    
/usr/local/bin/zsh    

#修改zash配置文件~/.zshrc
#for php
echo 'export PATH="$(brew --prefix homebrew/php/php56)/bin:$PATH"' >> ~/.zshrc  
#for php-fpm
echo 'export PATH="$(brew --prefix homebrew/php/php56)/sbin:$PATH"' >> ~/.zshrc  
#for other brew install soft
echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.zshrc 
#更新并使配置生效
source ~/.zshrc 

#在~/.zshrc 添加效果如下:
export PATH=/usr/local/opt/php56/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

说明:shell配置文件 - 设置一些环境变量
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.
~/.zshrc:该文件包含专用于你的zsh shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.

3.4 #扩展安装
等待PHP编译完成,开始安装PHP常用扩展,扩展安装过程中brew会自动安装依赖包; 如果要安装新的php扩展,可以直接安装而不用每次重新编译php,所有的扩展可以通过
brew search php56 查找扩展
#安装命令
brew install homebrew/php/php56-crypto homebrew/php/php56-igbinary homebrew/php/php56-memcache homebrew/php/php56-memcached homebrew/php/php56-mongo homebrew/php/php56-mongodb homebrew/php/php56-pthreads homebrew/php/php56-redis homebrew/php/php56-yaf homebrew/php/php56-mcrypt homebrew/php/php56-swoole homebrew/php/php56-xdebug homebrew/php/php56-opcache
#从源码开始安装 nginx , 默认情况下会采用 bottle 方式安装,bottle 方式就是安装已编译好的二进制包。
brew reinstall homebrew/php/php56-crypto --build-from-source
brew install homebrew/php/php56-xdebug --build-from-source
Mac下brew 方式的LNMP环境搭建_第4张图片

3.5 #启动 停止 验证php56安装结果
杀死进程=> sudo pkill php-fpm
重启进程=> sudo /usr/local/opt/php56/sbin/php-fpm --fpm-config
#配置文件位置
/usr/local/etc/php/5.6/php-fpm.conf

3.6 卸载 清除垃圾信息
#卸载
brew uninstall php56

清除缓存以及老旧版本文件

brew cleanup -s

3.7 PHP命令
php –v 即可查看当前php的版本
php -m 会显示当前php加载的有效模块
php -i 输出无html格式的phpinfo
php -i |grep mongo 查看你的扩展是否安装成功
php -ini 输出当前php加载ini配置文件的数量,路径信息。
php –a 命令打开交互模式,输入一行代码,php会实时输出结果。
php -l hello.php 命令行下检测php文件的语法错误
php -s hello.php 将php代码高亮原样输出
php -rf function 打印出该函数的语法简介
php -re function 查看扩展
php-fpm -v 查看php-fpm版本
php --ini 查看所有配置文件位置

3.8 php70 安装
注意: 安装PHP70 因为PHP71暂时没有memcache 扩展
brew options php70 #查看php70安装选项
brew install php70
Mac下brew 方式的LNMP环境搭建_第5张图片

这里写图片描述
PHP70和PHP56安装差不多,但有几个地方主要注意:
please ‘brew unlink php56’ before continuing => 提示在安装PHP70之前需要去除之前php56的链接,这样才可以安装PHP70
#PHP扩展安装 扩展有区别
brew install homebrew/php/php70-igbinary homebrew/php/php70-memcache homebrew/php/php70-memcached homebrew/php/php70-mongodb homebrew/php/php70-pthreads homebrew/php/php70-redis homebrew/php/php70-yaf homebrew/php/php70-mcrypt homebrew/php/php70-swoole homebrew/php/php70-xdebug homebrew/php/php70-opcache homebrew/php/php70-lua homebrew/php/php70-gmagick

4 PHP多版本控制

4.1 方式一 通过php-version实现版本控制

brew install php-version

Mac下brew 方式的LNMP环境搭建_第6张图片

#只生效一次
source $(brew --prefix php-version)/php-version.sh && php-version 5
要想长期生效需要 把这代码放到~/.bashrc 或者 ~/.zshrc
php-version #查看现有版本
这里写图片描述
php -version 7.0.25 #PHP版本切换
Mac下brew 方式的LNMP环境搭建_第7张图片
4.2 方式二 brew link|unlink
通过brew安装的php可以通过brew link和brew unlink来切换不同版本。

4.3 方式三
http://www.piaoyi.org/php/Mac-brew-php.html
注意:安装多个PHP版本的时候, 要注意更改配置目录,其实本质上还是启动程序优先级问题.比如设置php56 在php70之前, 则用到的就是php56

5 Nginx 安装

brew install nginx

Mac下brew 方式的LNMP环境搭建_第8张图片
#主配置文件
/usr/local/etc/nginx/nginx.conf
#启动及相关命令
nginx #启动
nginx -s reload|reopen|stop|quit #重载/~/停止/~
nginx -t #校验配置文件是否正确
nginx -V #查看安装Nginx时的编译选项(pid位置, Log日志 配置文件 安装目录 安装模块等)

nginx安装后默认监听8080端口,可以访问http://localhost:8080查看状态。
#如果要想监听80端口需要root权限,运行

sudo chown root:wheel /usr/local/Cellar/nginx/1.6.2/bin/nginx
sudo chmod u+s /usr/local/Cellar/nginx/1.6.2/bin/nginx

#设置开机启动

cp /usr/local/Cellar/nginx/1.10.0/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

6 brew 方式 安装 Redis

#安装命令

brew install redis

#安装完成后的提示信息
To have launchd start redis now and restart at login:
brew services start redis #同时会把服务加入开机启动项
Or, if you don’t want/need a background service you can just run:
redis-server /usr/local/etc/redis.conf

#手动加入开机启动

cp /usr/local/Cellar/redis/4.0.2/homebrew.mxcl.redis.plist ~/Library/LaunchAgents/ 
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

#停止redis server的自启动
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

#使用配置文件启动redis server
$ redis-server /usr/local/etc/redis.conf

#停止redis server服务
redis-cli shutdown

#测试redis server是否启动
redis-cli ping

#redis 配置文件的位置
/usr/local/etc/redis.conf

#配置后台进程启动
vim /usr/local/etc/redis.conf

修改 daemonize no 为 daemonize yes 默认启动就后台运行
# redis 设置密码
vim /usr/local/etc/redis.conf
#修改密码
requirepass foobared => requirepass pwdcode
#重启redis
先登录redis =>
shutdown #关闭服务 =>
/usr/local/opt/redis/bin/redis-server /usr/local/etc/redis.conf #启动服务
登录redis,发现可以登上,但是执行具体命令是提示操作不允许
redis-cli -h 127.0.0.1 -p 6379
尝试用密码登录并执行具体的命令看到可以成功执行
redis-cli -h 127.0.0.1 -p 6379 -a pwdcode

7 brew 方式 安装 Memcache

brew install memcached
#To have launchd start memcached now and restart at login:
brew services start memcached
#Or, if you don’t want/need a background service you can just run:
/usr/local/opt/memcached/bin/memcached
# 加入开机启动

cp  /usr/local/Cellar/memcached/1.5.2/homebrew.mxcl.memcached.plist ~/Library/LaunchAgents
launchctl load/unload ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist

#连接
telnet 127.0.0.1 11211

8 brew 安装其他项目支持

brew install composer node

你可能感兴趣的:(开发环境搭建,mac,brew,lnmp,php版本切换)