Mac折腾LNMP

之前安装mysql一直都是失败,于是使用了mamp,发现很多扩展安装非常麻烦。于是,又开始动手使用homebrew安装 php7 + mysql5.7 +nginx.

一、设置homebrew

1
2
3
4
5
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
brew update
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php

二、安装nginx

1
2
# 重启nginx : sudo nginx -s reload|stop
sudo nginx -s stop && sudo nginx

三、安装mysql

1
2
3
4
brew edit mysql
wget xxxx-5.7.11.tar.gz
mv mysql-5.7.11.el_capitan.bottle.tar.gz /Library/Caches/Homebrew/
brew install mysql

四、安装php

4.1 安装php5.x

使用brew可以安装php的版本有 5.3、5.4、5.5、5.6

如果已经有安装php,需要unlink后再继续。比如我现在有php54,但要安装hp55,则需要这样去执行升级操作:

1
2
brew unlink php54
brew install php55

4.2 安装php7.0

mac下重启php-fpm后可能使用了旧的版本,需要执行如下命令使得php和php-fpm调用的是7.0的版本:

1
export PATH="$(brew --prefix php70)/sbin:$PATH"

4.3 PHP常用扩展安装

1
2
3
4
5
6
7
8
9
10
# swoole: https://github.com/swoole/swoole-src/releases/
# redis: 下载:https://github.com/phpredis/phpredis/tree/php7
# 以上安装方式都是:
./configure
make && make install
# memcached
brew install memcached
brew install php70-memcached

4.4 安装php常见问题

  1. memcached 依赖问题
    1
    PHP Deprecated: PHP Startup: memcached.sess_lock_wait and memcached.sess_lock_max_wait are deprecated. Please update your configuration to use memcached.sess_lock_wait_min, memcached.sess_lock_wait_max and memcached.sess_lock_retries in Unknown on line 0Deprecated: PHP Startup: memcached.sess_lock_wait and memcached.sess_lock_max_wait are deprecated. Please update your configuration to use memcached.sess_lock_wait_min, memcached.sess_lock_wait_max and memcached.sess_lock_retries in Unknown on line 0PHP Deprecated: PHP Startup: memcached.sess_lock_wait and memcached.sess_lock_max_wait are deprecated. Please update your configuration to use memcached.sess_lock_wait_min, memcached.sess_lock_wait_max and memcached.sess_lock_retries in Unknown on line 0Deprecated: PHP Startup: memcached.sess_lock_wait and memcached.sess_lock_max_wait are deprecated. Please update your configuration to use memcached.sess_lock_wait_min, memcached.sess_lock_wait_max and memcached.sess_lock_retries in Unknown on line 0PHP 7.0.2 (cli) (built: Jan 7 2016 10:40:26) ( NTS )Copyright (c) 1997-2015 The PHP GroupZend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies with Xdebug v2.4.0RC3, Copyright (c) 2002-2015, by Derick Rethans

需要注释配置/usr/local/etc/php/7.0/conf.d/ext-memcached.ini如下内容:

1
2
;memcached.sess_lock_wait = 150000
;memcached.sess_lock_max_wait = 0

参考