第一步:关闭Apache及开机启动

要使用nginx,最好停用mac中自带的Apache。停用很简单:

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

第二步:安装homebrew

homebrew是mac下的包管理器,类似于linux下的yumapt。使用homebrew安装nginxphpmysql要比手动安装方便很多。官网地址:http://brew.sh/index_zh-cn.html

安装:

sudo ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

第三步:安装nginx

安装:brew install nginx

启动:sudo nginx

停止:sudo nginx -s quit

配置nginx:

/usr/local/var/log/nginx/下,新建文件:access.logerror.log (如果安装时已经创建就无需再创建)

配置/usr/local/etc/nginx/nginx.conf

#user  nobody;
worker_processes 1; error_log /usr/local/var/log/nginx/error.log; //注 此处需指定绝对路径 默认为相对路径 pid /usr/local/var/run/nginx.pid; //注 此处需指定绝对路径 默认为相对路径(若不设置绝对路径容易出现nginx.pid丢失,导致nginx无法启动或无法关闭) events {
worker_connections 1024;
} http {
include mime.types;
default_type application/octet-stream;
access_log /usr/local/var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65; #
include conf.d/*.conf;
}

如需添加server可进行如下配置:

在 /usr/local/etc/nginx/nginx.conf 里 http 配置里添加

 server {
listen 80 default_server;
server_name localhost; #域名,自定义
root 网站根目录; #自定义,如/var/www
index index.html index.htm
}

测试:在你设定的根目录下(例如/var/www/),新建一个静态页index.html,启动nginx,在浏览器中输入localhost,成功看到静态页内容。

第四步:安装php

首先,在brew中添加php的源:

brew tap josegonzalez/php
brew tap homebrew/dupes

查看已添加的源:brew tap

搜索可安装的php:brew search php

安装最多的是php55,安装前首先查看一下安装相关参数的说明:

brew search php55

安装:

brew install php55 --with-fpm, --with-enchant, --with-debug

由于国内网络限制可能其中某些包需要翻墙下载安装。

成功安装后,启动php-fpm:(php-fpm相当于一个接口,nginx和php之间通信通过php-fpm这个东西)

launchctl load -w /usr/local/opt/php55/homebrew.mxcl.php55.plist

停止php-fpm:

launchctl unload -w /usr/local/opt/php55/homebrew.mxcl.php55.plist

设置快捷指令:打开~/.bash_profile,添加

alias php55.start=launchctl\ load\ -w\ /usr/local/opt/php55/homebrew.mxcl.php55.plist
alias php55.stop=launchctl\ unload\ -w\ /usr/local/opt/php55/homebrew.mxcl.php55.plist

快捷指令设置之后,重启终端,就可以用php55.startphp55.stop来启动和停止php-fpm了。

重新配置nginx:配置文件/usr/local/etc/nginx/nginx.conf

  server {
listen 80 default_server;
server_name localhost; #域名,自定义
root 网站根目录; #自定义,如/var/www
index index.html index.htm # pass the PHP scripts to FastCGI slinerver listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME 网站根目录$fastcgi_script_name; #如/var/www$fastcgi_script_name
include fastcgi_params;
fastcgi_intercept_errors on;
}
}

测试:重启nginx,启动php-fpm后,在网站根目录下新建文件index.php,设置index.php的内容:<?php phpinfo(); ?>。然后浏览器中输入:localhost/index.php,看到php信息,成功。

备注:

安装时所遇到的问题:

1、无法启动、无法关闭nginx,出现nginx.pid丢失。

/usr/local/etc/nginx/nginx.conf配置中 error及pid应设置成绝对路径

error_log  /usr/local/var/log/nginx/error.log; //注 此处需指定绝对路径 默认为相对路径

pid        /usr/local/var/run/nginx.pid; //注 此处需指定绝对路径 默认为相对路径(若不设置绝对路径容易出现nginx.pid丢失,导致nginx无法启动或无法关闭)

设置完成后,再重启下nginx,如果还是不行,重启电脑。

大部分内容转自:http://segmentfault.com/a/1190000002556269

mac搭建nginx与php的更多相关文章

  1. Mac搭建nginx+rtmp服务器

    nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,本人在网上整理了安装流程,分享给大家并且作备忘. 一.安装Homebrow 已经安装了brow的可以直接跳过这 ...

  2. mac搭建nginx

    0.介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler ...

  3. Mac使用nginx+rtmp服务器

    一.安装Homebrow 已经安装了brow的可以直接跳过这一步.执行命令 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/H ...

  4. 在阿里云服务器(ECS)上从零开始搭建nginx服务器

    本文介绍了如何在阿里云服务器上从零开始搭建nginx服务器.阿里云服务器(ECS)相信大家都不陌生,感兴趣的同学可以到http://www.aliyun.com/product/ecs去购买,或到体验 ...

  5. mac搭配Nginx服务器常见问题

    推流服务器主要是使用了开源的nginx和rtmp模块,网上也有很多资料,不过对有些可能出现的问题没有很好的总结. 安装brew 使用Mac进行开发很久的老司机应该对这个工具很熟悉了.brew是一个第三 ...

  6. 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!

    写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...

  7. ELK+redis搭建nginx日志分析平台

    ELK+redis搭建nginx日志分析平台发表于 2015-08-19   |   分类于 Linux/Unix   |  ELK简介ELKStack即Elasticsearch + Logstas ...

  8. 基于ubuntu 14搭建nginx+php+mysql环境

    基于最新的Ubuntu 14.04(2014年9月)搭建nginx.php.mysql环境, 以下全部命令行操作: 1 由于需要大量的权限操作,方便起见临时提升权限,使用root账号 sudo su ...

  9. Win7搭建nginx+php+mysql开发环境以及websocket聊天实例测试

    Win7搭建nginx+php+mysql开发环境以及websocket聊天实例测试一.下载相关安装包 1.下载nginx最新版本(nginx1.3.13版之后才支持websocket协议) 下载地址 ...

随机推荐

  1. Android学习资料收集

    1.Android 学习之路 http://stormzhang.com/android/2014/07/07/learn-android-from-rookie/

  2. 《jQuery知识点总结》(一)

    write less do more写更少的代码实现更多的功能DOM:document object model (文件对象模型)选择器(选择元素的对象或者节点)id 选择器 $("#id& ...

  3. C#操作access和SQL server数据库代码实例

    在C#的学习中,操作数据库是比较常用的技术,而access和sql server 数据库的操作却有着不同.那么,有哪些不同呢? 首先,需要引用不同的类.因为有着不同的数据引擎. access:usin ...

  4. nodejs实现一个简单的爬虫

    nodejs是js语言,实现一个爬出非常的方便. 步骤 1. 使用nodejs的request模块,获取目标页面的html代码:https://github.com/request/request 2 ...

  5. Unity3D 接完GVR SDk后如何插入自己的java代码

    1.用Eclipse创建一个Android Application Project 2.用压缩软件打开gvr_android_common.aar和unitygvractivity.aar,分别把里面 ...

  6. C/C++: C++位域和内存对齐问题

    1. 位域: 1. 在C中,位域可以写成这样(注:位域的数据类型一律用无符号的,纪律性). struct bitmap { unsigned a : ; unsigned b : ; unsigned ...

  7. LeetCode 64 Minimum Path Sum

    Problem: Given a m x n grid filled with non-negative numbers, find a path from top left to bottom ri ...

  8. python 装饰器

    #!/usr/bin/env python3 #-*-encoding:utf-8-*- def w3(*args, **kwargs): ') def w1(): def ww1(func): de ...

  9. HTML5 绘制简单圆形 loading. . . .

    现在有很多的 loading 组件 什么js 等等 闲来没事就写一个 H5的 loading  有很多的Loading 是一张张图片 js 控制的  有了 canvas的 出现 你就可以体验不同之处了 ...

  10. UTF-8编码规则(转)

    from:http://www.cnblogs.com/chenwenbiao/archive/2011/08/11/2134503.html UTF-8是Unicode的一种实现方式,也就是它的字节 ...