mac下使用brew配置nginx+php+mysql+PostgreSQL
大家在win下和Linux系统下配置PHP运行环境已经有很多参考资料了,以老高的经验,win下最好用的是UPUPW,linux求方便是centos+kangle,更加复杂的方法可以翻翻老高的文章归档,里面有很多可以参考的内容。
今天由于工作需要,必须在OSX下配置PHP的开发运行环境,经过一番折腾,终于搞定了!主要参考了Install Nginx, PHP-FPM, MySQL and phpMyAdmin on OS X Mavericks or Yosemite这篇文章,推荐英文好的同学直接看原文。
下面记录一下!(请按照顺序配置)
zsh
请参考zsh + oh-my-zsh 默认shell的最佳替代品
xcode
xcode里面包含了很多命令行工具,为我们后续的操作提供技术支持!所以第一件事情就是安装最新版的xcode,请在Mac App Store中自行安装!
安装完毕后运行一下,然后同意协议,稍等片刻,等安装完毕后关闭xcode,最后运行
xcode-select --install
进入下一阶段!
Brew
第二步请确认你是否已经安装了OSX下的包管理工具brew了!如果没有安装,请移步http://brew.sh/速度安装好!
PHP
有了brew,剩下的问题就很简单了!我们先添加水龙头(软件源)
brew tap homebrew/php
基础安装
brew install php71
如果你有更多的需求,可以搜索包库,直接安装你想要的包,比如需要添加pdo,我们不需要重新编译php,而是这样子!
brew search php71
brew install php71-pdo
安装redis可能会报找不到include/igbinary.h
,可以用下面的方法解决!
Homebrew PHP5.6 memcached installation error
系统路径
安装完毕后,我们想要将php加入系统路径,我们可以先查看brew安装php的路径
brew --prefix homebrew/php/php56
我们需要把MACOS自带的PHP改个名字,才能使我们新安装的生效
ll /usr/bin |grep php
-rwxr-xr-x 1 root wheel 6.6K Feb 8 2017 php-config
-rwxr-xr-x 1 root wheel 10M Apr 29 08:31 php56
-rwxr-xr-x 1 root wheel 4.4K Feb 8 2017 phpize
# 重命名
sudo mv php-config php56-config
sudo mv php php56
sudo mv phpize phpize56
开机启动
# old
mkdir -p ~/Library/LaunchAgents
ln -sfv /usr/local/opt/php56/homebrew.mxcl.php56.plist ~/Library/LaunchAgents/
# new
brew services start php71
启动PHP-FPM
# old
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist
配置文件
配置文件位于/usr/local/etc/php/7.1
,看看吧!
查看运行
lsof -Pni4 | grep LISTEN | grep php
mysql
brew install mysql
开机启动
# old
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
# new
brew services start mysql
运行mysql
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
开始安全配置
mysql_secure_installation
nginx
brew install nginx
自动启动
# old
sudo cp -v /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/
sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
# new
brew services start nginx
运行NGINX
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
php-nginx
server {
listen 80;
server_name foo.com;
root /path;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
}
}
mysql_secure_installation 后 Enter password for user root: 这个密码是多少?
我倾向于不在本地搞,要弄的话我会建立个虚拟机
虚拟机占资源,其实我觉得最好的方案是docker