La oss se hvordan vi kan oppgradere den native OS X 10.8 PHP-installasjonen manuelt til den nyeste versjonen (for øyeblikket 5.4.5), og få noen annen nyttig programvare installert mens vi er på den. * AMP-pakker er praktiske, men sjelden oppdatert, så absorberer prosedyren som er avbildet i denne artikkelen, uvurderlig for hver PHP-utvikler.
Hvis du bare er interessert i det praktiske aspektet ved å installere PHP, er du velkommen til å hoppe over denne delen, men det kan være nyttig for deg senere å vite hvordan det egentlig virker og hvorfor visse kommandoer er nødvendige..
Hver installasjon av programvare fra kilde følger i utgangspunktet den samme kjeden av kommandoer: Last ned kildefilene, konfigurer, lag, valgfritt test, installer.
Skriptet "configure" forteller "lage" hva som skal bygges. Utføres ved å skrive "./configure", konfigurerer skriptet avhengigheter, verifiserer at du kjører et støttet operativsystem, setter opp de nødvendige filene for det oppgitte operativsystemet og til slutt genererer en makefile, som når "make" heter, dikterer hvordan og hva som skal bygges.
"Configure" forteller "lage" hva som skal bygges
Hvis konfigureringsskriptet finner mangler avhengigheter eller feil, utfører det en utgang og stopper kjøringen, slik at brukeren kan fjerne eller fjerne eventuelle hindringer før du fortsetter. Konfigurer kommandoen kommer alltid først når du bygger fra kilde.
Deretter bygger "make" hva konfigurasjonen fortalte det å bygge. "Make" er initialisert ved å bare skrive "make", og er egentlig et GNU-verktøy som vanligvis brukes til å vedlikeholde et sett med filer og kompompilere dem om nødvendig.
"Make" bygger hva konfigurasjonen fortalte det å bygge
For å fungere, krever det en makefile - en fil der dets direktiver er beskrevet og relasjoner mellom de aktuelle filene er notert. Når du kjører, leser kommandoen kommandoen makefile og utfører oppgavene.
Kommandoen "make test" kjører kommandoen kommandoen, men tester også kompileringen mot et testmål. Ikke alle kildedistribusjoner støtter "test", så med mindre det er spesifikt angitt i installasjonsdokumentasjonen for programvaren som installeres, skal man bruke den vanlige "make".
Kommandoen "make test" kjører kommandoen kommandoen, men tester også kompileringen mot et testmål.
"Sudo make install" installerer filene som "lager" innebygd i forhåndsdefinerte mapper. Den håndterer alle inneslutninger, oppdateringer og løser stier og flytter alt til hvor det skal være. Effektivt fullfører installasjonen og brukeren trenger vanligvis ikke å gjøre noe annet.
Dette er faktisk akkurat hva Homebrew - pakkebehandleren vi installerer i neste avsnitt - kan gjøre. Det kan utføre samme flyt, internt. Du ser egentlig ikke direkte på noe, men mer eller mindre blir den samme kjeden utført, dersom "formelen" sendt av "bryggeren" er gjort på den måten.
Det gjør hele prosessen mindre besværlig ved automatisk å sjekke avhengigheter og installere dem før de går inn på hovedutpekten. Den laster ned og unarchives den og kjører konfigureringen, gjør, gjør installasjonskjeden til slutt på installasjonen.
Nesten alle installasjoner fra kilde følger de samme trinnene: laste ned, konfigurere, lage, installere.
For at installasjonen av PHP skal gå så jevnt som mulig, må vi installere Homebrew, en pakkebehandling for OSX som kan håndtere mange installasjoner for deg - installasjoner som ellers kan kreve komplekse byggprosedyrer og kan ha kritiske avhengigheter som tar timer å løse.
Å ha Homebrew installert vil være til nytte for deg i det lange løp.
Å ha Homebrew installert vil være til nytte for deg i det lange løp, ikke bare for formålet med denne artikkelen. Det gir en rask måte å installere vanlige biblioteker og programvare uten å måtte bygge fra kilde.
For å installere det, må vi gjøre følgende (hopp over denne delen hvis du har installert Homebrew):
$ sudo xcode-select-switchen /Applications/Xcode.app/Contents/Developer $ ln -s / opt / X11 / usr / X11
... tatt fra dette innlegget. Dette skjer i noen tilfeller av Mountain Lion av en eller annen grunn.
Når du har gjort det, må du kjøre bryggeis og kontrollere at alt fungerer (som per instruksjon på Homebrews nettsted).
Forutsigbart krever installering av PHP at du har installert bestemte biblioteker. Heldigvis er Homebrew her for å håndtere disse installasjonene for oss. Installer følgende:
brygge installere libjpeg brygge installere pcre brygge installere libxml2 brygge installere mcrypt
Når du er ferdig, last ned PHP-kildefilene fra Php.net. Pakke arkivet, åpne terminalen, og bytt til kildemappen (for eksempel cd ~ / Nedlastinger / php-5.4.5 / eller hvor annet du lastet ned kildene).
Hvis du planlegger å jobbe med Zend Framework 2 og ønsker å starte med prøveskjelettprogrammet som laget av Rob "Akrabat" Allen, eller hvis du har tenkt å distribuere søknaden din i flere lengsler, trenger du php-intl-støtte. For å tillate konfigurasjonsskriptet å ta php-intl i betraktning mens du bygger makefile, må vi installere en annen avhengighet - ICU. Last ned dette fra ICU-Project.org og utfør:
tar xzvf icu4c-4_8_1-src.tgz cd icu / kilde ./runConfigureICU MacOSX gjør sudo make install
Dette håndterte alle grunnleggende avhengighetene PHP noensinne kunne ønske fra oss (for nå). Vi kan nå endelig bygge og installere det.
For det første, i PHP's unarchived source-mappe, utfør følgende konfigurasjons kommando:
./ config \ --prefix = / usr \ --mandir = / usr / share / man \ --infodir = / usr / share / info \ --sysconfdir = / privat / etc \ - med-apxs2 = / usr / sbin / apxs \ --enable-cli \ - med-config-fil-path = / etc \ - med-libxml-dir = / usr \ - med-openssl = / usr \ - med-kerberos = / usr \ --with-zlib = / usr \ --enable-bcmath \ --with-bz2 = / usr \ --enable-calendar \ --with-curl = / usr \ --enable-dba \ --enable -exif \ --enable-ftp \ --with-gd \ --enable-gd-native-ttf \ - med-icu-dir = / usr \ - med-iodbc = / usr \ - med-ldap = / usr \ - med-ldap-sasl = / usr \ - med-libedit = / usr \ --enable-mbstring \ --enable-mbregex \ --with-mysql = mysqlnd \ --with-mysqli = mysqlnd \ - uten pære \ - med-pdo-mysql = mysqlnd \ - med-mysql-sokk = / var / mysql / mysql.sock \ --with-readline = / usr \ --enable-shmop \ --with-snmp = / usr \ --enable-såpe \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ - med ryddig \ --nable-wddx \ - med-xmlrpc \ - med-iconv-dir = / usr \ - med-xsl = / usr \ --enable-zip \ - med-imap = / usr / local / imap-2007 \ - med-kerberos \ - med-imap-ssl \ --enable-intl \ - med-pcre-regex \ - med-pgsql = / usr \ - med-pdo-pgsql = / usr \ -with-freetype-dir = / usr / X11 \ - med-jpeg-dir = / usr \ - med-png-dir = / usr / X11
Når du er ferdig, utfør
$ gjør testen
"Test" -kjøringer gjør og tester kompilasjonene for feil
Som nevnt i avsnittet om bygge teori, gjør disse løpene og tester samlingen. Dette kan ta en stund, opptil 30 minutter, fordi hver enkelt fasett av PHP blir testet. Når ferdig, hvis PHP fant noen feil (og det sannsynligvis vil), rapporterer de dem til utviklerne ved å følge instruksjonene på skjermen. Ikke bekymre deg, alt er fortsatt bra - feilene det finner er vanligvis mindre enn viktige.
Hvis du har den opprinnelige PHP allerede aktivert og konfigurert, gjør du en sikkerhetskopi av php.ini-filen din nå. Det skal være i /etc/php.ini
Endelig kjør følgende for å faktisk installere PHP.
$ sudo gjør installasjon
Det er best å ikke overskrive den nye php.ini-filen med den gamle, hvis du gjorde en sikkerhetskopi. I stedet kopierer du verdiene du trenger manuelt, for å være på den sikre siden. På den måten sikrer vi at den nye php.ini-filen er fullt kompatibel med den nylig installerte versjonen.
Nesten ferdig! Hvis du allerede hadde aktivert PHP på maskinen din før dette, og det eneste formålet med å lese denne artikkelen var faktisk å oppgradere eksisterende PHP, så er du ferdig - alt skal fungere.
Hvis ikke, må vi aktivere PHP i OSXs native Apache-installasjon. Siden httpd.conf filen vil sannsynligvis være i standardplasseringen, åpner du den via Terminal i TextEdit slik:
$ SUDO_EDITOR = "open -FWne" sudo -e /etc/apache2/httpd.conf
Jeg bruker SUDO EDITOR kommandoen her for å åpne filen i TextEdit, ganske enkelt fordi jeg anser det mye enklere å redigere filer enn Vim eller Nano. Jeg kunne like godt ha brukt "$ sudo vim /ect/apache2/httpd.conf" for å redigere den i vim.
Neste, Uncomment følgende linjer (de er ikke ved siden av hverandre - bruk kommandoen Finn for å finne dem)
LoadModule php5_module libexec / apache2 / libphp5.so Inkluder /private/etc/apache2/extra/httpd-vhosts.conf
Den første linjen aktiverer bruk av PHP som en Apache-modul. Den andre linjen er der, slik at den viktigste httpd.conf-filen (Apache's configuration) henter de virtuelle vertene fra vhosts-filen, og sparer oss for problemer med overdreven redigering i den altfor følsomme httpd.conf. Dette har den ekstra fordelen ved å la deg lagre en vhosts-fil et sted utenfor / etc, og sikkerhetskopiere det til andre utviklingsmaskiner eller installasjoner.
En veldig praktisk tilnærming til dette er vert for den på en skygtjeneste som Google Disk eller Dropbox, og kobler direkte til den fra httpd.conf. På den måten, når du legger til en ny virtuell vert, blir den automatisk installert på alle maskinene dine så snart du starter den lokale Apache-serveren.
En virtuell vert er et lokalt hostet imaginært domene. Det lar deg i utgangspunktet teste ut prosjektene dine i nettleseren ved å skrive inn forskjellige nettadresser. For eksempel, på min maskin, kunne jeg besøke http: //mactuts.tutorial og se Hello World-appen som disse seksjonene avsluttes med, eller jeg kunne besøke http://mw.dev for å se utviklingsversjonen av et prosjekt jeg er jobber med. Ganske enkelt utløser en annen nettadresse en annen kildemappe og åpner et annet prosjekt som et nettsted. Her er en rask guide for hvordan du legger til en vhost - hvis du har vhosts satt opp allerede eller forstår alt om dem, er du velkommen til å hoppe over denne delen.
Først vil vi nevne vår prøve vhost "mactuts.tutorial". For å gjøre dette, legg til en oppføring i / etc / hosts som ser slik ut:
127.0.0.1 mactuts.tutorial
Dette betyr at du får tilgang til URL-adressen http: //mactuts.tutorial i nettleseren vil gå til 127.0.0.1:80 eller med andre ord til port 80 av vår lokale server (Apache).
Deretter legger du til en blokk i etc / apache2 / extra / httpd-vhosts.conf som ser noe ut som dette:
Servernavn mactuts.tutorial DocumentRoot "/ Brukere / USERNAME / Nettsteder / mactuts" ServerAdmin [email protected] Alternativer Indekser FølgSymLinks TillatOverride All Order tillat, nekt Tillat fra alle
Erstatt USERNAME med ditt eget brukernavn, uten de krøllete båndene. Dette forteller Apache følgende: Hvis du har noe på port 80, sjekk det opprinnelige nettadressen. Hvis det er mactuts.tutorial, så sett opp alle disse alternativene.
Neste, start Apache med
$ sudo apachectl restart
3) Opprett en mappe "/ Brukere / USERNAME / Nettsteder / mactuts" (erstatt USERNAME med OSX-brukerens navn) og legg inn en index.php-fil i det med følgende innhold:
Gå til http: //mactuts.tutorial. Du bør se "Hello World"!
Nylig et alternativ til denne tilnærmingen dukket opp - installere PHP gjennom Homebrew seg selv. Problemet er at det ikke er noen offisielle kanaler på tidspunktet for denne skrivingen (tidlig i august 2012), så en alternativ trykk må aktiveres for Homebrew.
Også, OS X-versjonen jeg testet dette på, Mountain Lion, dessverre ikke klarte å installere den måten og kastet vage feil på meg som jeg ikke kunne løse. Hvis du føler deg eventyrlystne, sjekk dette innlegget og prøv å endre det i henhold til ditt eget OS og ønsket PHP-versjon.
Et mer stabilt alternativ ser ut til å være tilgjengelig her, men tilbakemeldingen er laks og det er ikke mye å fortsette, så jeg lar disse metodene gå opp til eksperimentene fra leserne.
Her er noen alternativer foreslått av kommentatorer siden innlegget ble publisert.
php_osx
Et annet (tilsynelatende glatt arbeid) alternativ til dette ble brakt til min oppmerksomhet ved å kommentere DaftViking og inkluderer å installere PHP via php_osx.
Macports
Selv om jeg oppfordrer utfasingen av Macports til fordel for Homebrew, virker det som Macports også lagt til en stabilisert versjon av PHP, så det kan gi et annet arbeidsalternativ. Jeg har ikke personlig testet denne tilnærmingen, men for de som er dyktige med Macports, kan du finne mer informasjon her. Takket være Redditor nemeth88 for heads up!
OS X leveres med forhåndsinstallert PHP og Apache-konfigurasjon. Dessverre er PHP-versjonen som følger med, svært utdatert, og det oppdateres aldri, unntatt når en ny OS-versjon installeres. Da er den nye PHP-versjonen som er inkludert, allerede utdatert, foruten å hente en * AMP (Apache / MySQL / Php) -pakke (som sjelden har noen oppdaterte versjoner av PHP), hva kan man gjøre unntatt oppdatere det manuelt?
I denne opplæringen har vi dekket grunnleggende om å bygge fra kilde, vi har bygget en ny oppdatert versjon av PHP og installert den, og vi har selv installert Homebrew som vil gjøre ytterligere installasjoner av programvare og biblioteker super lett . Vi har også dekket opprettelsen av en virtuell vert og testet vår installasjon for å sikre at den fungerer. Jeg håper du har hatt det og at alt fungerte som planlagt. Hvis du får problemer, kan du skrive inn i kommentarene, og vi vil jobbe gjennom problemene sammen.