在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 相关文章推荐
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Aug 26 PHP
PHP编程风格规范分享
Jan 15 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
php下Memcached入门实例解析
Jan 05 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
PHP中预定义的6种接口介绍
May 12 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
Oct 26 PHP
PHP共享内存用法实例分析
Feb 12 PHP
分享一个漂亮的php验证码类
Sep 29 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
php读取本地json文件的实例
Mar 07 PHP
php面向对象基础详解【星际争霸游戏案例】
Jan 23 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 删除指定文件夹的实例讲解
2017/07/25 PHP
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
原创javascript小游戏实现代码
2010/08/19 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
bootstrap改变按钮加载状态
2014/12/01 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
JS抛物线动画实例制作
2018/02/24 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
Python机器学习之决策树算法实例详解
2017/12/06 Python
Python 变量类型详解
2018/10/10 Python
python 处理string到hex脚本的方法
2018/10/26 Python
python实现祝福弹窗效果
2019/04/07 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
python对常见数据类型的遍历解析
2019/08/27 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
python对文件的操作方法汇总
2020/02/28 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
CSS3制作苹果风格键盘特效
2015/02/26 HTML / CSS
远程教育心得体会
2014/01/03 职场文书
网络工程专业自荐信范文
2014/03/16 职场文书
爱护公共设施标语
2014/06/24 职场文书
爱护草坪标语
2014/06/24 职场文书
领导参观欢迎词
2015/01/26 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
解决golang post文件时Content-Type出现的问题
2021/05/02 Golang
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
mysql的Buffer Pool存储及原理
2022/04/02 MySQL
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python