$ curl -sL https://github.com/syzygypl/mac-setup/master/bootstrap.sh | bashThis script will setup your Mac with software that we use in Syzygy Warsaw on a daily basis. All You need is paste above line to Terminal and execute.
It will install Apache 2.4 and PHP 5.6, 7.1 and 7.2 with required extensions and configure sites to be served from ~/Sites/*.loc/web directories.
DNS records of *.loc are being handled by Dnsmasq so no changes in /etc/hosts are required.
You can check software being installed below. If no version is provided - we use the newest.
- 1Password
- Atom
- Charles
- Cocoa REST client
- Docker
- Firefox Developer Edition
- Google Chrome
- PHPStorm
- iTerm2
- Java
- Skype
- Slack
- Discord
- Vagrant
- VirtualBox
- WKhtmlTOpdf
- Sequel PRO
- RoboMongo
- KeePassX
- KeKa
- MacDown
- Apache 2.4
- tree
- wget
- Fish Shell
- Bash Shell
- pv
- ssh-copy-id
- Redis
- MySQL 5.7
- PHP
- PHP Xdebug
- PHP Redis
- PHP Imagick
- PHP APCu
- PHP YAML
- Composer
- ImageMagick
- Ruby
- ElasticSearch 5.6
- heroku-toolbelt
- Node
- nvm
- Dnsmasq
- rsync 3.1
- coreutils
/usr/local/etc/php/*/php.ini:
upload_max_filesize 20M
post_max_size 80M
memory_limit 10G
date.timezone 'Europe/Warsaw'/usr/local/etc/httpd/httpd.conf:
LoadModule vhost_alias_module libexec/mod_vhost_alias.so
LoadModule rewrite_module libexec/mod_rewrite.so
LoadModule php5_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp5.so
LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so
LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so
Include /usr/local/etc/httpd/extra/httpd-vhosts.conf
Include /usr/local/etc/httpd/extra/httpd-php.conf
User {{ ansible_ssh_user }}
Group staff
ServerName {{ ansible_hostname }}.local
/usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf:
<Directory /Users/{{ ansible_ssh_user }}/Sites>
Require all granted
AllowOverride All
DirectoryIndex index.php index.html
</Directory>
<VirtualHost *:80>
DocumentRoot /Users/{{ ansible_ssh_user }}/Sites/
</VirtualHost>
<VirtualHost *:80>
ServerName loc
ServerAlias *.loc
CustomLog /var/log/apache2/loc.access_log vcommon
ErrorLog /var/log/apache2/loc.error_log
VirtualDocumentRoot /Users/{{ ansible_ssh_user }}/Sites/%-2.0.%-1.0/web/
LogFormat "%{Host}i %l %u %t \"%r\" %>s %b" vcommon
Options +FollowSymLinks
DirectoryIndex index.php
FallbackResource /index.php
SetEnvIf Request_URI ^ Debug=1 DEBUG=1 SYMFONY_ENV=dev APP_ENV=dev
SetEnvIf Host ([^\.]+).loc APP_NAME=$1
SetEnvIf Host app.([^\.]+) APP_NAME=$1
SetEnvIf Cookie "APP_NAME=(\w+)" APP_NAME=$1
</VirtualHost>
# Additional VirtualHosts
IncludeOptional /usr/local/etc/httpd/vhosts/*.conf
/usr/local/etc/httpd/httpd-php.conf:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
/etc/resolver/loc:
nameserver 127.0.0.1
/usr/local/etc/dnsmasq.conf:
address=/.loc/127.0.0.1
All services are managed via brew services command.
$ brew services list
Name Status User Plist
dnsmasq started root /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
[email protected] started kuba /Users/kuba/Library/LaunchAgents/[email protected]
httpd started root /Library/LaunchDaemons/homebrew.mxcl.httpd.plist
mongodb started kuba /Users/kuba/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
[email protected] started kuba /Users/kuba/Library/LaunchAgents/[email protected]
php stopped
[email protected] stopped
[email protected] stopped
redis started kuba /Users/kuba/Library/LaunchAgents/homebrew.mxcl.redis.plistdnsmasq and apache should be started as root:
$ sudo brew services start httpd
==> Successfully started `httpd` (label: homebrew.mxcl.httpd)
$ sudo brew services start dnsmasq
==> Successfully started `dnsmasq` (label: homebrew.mxcl.dnsmasq)Rest can be started as regular user (no sudo required):
$ brew services start redis
==> Successfully started `redis` (label: homebrew.mxcl.redis)
$ brew services start [email protected]
==> Successfully started `[email protected]` (label: [email protected])
$ brew services start [email protected]
==> Successfully started `[email protected]` (label: [email protected])Other commands available for brew services are restart and stop.
$ brew update
$ brew upgrade
$ brew cleanup
# check what packages are installed
$ brew list | grep php
# uninstall old php packages
$ brew uninstall --force php56 php56-apcu php56-opcache php56-xdebug php56-yaml php56-igbinary php56-intl php56-redis php56-imagick php56-mcrypt
$ brew uninstall --force php70 php70-apcu php70-opcache php70-xdebug php70-yaml php70-igbinary php70-intl php70-redis php70-imagick php70-mcrypt
$ brew uninstall --force php71 php71-apcu php71-opcache php71-xdebug php71-yaml php71-igbinary php71-intl php71-redis php71-imagick php71-mcrypt
$ brew uninstall --force php72 php72-apcu php72-opcache php72-xdebug php72-yaml php72-igbinary php72-intl php72-redis php72-imagick php72-mcrypt
$ brew cleanup
# check if everything was uninstalled Successfully
$ brew list | grep php
# remove old configs
$ rm -Rf /usr/local/etc/php/*