在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中防止直接访问或查看或下载config.php文件的方法
Jul 07 PHP
PHP中header和session_start前不能有输出原因分析
Jan 11 PHP
利用php绘制饼状图的实现代码
Jun 07 PHP
php判断页面是否是微信打开的示例(微信打开网页)
Apr 25 PHP
PHP实现的增强性mhash函数
May 27 PHP
WordPress中制作导航菜单的PHP核心方法讲解
Dec 11 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
360搜索引擎自动收录php改写方案
Apr 28 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 PHP
laravel框架实现后台登录、退出功能示例
Oct 31 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 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提交后跳转
2013/06/23 PHP
php中heredoc与nowdoc介绍
2014/12/25 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
laravel 修改记住我功能的cookie保存时间的方法
2019/10/14 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
扩展String功能方法
2006/09/22 Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
属于你的jQuery提示框(Tip)插件
2016/01/20 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
用python删除java文件头上版权信息的方法
2014/07/31 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
Python自定义函数计算给定日期是该年第几天的方法示例
2019/05/30 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
领导干部查摆“四风”问题自我剖析材料思想汇报
2014/10/05 职场文书
软弱涣散基层党组织整改方案
2014/10/25 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
Javascript设计模式之原型模式详细
2021/10/05 Javascript
Golang 结构体数据集合
2022/04/22 Golang