Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save bzerangue/3695826 to your computer and use it in GitHub Desktop.
Save bzerangue/3695826 to your computer and use it in GitHub Desktop.
Installing Hiawatha Server on Mac OS X

Installing Hiawatha Webserver on Mac OS X and running Symphony CMS

SCREENCASTS

  • Part One: Installing Hiawatha Web Server and running Symphony CMS on Mac OS X (5 min) -- watch
  • Part Two: Installing Hiawatha Web Server and running Symphony CMS on Mac OS X (5 min) -- watch
  • Part Three: Installing Hiawatha Web Server and running Symphony CMS on Mac OS X (4 min 56 seconds) -- watch

SCREENCAST NOTES:

PREREQUISITES

  • Have Git installed on your machine
  • Have PHP and MySQL installed on your machine. I installed mine with Homebrew
  • Homebrew MySQL, http://www.andrewsavory.com/blog/2011/2144
  • Homebrew PHP, https://github.com/josegonzalez/homebrew-php
    • Follow Jose Gonzalez's included instructions and the portion when you run brew install, run it with the following flags, brew install php54 --with-mysql --with-fpm and then after installing you can run brew info php54 and look for instructions, "If you have installed the formula with --with-fpm"
  • Download Sequel Pro for Mac OS X (Open Source GUI for MySQL), http://www.sequelpro.com

1) Download Hiawatha Mac OS X package

http://www.hiawatha-webserver.org/download

2) Install Hiawatha Web Server and check to see if it is running

3) Setup Hiawatha configuration to run a Symphony CMS site

  • The hiawatha.conf file is found in /usr/local/etc/hiawatha directory

4) Setup database for Symphony

  • Open Sequel Pro and add a new database.

5) Download and install Symphony

6) Check if Symphony is running

7) Rejoice

# Hiawatha main configuration file
#
# GENERAL SETTINGS
#
#ServerId = www-data
ConnectionsTotal = 150
ConnectionsPerIP = 10
SystemLogfile = /usr/local/var/log/hiawatha/system.log
GarbageLogfile = /usr/local/var/log/hiawatha/garbage.log
# BINDING SETTINGS
# A binding is where a client can connect to.
#
Binding {
Port = 80
# Interface = 127.0.0.1
# MaxKeepAlive = 30
# TimeForRequest = 3,20
}
#
#Binding {
# Port = 443
# Interface = ::1
# MaxKeepAlive = 30
# TimeForRequest = 3,20
# SSLcertFile = hiawatha.pem
#}
# BANNING SETTINGS
# Deny service to clients who misbehave.
#
#BanOnGarbage = 300
#BanOnMaxPerIP = 60
#BanOnMaxReqSize = 300
#KickOnBan = yes
#RebanDuringBan = yes
# COMMON GATEWAY INTERFACE (CGI) SETTINGS
# These settings can be used to run CGI applications. Use the 'php-fcgi'
# tool to start PHP as a FastCGI daemon.
#
#CGIhandler = /usr/bin/perl:pl
#CGIhandler = /usr/bin/php-cgi:php
#CGIhandler = /usr/bin/python:py
#CGIhandler = /usr/bin/ruby:rb
#CGIhandler = /usr/bin/ssi-cgi:shtml
#CGIextension = cgi
#
# FastCGIserver settings for PHP-FPM
FastCGIserver {
FastCGIid = PHP5
ConnectTo = 127.0.0.1:9000
Extension = php
}
# URL TOOLKIT
# This URL toolkit rule was made for the Banshee PHP framework, which
# can be downloaded from http://www.hiawatha-webserver.org/banshee
#
#UrlToolkit {
# ToolkitID = banshee
# RequestURI isfile Return
# Match ^/(css|files|images|js|slimstat)($|/) Return
# Match ^/(favicon.ico|robots.txt|sitemap.xml)$ Return
# Match .*\?(.*) Rewrite /index.php?$1
# Match .* Rewrite /index.php
#}
UrlToolkit {
ToolkitID = symphony
Match ^/manifest/.* DenyAccess
Match ^/workspace/utilities/.*\.xsl$ DenyAccess
Match ^/workspace/pages/.*\.xsl$ DenyAccess
Match ^/.*\.sql$ DenyAccess
Match ^/favicon.ico$ Return
Match ^/image\/(.+\.(jpg|gif|jpeg|png|bmp))$ Rewrite /extensions/jit_image_manipulation/lib/image.php?param=$1
Match ^/symphony\/?$ Rewrite /index.php?mode=administration
RequestURI exists Return
Match ^/(.*)\?(.*) Rewrite /$1&$2 Continue
Match ^/symphony(\/(.*\/?))?$ Rewrite /index.php?symphony-page=$1&mode=administration
Match ^/(.*\/?)$ Rewrite /index.php?symphony-page=$1
}
# DEFAULT WEBSITE
# It is wise to use your IP address as the hostname of the default website
# and give it a blank webpage. By doing so, automated webscanners won't find
# your possible vulnerable website.
#
Hostname = 127.0.0.1
WebsiteRoot = /Library/Webserver/hiawatha
StartFile = index.html
AccessLogfile = /usr/local/var/log/hiawatha/access.log
ErrorLogfile = /usr/local/var/log/hiawatha/error.log
#ErrorHandler = 404:/error.cgi
# VIRTUAL HOSTS
# Use a VirtualHost section to declare the websites you want to host.
#
#VirtualHost {
# Hostname = www.my-domain.com
# WebsiteRoot = /var/www/my-domain/public
# StartFile = index.php
# AccessLogfile = /var/www/my-domain/log/access.log
# ErrorLogfile = /var/www/my-domain/log/error.log
# TimeForCGI = 5
# UseFastCGI = PHP5
# UseToolkit = banshee
#}
VirtualHost {
Hostname = www.hiawatha.dev, *.hiawatha.dev
WebsiteRoot = /Users/YOURUSERNAME/Sites/hiawatha.dev/public
StartFile = index.php
AccessLogfile = /Users/YOURUSERNAME/Sites/hiawatha.dev/log/access.log
ErrorLogfile = /Users/YOURUSERNAME/Sites/hiawatha.dev/log/error.log
TimeForCGI = 5
UseFastCGI = PHP5
UseToolkit = symphony
}
# DIRECTORY SETTINGS
# You can specify some settings per directory.
#
#Directory {
# Path = /home/baduser
# ExecuteCGI = no
# UploadSpeed = 10,2
#}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment