在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程


Posted in PHP onDecember 21, 2015

安装homebrew

homebrew是mac下非常好用的包管理器,会自动安装相关的依赖包,将你从繁琐的软件依赖安装中解放出来。
安装homebrew也非常简单,只要在终端中输入:

<!-- lang: shell -->
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

homebrew的常用命令:

<!-- lang: shell -->
brew update #更新可安装包的最新信息,建议每次安装前都运行下
brew search pkg_name #搜索相关的包信息
brew install pkg_name #安装包

想了解更多地信息,请参看homebrew

安装nginx

安装

<!-- lang: shell -->
brew search nginx
brew install nginx

当前的最新版本是1.4.4。

配置

<!-- lang: shell -->
cd /usr/local/etc/nginx/
mkdir conf.d
vim nginx.conf
vim ./conf.d/default.conf

nginx.conf内容,

<!-- lang: shell -->
worker_processes 1; 

error_log    /usr/local/var/log/nginx/error.log warn;

pid    /usr/local/var/run/nginx.pid;

events {
  worker_connections 256;
}

http {
  include    mime.types;
  default_type application/octet-stream;

  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';

  access_log   /usr/local/var/log/nginx/access.log main;
  port_in_redirect off;
  sendfile    on; 
  keepalive_timeout 65; 

  include /usr/local/etc/nginx/conf.d/*.conf;
}

default.conf文件内容,

<!-- lang: shell -->
server {
  listen    8080;
  server_name localhost;

  root /Users/user_name/nginx_sites/; # 该项要修改为你准备存放相关网页的路径

  location / { 
    index index.php;
    autoindex on; 
  }  

  #proxy the php scripts to php-fpm 
  location ~ \.php$ {
    include /usr/local/etc/nginx/fastcgi.conf;
    fastcgi_intercept_errors on; 
    fastcgi_pass  127.0.0.1:9000; 
  }  

}

安装php-fpm

Mac OSX 10.9以后的系统自带了PHP、php-fpm,省去了安装php-fpm的麻烦。
这里需要简单地修改下php-fpm的配置,否则运行php-fpm会报错。

<!-- lang: shell -->
sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf
vim /private/etc/php-fpm.conf

修改php-fpm.conf文件中的error_log项,默认该项被注释掉,这里需要去注释并且修改为error_log = /usr/local/var/log/php-fpm.log。如果不修改该值,运行php-fpm的时候会提示log文件输出路径不存在的错误。

安装mysql

安装

<!-- lang: shell -->
brew install mysql

常用命令

<!-- lang: shell -->
mysql.server start #启动mysql服务
mysql.server stop #关闭mysql服务

配置
在终端运行mysql_secure_installation脚本,该脚本会一步步提示你设置一系列安全性相关的参数,包括:设置root密码,关闭匿名访问,不允许root用户远程访问,移除test数据库。当然运行该脚本前记得先启动mysql服务。

测试nginx服务

在之前nginx配置文件default.conf中设置的root项对应的文件夹下创建测试文件index.php:

<!-- ~/nginx_sites/index.php -->
<?php phpinfo(); ?>

启动nginx服务,

sudo nginx;

修改配置文件,重启nginx服务,

sudo nginx -s reload

启动php服务,

sudo php-fpm;

在浏览器地址栏中输入localhost:8080,如果配置正确地话,应该能看到PHP相关信息的页面。

PHP 相关文章推荐
使用 php4 加速 web 传输
Oct 09 PHP
PHP 自定义错误处理函数trigger_error()
Mar 26 PHP
PHP flush()与ob_flush()的区别详解
Jun 03 PHP
PHP设计模式之代理模式的深入解析
Jun 13 PHP
PHP判断远程图片或文件是否存在的实现代码
Feb 20 PHP
php调用c接口无错版介绍
Mar 11 PHP
yii2.0实现pathinfo的形式访问的配置方法
Apr 06 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
May 13 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
Aug 10 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
Dec 12 PHP
php回调函数处理数组操作示例
Apr 13 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
Dec 21 #PHP
反射调用private方法实践(php、java)
Dec 21 #PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 #PHP
变量在 PHP7 内部的实现(二)
Dec 21 #PHP
变量在 PHP7 内部的实现(一)
Dec 21 #PHP
php阿拉伯数字转中文人民币大写
Dec 21 #PHP
详解PHP执行定时任务的实现思路
Dec 21 #PHP
You might like
PHP 向右侧拉菜单实现代码,测试使用中
2009/11/03 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
js获取class的所有元素
2013/03/28 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
使用PYTHON接收多播数据的代码
2012/03/01 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
Python随机生成带特殊字符的密码
2016/03/02 Python
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
python编程使用协程并发的优缺点
2018/09/20 Python
python如何调用java类
2020/07/05 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
python logging模块的使用详解
2020/10/23 Python
html5使用canvas画空心圆与实心圆
2014/12/15 HTML / CSS
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
会计电算化应届生求职信
2013/11/03 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
司机工作自我鉴定
2014/09/19 职场文书
安全承诺书
2015/01/19 职场文书
给老婆的检讨书
2015/01/27 职场文书