在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+MYSQL的文章管理系统(一)
Oct 09 PHP
提升PHP速度全攻略
Oct 09 PHP
生成静态页面的php函数,php爱好者站推荐
Mar 19 PHP
PHP递归删除目录几个代码实例
Apr 21 PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 PHP
PHP魔术方法的使用示例
Jun 23 PHP
php实现图片上传并进行替换操作
Mar 15 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
php用xpath解析html的代码实例讲解
Feb 14 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
Oct 11 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
Apr 23 PHP
PHP实现简易用户登录系统
Jul 10 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
浅析SVN常见问题及解决方法
2013/06/21 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
JS文本框默认值处理详解
2013/07/10 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
关于JavaScript数组你所不知道的3件事
2016/08/24 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
Canvas实现微信红包照片效果
2018/08/21 Javascript
JAVA面试题 static关键字详解
2019/07/16 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
python查询mysql中文乱码问题
2014/11/09 Python
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
详解Python中for循环是如何工作的
2017/06/30 Python
Python Flask框架扩展操作示例
2019/05/03 Python
python之拟合的实现
2019/07/19 Python
python中下标和切片的使用方法解析
2019/08/27 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
html5 冒号分隔符对齐的实现
2019/07/31 HTML / CSS
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
英国森林假期:Forest Holidays
2021/01/01 全球购物
秘书专业自荐信范文
2013/12/26 职场文书
学生会主席就职演讲稿
2014/01/14 职场文书
运动会通讯稿400字
2014/01/28 职场文书
教代会闭幕词
2015/01/28 职场文书
2015年个人工作总结报告
2015/04/25 职场文书