just run this command on your mac:
brew install https://gist.github.com/raw/1007028/66c1911132a2970b9df9723bd8063ac13e926993/nginx.rb
| require 'formula' | |
| class Nginx < Formula | |
| homepage 'http://nginx.org/' | |
| url 'http://nginx.org/download/nginx-1.0.2.tar.gz' | |
| md5 '8a528ccaab3ddba84e72443fa40b19e7' | |
| depends_on 'pcre' | |
| skip_clean 'logs' | |
| def patches | |
| # Changes default port to 8080 | |
| # Set configure to look in homebrew prefix for pcre | |
| [ | |
| DATA, | |
| 'https://github.com/yaoweibin/nginx_tcp_proxy_module/raw/master/tcp.patch' | |
| ] | |
| end | |
| def options | |
| [ | |
| ['--with-passenger', "Compile with support for Phusion Passenger module"], | |
| ['--with-webdav', "Compile with support for WebDAV module"] | |
| ] | |
| end | |
| def passenger_config_args | |
| passenger_root = `passenger-config --root`.chomp | |
| if File.directory?(passenger_root) | |
| return "--add-module=#{passenger_root}/ext/nginx" | |
| end | |
| puts "Unable to install nginx with passenger support. The passenger" | |
| puts "gem must be installed and passenger-config must be in your path" | |
| puts "in order to continue." | |
| exit | |
| end | |
| def install | |
| args = ["--prefix=#{prefix}", | |
| "--with-http_ssl_module", | |
| "--with-pcre", | |
| "--conf-path=#{etc}/nginx/nginx.conf", | |
| "--pid-path=#{var}/run/nginx.pid", | |
| "--add-module=./nginx_tcp_proxy_module", | |
| "--lock-path=#{var}/nginx/nginx.lock"] | |
| args << passenger_config_args if ARGV.include? '--with-passenger' | |
| args << "--with-http_dav_module" if ARGV.include? '--with-webdav' | |
| system "git clone git://github.com/yaoweibin/nginx_tcp_proxy_module" | |
| system "./configure", *args | |
| system "make install" | |
| (prefix+'org.nginx.nginx.plist').write startup_plist | |
| end | |
| def caveats | |
| <<-CAVEATS | |
| In the interest of allowing you to run `nginx` without `sudo`, the default | |
| port is set to localhost:8080. | |
| If you want to host pages on your local machine to the public, you should | |
| change that to localhost:80, and run `sudo nginx`. You'll need to turn off | |
| any other web servers running port 80, of course. | |
| You can start nginx automatically on login with: | |
| mkdir -p ~/Library/LaunchAgents | |
| cp #{prefix}/org.nginx.nginx.plist ~/Library/LaunchAgents/ | |
| launchctl load -w ~/Library/LaunchAgents/org.nginx.nginx.plist | |
| CAVEATS | |
| end | |
| def startup_plist | |
| return <<-EOPLIST | |
| <?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.nginx.nginx</string> | |
| <key>RunAtLoad</key> | |
| <true/> | |
| <key>KeepAlive</key> | |
| <true/> | |
| <key>UserName</key> | |
| <string>#{`whoami`.chomp}</string> | |
| <key>ProgramArguments</key> | |
| <array> | |
| <string>#{sbin}/nginx</string> | |
| <string>-g</string> | |
| <string>daemon off;</string> | |
| </array> | |
| <key>WorkingDirectory</key> | |
| <string>#{HOMEBREW_PREFIX}</string> | |
| </dict> | |
| </plist> | |
| EOPLIST | |
| end | |
| end | |
| __END__ | |
| --- a/auto/lib/pcre/conf | |
| +++ b/auto/lib/pcre/conf | |
| @@ -155,6 +155,22 @@ else | |
| . auto/feature | |
| fi | |
| + if [ $ngx_found = no ]; then | |
| + | |
| + # Homebrew | |
| + HOMEBREW_PREFIX=${NGX_PREFIX%Cellar*} | |
| + ngx_feature="PCRE library in ${HOMEBREW_PREFIX}" | |
| + ngx_feature_path="${HOMEBREW_PREFIX}/include" | |
| + | |
| + if [ $NGX_RPATH = YES ]; then | |
| + ngx_feature_libs="-R${HOMEBREW_PREFIX}/lib -L${HOMEBREW_PREFIX}/lib -lpcre" | |
| + else | |
| + ngx_feature_libs="-L${HOMEBREW_PREFIX}/lib -lpcre" | |
| + fi | |
| + | |
| + . auto/feature | |
| + fi | |
| + | |
| if [ $ngx_found = yes ]; then | |
| CORE_DEPS="$CORE_DEPS $REGEX_DEPS" | |
| CORE_SRCS="$CORE_SRCS $REGEX_SRCS" | |
| --- a/conf/nginx.conf | |
| +++ b/conf/nginx.conf | |
| @@ -33,7 +33,7 @@ | |
| #gzip on; | |
| server { | |
| - listen 80; | |
| + listen 8080; | |
| server_name localhost; | |
| #charset koi8-r; |