在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 相关文章推荐
我常用的几个类
Oct 09 PHP
用PHP调用Oracle存储过程的方法
Sep 12 PHP
ecshop 订单确认中显示省市地址信息的方法
Mar 15 PHP
PHP 开发环境配置(Zend Server安装)
Apr 28 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
Jun 21 PHP
php中url传递中文字符,特殊危险字符的解决方法
Aug 17 PHP
php session实现多级目录存放实现代码
Feb 03 PHP
php验证身份证号码正确性的函数
Jul 20 PHP
利用PHP生成静态html页面的原理
Sep 30 PHP
PHP编程求最大公约数与最小公倍数的方法示例
May 29 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
PHP copy函数使用案例代码解析
Sep 01 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对称加密算法示例
2014/05/07 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
简单谈谈关于Angular Cli打包的事
2017/09/05 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
2020/05/12 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
理解Python中的With语句
2016/03/18 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
Python使用迭代器捕获Generator返回值的方法
2017/04/05 Python
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
俄罗斯女装店:12storeez
2019/10/25 全球购物
信息专业大学生自我评价分享
2014/01/17 职场文书
前处理组长岗位职责
2014/03/01 职场文书
主持人演讲稿
2014/05/13 职场文书
宣传普通话标语
2014/06/27 职场文书
法定代表人身份证明书
2014/09/10 职场文书
分居协议书范本(律师见证版)
2014/11/26 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
网络研修心得体会
2016/01/08 职场文书
Python学习开发之图形用户界面详解
2021/08/23 Python
MySQL数据库简介与基本操作
2022/05/30 MySQL
MySql数据库触发器使用教程
2022/06/01 MySQL
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS