为什么80%的码农都做不了架构师?>>>   

1. 移除 lighttpd

在 Mac OS X 上安装lighttpd 的时候,我使用 launchctl 来实现 lighttpd 的自动启动。现在,只需要 unload 即可。

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.lighttpd.plist

这会立即停止 lighttpd 的运行。接下来,将 homebrew.mxcl.lighttpd.plist 从~/Library/LanuchAgents 目录中移除。否则下次启动系统的时候,lighttpd 又会启动。

2. 配置 OpenResty 环境

2.1 编译和安装

OpenResty 的编译和安装流程,在官网上讲得很清楚,我不再赘述。

在这里我假设 OpenResty 已经安装到默认路径 /usr/local/openresty 。

修改 /usr/local/openresty/nginx/conf/nginx.conf ,将其中的 server 段下的listen 80 改为 listen 8080 。

这是因为 80 端口只能被 root 用户启动。而在本文中我们是使用当前用户启动 nginx 的。

如果 8080 端口也被占用,请自行换成可用端口。

2.2 创建 plist 文件

launchctl 依赖一个 plist 配置文件来工作。我们需要手动创建这个文件。

plist 是一种标准的 xml 格式,这种格式的详细介绍,可以看这里:cocos2d-x中的plist文件格式详解 。

launchctl 对这个配置文件的格式有一些具体的要求,可以查看 launchd.plist 。

我们创建的 ~/Library/LaunchAgents/org.openresty.plist 文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict><key>Label</key><string>org.openresty</string><key>ProgramArguments</key><array><string>/usr/local/openresty/nginx/sbin/nginx</string><string>-p</string><string>/usr/local/openresty/nginx</string></array><key>RunAtLoad</key><true/><key>KeepAlive</key><false/><key>HardResourceLimits</key><dict><key>NumberOfFiles</key><integer>512</integer></dict><key>SoftResourceLimits</key><dict><key>NumberOfFiles</key><integer>512</integer></dict>
</dict>
</plist>

注意其中 Label、Program和ProgramArguments 这三个 Key 是必须存在的。

KeepAlive 这个值建议设置成 false ,除非在 nginx.conf 中设置了 daemon off 。Wayne 在launchctl笔记 中作了解释:

设定nginx登录后自启动后发现,由于缺省情况下是生成子进程后父进程立即退出,导致launchctl在KeepAlive配置的作用下反复启动nginx,产生了很多错误信息,所以在设置守护进程的时候要注意规避这类问题,nginx可以通过设置daemon off;或者去除掉KeepAlive设置来解决。

2.3 载入任务

launchctl load ~/Library/LaunchAgents/org.openresty.plist

这条命令会直接启动 openresty ,下次系统重启的时候,也会自动启动。

2.4 使用 80 端口

既然是自己用,那么使用 8080 总是让人很不爽。要使用 80 端口,也很简单。

首先,将 ~/Library/LaunchAgents/org.openresty.plist 复制到/Library/LaunchDaemons/org.openresty.plist :

cp ~/Library/LaunchAgents/org.openresty.plist /Library/LaunchDaemons/org.openresty.plist

/Library/LaunchDaemons 是给管理员使用的,在用户登录前生效,以 root 身份执行任务。

为什么不复制到 /Library/LaunchAgent 中呢?因为 Wayne 在 launchctl笔记 中提到:

LaunchAgents下的plist都会以当前登录用户的身份load进来……

然后,移除当前的监听:

launchctl unload ~/Library/LaunchAgents/org.openresty.plist
rm ~/Library/LaunchAgents/org.openresty.plist

最后,用 sudo 调用 launchctl:

sudo launchctl load /Library/LaunchDaemons/org.openresty.plist

当然,记得要把 nginx 配置文件中的监听端口改成 80 。

3. 快捷方式

在开发过程中,经常需要重启 nginx 进程。在我的电脑上,有两个 nginx 进程,一个负责正常的 HTTP 服务;一个负责测试 OpenResty 功能。

我写了一个脚本 openresty 用于快速操作 nginx 进程。

#!/bin/bash
sign=${1:-reload}
prefix=${2:-1}if [ "$prefix" = 1 ]; thenprefix='/usr/local/etc/openresty'
elseprefix="$hhl/server"
fiecho "nginx -s $sign -p $prefix"
nginx -s "$sign" -p "$prefix"

在实际使用中,我只需要这样调用就行了:

#!/bin/bash
openresty reload 1
openresty reopen 2

转载于:https://my.oschina.net/surjur/blog/486547

在 OS X 中使用 OpenResty相关推荐

  1. 如何在OS X中打印到PDF文件

    如何在OS X中打印文件到PDF文件? 其实不需要安装任何其他软件,OS X本身支持打印到PDF文件这个功能. 具体操作详见下面文章: Want to save a document or web p ...

  2. iOS和OS X中的bundle

    bundle也可以称之为包(package). 它在iOS和OS X中实际为一个文件夹但却当成单独的文件来对待. 每一个app都有一个bundle,并且你可以通过在xxx.app图标上右击鼠标然后选择 ...

  3. 在Mac OS X中配置Apache + PHP + MySQL

    内容如下: 1. 启动Apache 2. 设置虚拟主机 3. 运行PHP  4. 安装MySQL  5. 使用phpMyAdmin  6. 配置PHP的MCrypt扩展库 7. GD库安装 8. 增加 ...

  4. UART0串口编程(四):UART0串口编程之在UC/OS—II中遭遇的危机

    UART0串口编程之在UC/OS-II中遭遇的危机 一.潜在的危机 1.在uc/os操作系统中设计串口编程时,由于ISR和多个任务并发执行,情况比较复杂.尤其是接收状态为被动状态时,只能靠串行口中断来 ...

  5. cassandra本地连接失败_本地网络发现失败的解决方法连接到OS X中的服务器的问题 | MOS86...

    本地联网通常在Mac上完美无缺,这就是为什么某些用户可能会遇到OS X优胜美地的一些最恶化的问题与网络连接有关.其中一些可能涉及更广泛的连接和Wi-Fi功能问题,以及其他可能影响一般LAN网络功能的能 ...

  6. Mac OS X中MySQL 的配置文件(my.cnf)的位置

    为什么80%的码农都做不了架构师?>>>    在Mac OS X 中默认是没有my.cnf 文件,如果需要对MySql 进行定制,拷贝以下目录中任意一个.cnf 文件.笔者拷贝my ...

  7. Mac OS X 中的脚本语言应用

    http://www.applesupport.com.cn/newshow.asp?id=2442&cid=7 如你所见,Mac OS X 是一套广受程序员喜爱的操作系统,他们之所以如此喜欢 ...

  8. mac 不能连接wi-fi_如何在Mac OS X中查看当前的Wi-Fi连接速度

    mac 不能连接wi-fi Ever since I've been using my new MacBook Air, I've been befuddled by how to do some o ...

  9. mac mail 删除邮件服务器,如何从Mac OS X中的邮件中删除所有电子邮件 | MOS86

    如果您在Mac上使用Mail应用程序,那么您很可能会定期删除您确定为不必要的垃圾邮件,或者根本不需要这些电子邮件.通常这是一个选择性过程,其中特定的电子邮件消息根据需要被删除,但在某些情况下,您可能需 ...

最新文章

  1. 【leetcode】1030. Matrix Cells in Distance Order
  2. 打开高效文本编辑之门_Linux awk之自定义变量与操作符
  3. 数据挖掘与数据化运营实战. 3.8 用户(买家、卖家)分层模型
  4. python项目运行环境_python项目运行环境安装小结
  5. 借助Fargate和EKS,AWS甚至可以实现Cloud-ier和Kuberneties-ier
  6. MySQL的timestamp类型自动更新问题
  7. shell统计游戏活跃用户数之改进过程分析
  8. 整个技术架构结构设计
  9. iyiw oracle_Oracle 单行函数
  10. ad16怎么画弧线_ad16怎么画弧线_板绘是什么?怎么用?
  11. HHL论文第二弹(基本过程)
  12. 统一数据接入实践分享
  13. 结束 oracle 锁 ps -ef|grepp.spid,oracle 解锁表剔除去session 和kill
  14. c语言 表盘指针旋转,请教下,表盘指针图片旋转 ??
  15. 计算机组成原理ACC MQ,计算机组成原理讲案第一章.ppt
  16. pfx证书解析公钥私钥
  17. 天喻信息上市前陷股权纠纷 法院已立案
  18. tcp要点学习-建立连接断开连接
  19. iphone 6s pp助手 越狱
  20. 云服务器https配置和ssl申请

热门文章

  1. HTML和jQuery拆分成两个文件
  2. Google Capture The Flag 2018 (Quals) - Beginner's Quest - Reverse - Firmware
  3. iOS如何在iTunes网站查看并下载APP的dsym文件
  4. openfire 服务器配置 php 添加ssl
  5. HDOJ 3732 Ahui Writes Word 多重背包
  6. Objective-C单例实现
  7. 经常下载的朋友注意了,教你怎样硬盘零伤害(从论坛上拷下来收藏的)
  8. 5月以来的学习,软件工程+设计模式+J2EE开发+portal开发,以及SOA技术
  9. 从头开始安装Ubuntu,cuda,cudnn,caffe,tensorflow,ROS
  10. [网络流24题-7]圆桌问题