在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网上调查系统
Oct 09 PHP
PHP引用符&amp;的用法详细解析
Aug 22 PHP
php过滤XSS攻击的函数
Nov 12 PHP
PHP判断远程图片是否存在的几种方法
May 04 PHP
PHP定时任务延缓执行的实现
Oct 08 PHP
让ThinkPHP支持大小写url地址访问的方法
Oct 31 PHP
一个比较不错的PHP日历类分享
Nov 18 PHP
php使用function_exists判断函数可用的方法
Nov 19 PHP
解读PHP的Yii框架中请求与响应的处理流程
Mar 17 PHP
php压缩文件夹最新版
Jul 18 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 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 xml文件操作实现代码(二)
2009/03/20 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
js打开windows上的可执行文件示例
2014/05/27 Javascript
js选项卡的实现方法
2015/02/09 Javascript
JavaScript中原型和原型链详解
2015/02/11 Javascript
javascript常用的方法分享
2015/07/01 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
2017/12/26 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
2018/09/17 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
python对象与json相互转换的方法
2019/05/07 Python
python实现简单五子棋游戏
2019/06/18 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
python实现二分类的卡方分箱示例
2019/11/22 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
护士自荐信怎么写
2013/10/18 职场文书
学生会主席事迹材料
2014/01/28 职场文书
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS