在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.MVC的模板标签系统(一)
Sep 05 PHP
PHP 和 XML: 使用expat函数(三)
Oct 09 PHP
提高PHP编程效率的53个要点(经验小结)
Sep 04 PHP
PHP通过session id 实现session共享和登录验证的代码
Jun 03 PHP
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
Jul 15 PHP
PHP使用Mysql事务实例解析
Sep 08 PHP
关于Laravel Route重定向的一个注意点
Jan 16 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
Nov 06 PHP
PDO::commit讲解
Jan 27 PHP
PDO实现学生管理系统
Mar 21 PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 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/10 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
nodejs简单实现操作arduino
2016/09/25 NodeJs
详解React-Todos入门例子
2016/11/08 Javascript
js面向对象编程总结
2017/02/16 Javascript
原生JS实现垂直手风琴效果
2017/02/19 Javascript
js实现1,2,3,5数字按照概率生成
2017/09/12 Javascript
vue debug 二种方法
2018/09/16 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
Python实现ssh批量登录并执行命令
2016/10/25 Python
Python进阶_关于命名空间与作用域(详解)
2017/05/29 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
解决python flask中config配置管理的问题
2019/07/26 Python
python实现图像拼接功能
2020/03/23 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
管理学专业个人求职信范文
2013/12/13 职场文书
大学生秋游活动方案
2014/02/17 职场文书
经典团队口号
2014/06/06 职场文书
爱国主义电影观后感
2015/06/18 职场文书
承兑汇票延期证明
2015/06/23 职场文书
中秋节感想
2015/08/10 职场文书
2019年亲子运动会口号
2019/10/11 职场文书