在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 相关文章推荐
php缓存技术介绍
Nov 25 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
Jul 04 PHP
基于PHP5魔术常量与魔术方法的详解
Jun 13 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 PHP
php array_merge函数使用需要注意的一个问题
Mar 30 PHP
PHP限制HTML内容中图片必须是本站的方法
Jun 16 PHP
详解 PHP加密解密字符串函数附源码下载
Dec 18 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
Dec 25 PHP
简单实现PHP留言板功能
Dec 21 PHP
PHP面向对象程序设计重载(overloading)操作详解
Jun 13 PHP
laravel http 自定义公共验证和响应的方法
Sep 29 PHP
laravel 实现登陆后返回登陆前的页面方法
Oct 03 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
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
原生JS中slice()方法和splice()区别
2017/03/06 Javascript
vue的一个分页组件的示例代码
2017/12/25 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
手把手教您实现react异步加载高阶组件
2020/04/07 Javascript
python队列queue模块详解
2018/04/27 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
会计毕业生自我鉴定
2013/11/04 职场文书
运动会入场词60字
2014/02/15 职场文书
网络管理专业求职信
2014/03/15 职场文书
教师演讲稿开场白
2014/08/25 职场文书
财会专业大学生求职信
2014/09/26 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
2015年材料员工作总结
2015/04/30 职场文书
西安事变观后感
2015/06/12 职场文书
同意落户证明
2015/06/19 职场文书
运动会闭幕式主持词
2015/07/01 职场文书
教育读书笔记
2015/07/02 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python