Få mer ut av MAMP localhost

Konfigurere MAMP

Jobber du på mac og trenger en lokal server for å utvikle nettsider? Da er MAMP et godt alternativ.

MAMP har en ok standardoppsett, og ønsker du mer ut av MAMP er det mulig å gjøre et par justeringer. Jeg skal dele noen av de endringene jeg pleier å gjøre for å få MAMP til å passe mine behov bedre.

Komme i gang

  • Gå til http://www.mamp.info/de/ og last ned MAMP
  • MAMP PRO blir lastet ned samtidig, men under installasjonen kan man velge å ikke installere denne
  • Installer pakken som du nettopp lastet ned
  • Når du kommer til steg 5 (installeringstype), kan du gå inn på «tilpass» og velge at du ikke ønsker å installere MAMP PRO
    mamp-mamp-pro-valg.png

MAMP er nå ferdig installert, og ved å starte MAMP og klikke «start server», har du et helt enkelt Apache, MySQL, PHP oppsett kjørende lokalt på mac’n din.

Avansert bruk

Et basic oppsett holder for enkle ting, men om man jobber på nettsider av litt størrelse kan det være nødvendig å tilpasse litt. Her er de tingene jeg pleier å endre etter en standard installasjon.

Endre til standard porter

MAMP kommer som standard med egne porter for Apache (8888) og MySQL (8889). Disse pleier jeg å endre til standard porter brukt på nettet. Apache setter jeg til 80 og MySQL til 3306. Endringen kan gjøres ved å klikke preferences i mamap, og under fanen Ports.

mamp-porter.png

Øke php minne

Når jeg jobber med CMS-er som har en del moduler/plugins installert, melder behovet seg for å øke minne i PHP. Da må jeg finne ut hvilke php.ini fil som blir brukt, og deretter øke memory_limit i denne filen. Hvilken php.ini fil som er i bruk ser du enkelt på MAMP startsiden, og klikk på phpInfo i toppmenyen. I raden Loaded Configuration File ser jeg at php.ini er lokalisert her /Applications/MAMP/bin/php/php5.5.10/conf/php.ini

Åpne denne filen og endre memory_limit fra 128M til 512M. Restart MAMP og sjekk at memory_limit har den nye verdien på phpinfo siden.

$ vim /Applications/MAMP/bin/php/php5.5.10/conf/php.ini

Kommandoen over skrives inn i “Terminal” programmet på OSX og den åpner filen i en tekstprogrammet Vim. Er du ikke kjent med Vim, kan du åpne filen i det tekstprogrammet du foretrekker.

MySQL config

Mamp kommer med en enkel MySQL konfigurasjonsfil. Denne pleier jeg å erstatte med en litt saftigere konfigurasjonsfil. Filen my.cnf plasseres enkelt og greit i mappen /Application/MAMP/conf/. MAMP må restartes etter at filen er lagt til. Last ned konfigurasjonsfilen her: https://gist.github.com/fragje/9953959

Dokumentmappa

Som standard bruker MAMP /Application/MAMP/htdocs som Document root. Det vil si at når du legger en mappe (f.eks. “min-mappe”) inni denne mappen, vil den lokale url’n bli http://localhost/min-mappe.

Jeg liker å ha kort vei til denne mappen, så jeg pleier å endre document root til ~/Sites. Dette setter jeg opp i MAMP preferences, og Apache-fanen. Huske å starte MAMP på nytt etter endringen.

mamp-dokumentmappe.png

Lokale domener

Noen ganger har jeg behov for lokale domener som f.eks. http://loc.mittdomene.no. Denne endringen krevet at vi gjøre to ting

  1. Lage en vhost for hvert domene
  2. Sette lokalt DNS-oppsett for hvert domene

1. Aktivere vhost

For å aktivere vhost må vi først redigere en fil som ligger inne i MAMP

vim /Applications/MAMP/conf/apache/httpd.conf

