在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 session常见问题集锦及解决办法总结
Mar 18 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
May 29 PHP
PHP删除HTMl标签的三种解决方法
Jun 30 PHP
PHP父类调用子类方法的代码例子
Apr 09 PHP
PHP5.3与5.5废弃与过期函数整理汇总
Jul 10 PHP
Yii框架关联查询with用法分析
Dec 02 PHP
php返回字符串中所有单词的方法
Mar 09 PHP
thinkPHP中多维数组的遍历方法
Jan 09 PHP
PHP实现的随机IP函数【国内IP段】
Jul 20 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP _construct()函数讲解
Feb 03 PHP
Laravel框架Auth用户认证操作实例分析
Sep 29 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 PDO函数库详解
2010/04/27 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
javascript web对话框与弹出窗口
2009/02/22 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
jQuery简单动画变换效果实例分析
2016/07/04 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
nodejs后台集成ueditor富文本编辑器的实例
2017/07/11 NodeJs
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
小程序云开发获取不到数据库记录的解决方法
2019/05/18 Javascript
Python+Wordpress制作小说站
2017/04/14 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
回调函数的意义以及python实现实例
2017/06/20 Python
python自动化之Ansible的安装教程
2019/06/13 Python
使用Python检测文章抄袭及去重算法原理解析
2019/06/14 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
廉价航班、机票和酒店:JustFly
2018/02/07 全球购物
采购助理岗位职责
2014/02/16 职场文书
教师自我剖析材料
2014/09/29 职场文书
销售代理协议书
2014/09/30 职场文书
2015年护士节慰问信
2015/03/23 职场文书
七一晚会主持词
2015/06/29 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
Vue的生命周期一起来看看
2022/02/24 Vue.js
实例详解Python的进程,线程和协程
2022/03/13 Python
windows server2008 开启端口的实现方法
2022/06/25 Servers