From: http://www.jb51.net/article/42715.htm

mac下使用homebrew安装安装、配置nginx、mysql、php-fpm的方法。

一、前话:
1.1、环境选择:
重新在mac上配置php,原本mac上就自带有apach、php以及pgsql,如果图简单的话,直接用就可以了,不过在安装前我仔细思考了一下几个问题:
选apache还是nginx:两个我了解的都比较少,相对而言我接触nginx比较多,服务器用的也是nginx,没办法谁叫nginx负载高呢。为了更好的接触nginx的环境,我决定还是统一下环境,方便今后使用,这是这次的主要关键;
安装php:Mac os自带了php,好像是5.3.8,版本比较落后,不过这不碍事,因为以前我都是通过php-osx by Liip来管理php,所以不担心版本问题。不过php-osx by Liip好像没有fmp相关的配置,这样我我要和nginx一起用的话就相对比较麻烦了,那我只能选择其他方案了
安装mysql:这个就没有什么好疑问的了,目前我肯定不会去用pgsql,毕竟没接触过,需要有学习成本的,所以我在这篇纪录中把关于pgsql的部分都去掉了
1.2、那该如何安装:
既然我否定了系统自带的环境,那么就要通过别的方式去安装了,比如说手动编译。如果是手动编译的话,那么就会遇到下面几个问题:
编译费事,php依赖那么多程序,一个个安装,太累!
如果以后更新怎么办?灾难!!
不过好在mac下有自己的第三方管理程序:homebrew,而且相对而言我觉得他可能在某些方面更优越于linux下的apt-get、yum。如果通过homebrew来安装、管理运行环境的话,至少可以解决我几个问题:
安装问题,我不用繁琐的去安装依赖程序
升级问题,只需要brew update一次升级所有程序
版本问题,homebrew版本更新比较及时,而apt-get、yum来说,今年用的基本是几年前的稳定版本了
OK,下面的安装都是基于 homebrew,如果不熟悉或者还没安装有 homebrew 的话,可以查看这篇关于:Mac开发者利器-Homebrew介绍及安装。
二、安装nginx
2.1、安装:
用 brew 一键安装 nignx:
1
brew install nginx
如果需要安装其他 nginx 的版本,可以 “brew edit nginx” 打开修改 nginx 的安装信息包 formula,默认会用 vi 打开,在文件开头处修改 nginx 相应版本的下载地址就行。
2.2、配置
brew 执行完后,nginx 就安装好了。可以用以下指令对 nginx 进行操作:

复制代码 代码如下:

#打开 nginx
sudo nginx
 

#重新加载|重启|停止|退出 nginx
nginx -s reload|reopen|stop|quit
打开 nginx 后,默认的访问端口 8080,如果要改为常用的 80 端口,则要修改 “/usr/local/etc/nginx/nginx.conf” 下监听(listen)端口值。
默认的文件访问目录(root)是 “/usr/local/Cellar/nginx/1.4.2/html”(这里的1.4.2是安装的nginx的版本,文件夹名以安装的nginx版本为准)。
2.3、把 nginx 设置为开机启动运行:

复制代码 代码如下:

mkdir -p ~/Library/LaunchAgents/

cp /usr/local/Cellar/nginx/1.4.2/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

不过试了一下,不是超级用户登陆,而是普通用户登陆,并且监听的端口在1024以下的(例如把默认的8080端口改为了80端口),nginx 开机是启动不了。因此,要 nginx 开机启动的话,需要给予它管理员权限:

复制代码 代码如下:

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

三、安装mysql
3.1、安装:

复制代码 代码如下:

brew install mysql

homebrew安装的版本同样是当前最新的稳定版,安装的过程比较简单,不过初始化就相对麻烦很多了,这里我失败了很多次。
3.2、配置:
3.2.1、初始化
初始安装 mysql 的一些配置数据库(例如:information_schema、mysql)

复制代码 代码如下:

sudo mysql_install_db \
--verbose --user=`whoami` \
--basedir="$(brew --prefix mysql)" \
--datadir=/usr/local/var/mysql \
--tmpdir=/tmp \
--explicit_defaults_for_timestamp

这里我遇到了两个问题,过程都没纪录,这里简单提下解决方案:
系统建议我添加“–explicit_defaults_for_timestamp”;
安装过程中会遇到几个error,说是db的几个文件不存在;
网上搜索了下,大多是建议将/usr/local/var/mysql这个目录修改下权限;
我操作后发现可能不是这样的,造成这个问题在于我在之前操作遇到了错误中止了,生成了一个不完整var目录,所以每次安装失败我就删除以下文件,重新初始化就好了

复制代码 代码如下:

sudo rm /usr/local/opt/mysql/my.cnf
sudo rm -R /usr/local/var/mysql/

待安装完毕后,会出现一大段mysql相关信息,运行下面的命令启动mysql

复制代码 代码如下:

/usr/local/opt/mysql/bin/mysqld_safe &

执行完后,就可以在终端里运行 “mysql”,直接进入mysql数据库里。对,不用输入密码,可以直接连接,初始默认是可以匿名访问的。
3.2.2、修改密码
超级用户 “root” 也是没设密码,要设密码的话可以执行下面指令

复制代码 代码如下:

/usr/local/opt/mysql/bin/mysqladmin -u root password 'new-password'

现在访问 mysql 还是不用密码就可以连接,如果要设置一些登陆密码的安全访问限制,则需执行下面的 mysql安全安装指令

复制代码 代码如下:

/usr/local/opt/mysql/bin/mysql_secure_installation

主要是设置修改root密码(设置过了可以不用设置,略过)、删除匿名访问、删除root网络访问、删除test数据库。指令执行完后,登陆mysql就需要密码验证了

复制代码 代码如下:

mysql -u root -p

3.3、开机启动mysql

复制代码 代码如下:

mkdir -p ~/Library/LaunchAgents/

cp /usr/local/Cellar/mysql/5.6.13/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

至此,mysql安装完毕。
四、安装php、php-fpm…
4.1、安装
Mac是预装了php,不过很多扩展都没安装,目测最多只能在终端里执行下php指令,所以我选择重新安装php。由于 brew 默认是没有 php 安装,所以要使用 “brew tap” 来安装 brew 的第三方程序包,这里使用 josegonzalez 的php安装包,具体操作如下:

复制代码 代码如下:

brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php

执行完后,就可以用 brew 安装php了。这里php有几个版本可以安装,具体可以执行 “brew search php” 查看一下有什么php版本可以安装,一般会有“php52、php53、php54、php55”版本,我安装的是最新的php5.5版本。由于PHP5.5版本已经内嵌了 FPM(FastCGI Process Manager),在安装选项里标明就行,本人 php 的安装配置指令如下:

复制代码 代码如下:

sudo brew install php55 \
--with-debug \
--with-fpm \
--with-gmp \
--with-homebrew-openssl \
--with-imap --with-intl \
--with-libmysql \
--without-bz2 \
--without-mysql \
--without-pcntl \
--without-pear

更多的安装选项可以通过 “brew options php55″ 查看。
提示:–with-cgi不能和–with-fpm一起安装,互相冲突
指令执行完后,php 跟 php-fpm 就安装好了。
4.2、配置
由于是重装php,之前系统预装的php还没卸载,因此在终端调用php时,还是以之前系统的php版本做解析,所以这里需要修改path,指定 php 的解析路径。在~/.bashrc(没有则创建)最后加入一行:

复制代码 代码如下:

export PATH="$(brew --prefix php54)/bin:$PATH"
[html]
[code]
source ./.profile

不存在这个文件的朋友请参照这片文章进行配置:Mac系统终端命令行不执行命令 总出现command not found解决方法
OK,php-fpm安装完成。
要修改配置 php 或者 php-fpm 的话,可以修改 “/usr/local/etc/php/5.5/php.ini” 、 “/usr/local/etc/php/5.5/php-fpm.conf”。
详细配置方法可以参照相关资料:
php-fpm 启动参数及重要配置详解
Linux平滑编译升级php至5.5.0
启动 php-fpm 的话就直接在终端里执行 “php-fpm”,默认打开 php-fpm 会显示一个状态 shell 出来,也可以把 php-fpm 的配置文件里的 “daemonize = no” 改为 “daemonize = yes”,就会以后台守护进程的方式启动,对于刚修改的配置文件,可以执行 “php-fpm -t” 来检测配置有没有问题。
4.3、开机启动
开机启动 php-fpm(下面的 5.5.3 是当前安装 php 的具体版本号):

复制代码 代码如下:

mkdir -p ~/Library/LaunchAgents/

cp /usr/local/Cellar/php54/5.5.3/homebrew-php.josegonzalez.php55.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php55.plist

为了方便,写了个启动、关闭、重启 php-fpm 的 shell 脚本:

复制代码 代码如下:

#!/bin/sh

param=$1

start()
{
    fpms=`ps aux | grep -i "php-fpm" | grep -v grep | awk '{print $2}'`
    if [ ! -n "$fpms" ]; then
        php-fpm
        echo "PHP-FPM Start"
    else
        echo "PHP-FPM Already Start"
    fi
}

stop()
{
    fpms=`ps aux | grep -i "php-fpm" | grep -v grep | awk '{print $2}'`
    echo $fpms | xargs kill -9

for pid in $fpms; do
        if echo $pid | egrep -q '^[0-9]+$'; then
            echo "PHP-FPM Pid $pid Kill"
        else
            echo "$pid IS Not A PHP-FPM Pid"
        fi
    done
}

case $param in
    'start')
        start;;
    'stop')
        stop;;
    'restart')
        stop
        start;;
    *)
        echo "Usage: ./phpfpm.sh start|stop|restart";;
esac

五、设置 nginx 的 php-fpm 配置
在server块中添加解析文件类型“index index.html index.htm index.php;”

复制代码 代码如下:

server {
        listen       80;
        server_name  localhost;
        index index.html index.htm index.php;
        ......
}

打开 nginx 默认注释掉的php location设置,修改如下(具体配置参数,例如路径,这里以我本地安装为准):

复制代码 代码如下:

location ~ .*\.(php|php5)?$ {
        #fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  /Library/WebServer/public_html$fastcgi_script_name;
        include /usr/local/etc/nginx/fastcgi_params;
        #include fcgi.conf;
}

修改目录用户、用户组:

复制代码 代码如下:

sudo chown www:www /Library/WebServer/public_html

OK,这样就可以在访问目录下(默认是/Library/WebServer/public_html)执行 php 文件了。嗯,赶快输出一下 “phpinfo()” 吧~

复制代码 代码如下:

<?php
phpinfo();

您可能感兴趣的文章:

  • mac 下 安装nginx的方法小结

mac下安装nginx和php相关推荐

  1. mac下安装nginx

    前言:nginx的强大不必多言,所以很自然很应当的我也来玩一玩.但是网上许多安装和配置都太那啥了,在这里真的想说一句带有引战性质但我真的无意引战的言论:现在的好多程序员的文笔实在是烂,写的教程让人着实 ...

  2. brew install php55redis,Mac下安装LNMP环境

    Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容 ...

  3. mac下安装python3

    mac下安装python3 1.先用brew search命令查看 brew search python3 结果如下所示: ==> Formulae boost-python3 python3 ...

  4. 苹果显示服务器错误403,mac下配置nginx报403错误的解决方法

    今天在mac下配置nginx,一直提示403错误,虽然最终是解决了,过程各种苦逼,在这里记录下是怎么处理403报错的. 安装 通过brew命令安装:brew install nginx 配置 配置目录 ...

  5. Linux环境下安装nginx

    大家好,本篇文章主要讲的是Linux环境下安装nginx教程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览 1.安装所需环境 //安装gcc yum install gcc-c ...

  6. Mac 下安装 ruby 环境解决 brew 安装 yarn 问题

    Mac 下安装 ruby 环境解决 brew 安装 yarn 问题 参考文章: (1)Mac 下安装 ruby 环境解决 brew 安装 yarn 问题 (2)https://www.cnblogs. ...

  7. linux系统安装nginx步骤,虚拟机(linux)下安装nginx的步骤教程

    原标题:虚拟机(linux)下安装nginx的步骤教程 一.虚拟机准备: [root@localhost 桌面]# vi /etc/sysconfig/network-s/ifcfg-eth0 DEV ...

  8. Ubuntu下安装Nginx,PHP5(及PHP-FPM),MySQL

     Ubuntu下安装Nginx,PHP5(及PHP-FPM),MySQL 2012-09-15 11:12:31 标签:php mysql ubuntu nginx php-fpm 原创作品,允许转载 ...

  9. 在Mac下安装使用OpenCV

    教导大家如何在Mac下安装使用OpenCV, 包括使用编译器,Xcode,和Eclipse的开发方法 系统环境:ML10.7.5  cmake版本:2.8.10 XCode版本:4.5.1  Open ...

最新文章

  1. 运用Smark.SocketAsyncs方便实现数据交互服务
  2. python【力扣LeetCode算法题库】58-最后一个单词的长度
  3. 我是SQL小菜鸟---SQL全局临时表防止用户重复登录
  4. 8款最受欢迎的HTML5/CSS3应用及代码
  5. Django 后台带有字典的列表数据与页面js交互
  6. python count函数用法 comm_Python学习第六天课后练习案例 (主要针对的内容是python函数的定义和使用)...
  7. 关于ISA2006引起网速慢或间歇性断网的问题的解决方法
  8. 浅析 C++智能指针和 enable_shared_from_this 机制
  9. L1-010 比较大小 (10 分)—团体程序设计天梯赛
  10. 通过Atomsk、Ovito和lammps进行高熵合金的多晶体建模及渲染
  11. MyEclipse10破解方法
  12. 3轴陀螺仪传感器和3轴加速度传感器的工作原理
  13. Scala教程-详细全部
  14. 腾讯面试总结——iOS开发
  15. zencart php5.6环境,BlueHost主机一键安装ZenCart图文教程
  16. Rose Blumki
  17. Ruby On Rails 阿里云UBUNTU实例
  18. 说说开源中国社区的愚人节
  19. 反骨之Java是如何解决并发中的可见性问题的
  20. 怒刷python作业(西北工业大学cpSkill平台)

热门文章

  1. mardown 标题带数字_标题中带有数字的故事更成功吗?
  2. Matplotlib中的“ plt”和“ ax”到底是什么?
  3. leetcode 721. 账户合并(并查集)
  4. ios 动态化视图_如何在iOS应用中使高度收集视图动态化
  5. java clex 中的 IloLPMatrix
  6. Chrome浏览器调试踩坑
  7. 记录一次nginx配置vhost的小bug
  8. Struts2学习笔记《二》
  9. python spark 配置
  10. Python 文件读和写