Finn informasjon om Virtual hosts (ca linje 570), og fjerne hastag som kommenterer ut linjen der det står info om vhosts.

# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
Legge til vhost

Nå må vi legge til en ny vhost, og det gjør vi i filen som vi inkluderte fra forrige fil.

vim /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

Først må vi legge til en ny vhost for localhost siden den ikke vil fungere etter at vi aktiverte vhost. (Legges til i bunnen av filen)

<VirtualHost *:80>
    ServerAdmin webmaster@example.no
    DocumentRoot "/Users/fragje/Sites"
    ServerName localhost
</VirtualHost>

Deretter legger jeg til en vhost for hvert lokale domene jeg ønsker

<VirtualHost *:80>
    ServerAdmin webmaster@example.no
    DocumentRoot "/Users/fragje/Sites/frontkom"
    ServerName loc.frontkom.no
</VirtualHost>

DocumentRoot må settes til den mappen hvor siden ligger, og hvis siden skal ta imot flere domener, kan ServerAlias legges til under ServerName

<VirtualHost *:80>
    ServerAdmin webmaster@example.no
    DocumentRoot "/Users/fragje/Sites/frontkom"
    ServerName loc.frontkom.no
    ServerAlias loc.frontkom.com loc.frontkom.se
</VirtualHost> 

Start MAMP på nytt etter at det er gjort endringer i vhost-fila.

2. Lokalt DNS-oppsett

De lokale domenene som er satt opp i vhost-fila vil ikke virke uten at vi gjør lokale DNS-endringer. Den neste filen vi skal endre krever systempassord, og vi bruker derfor sudo.

sudo vim /etc/hosts

Du vil bli spurt om passord, og det er det samme du bruker ellers når du blir spurt om passord på mac’n.

Legg til en ny linje hvor du starter med 127.0.0.1 etterfulgt av de lokale domenene du ønsker å legge til (det må være et mellomrom mellom hvert domene).

# Local domains
127.0.0.1     loc.frontkom.no loc.frontkom.com loc.frontkom.se loc.dittdomene.no

Restart MAMP, og du vil nå kunne besøke ditt lokale domene http://loc.frontkom.no.

Gjøre MAMP PHP global

Når jeg jobber med Drupal bruker jeg ofte Drush som er et kommandolinje-verktøy for Drupal. Problemet jeg støter på med en standard MAMP-installasjon er at Drush ikke benytter seg av MAMP sin PHP uten at jeg sier ifra om det. Sjekk PHP configuration path ved å skrive drush status i terminalen.

Mest sansynlig vises /usr/bin/php, men det er ikke det vi ønsker. Skriv følgende i terminalen:

cd /usr/bin/

Går til mappen /usr/bin

mv php php.bak

Ta backup av php, og gi den navnet php.bak

ln -s /Applications/MAMP/bin/php/php5.5.10/bin/php php

Lager en symlink til MAMP’s php. Dette kan variere basert på hvilken PHP-versjon som MAMP er satt opp med.

Skriv drush status igjen, og linken til MAMP’s php skal være i bruk.

Alternativer

MAMP er ikke det eneste måten å få opp en lokal server på mac’n din, men det er raskt, og det er mulig å gjør små tilpasninger. Hvis du ønsker fleksibilitet uten å måtte konfigurere tekstfiler, er MAMP Pro et alternativ. Da er mye av innstillingene jeg gjør i filer tilgjengelig i et grafisk grensesnitt. Pro-versjonen koster litt, men det kan fort lønne seg om man ikke føler seg helt trygg på manuell konfigurasjon.

Jobber du i team og ønsker å dele samme serverinnstillinger er Vagrant et bedre valg. Det krever noe mer konfigurasjon, men er også mye mer fleksibelt og kan settes opp akkurat slik du ønsker det. Mer om det i en senere artikkel.

Frank Gjertsen

Frank Gjertsen

Les flere artikler fra Frank Gjertsen.

Jobber i Frontkom. Frontendutvikler og designer. Spesielt ansvar for universell utforming.