Oppgradering av Native PHP Installasjon på OS X Mountain Lion

Upgrading Native PHP Installasjon på OS X Mountain Lion

La oss se hvordan vi kan manuelt oppgradere native OS X 10.8 PHP installasjon til den nyeste versjonen (for tiden 5.4.5) og få litt annen nyttig programvare installert mens vi er i gang. * AMP pakker er praktisk, men sjelden up-to-date, så absorberer prosedyren avbildet i denne artikkelen er uvurderlig for alle PHP-utvikler.




The Theory of Building Fra kilde

Hvis du bare er interessert i det praktiske aspektet ved å installere PHP, gjerne hoppe over denne delen, men det kan være nyttig for deg senere å vite hvordan det faktisk fungerer og hvorfor enkelte kommandoer er nødvendig.

Hver installasjon av programvare fra kilden følger i utgangspunktet den samme kjeden av kommandoer: Last ned kildefilene, konfigurere gjøre, eventuelt test, installere

Konfigurer

"konfigurere". script forteller "gjøre" hva som kommer til å bli bygget. Henrettet ved å skrive "./configure", analyserer konfigurere skriptet avhengigheter, bekrefter du kjører et støttet OS, setter opp de nødvendige filene for den gitte OS og til slutt genererer en Makefile, som når "gjør" kalles, dikterer hvordan og hva skal bygges.

"konfigurere" forteller "gjøre" hva som kommer til å bli bygget

Hvis configure skriptet oppdager mangler avhengigheter eller feil, utfører det en avkjørsel og stopper utførelsen, slik at brukeren å fjerne eller omgå eventuelle hindringer før du fortsetter. Den konfigurere kommandoen kommer alltid først når du bygger fra kilden.

Gjør

Neste, "lage" bygger hva konfigurere fortalt at det å bygge. "Gjør" er initialisert ved å skrive "gjøre", og er faktisk en GNU verktøy som vanligvis brukes til å opprettholde et sett med filer og rekompilere dem om nødvendig.

"lage" bygger hva konfigurere fortalt det til å bygge

Å funksjon, krever det en Makefile - en fil der sine direktiver er beskrevet og relasjoner mellom filene i spørsmålet er notert. Når løpe, make kommandoen leser Makefile og utfører oppgavene.

"make test" kommandoen kjører make kommandoen, men også tester samling mot en test mål. Ikke alle kilde distribusjoner støtter "make test", så med mindre eksplisitt spesifisert i dokumentasjonen av installasjon av programvare som installeres, er en å bruke den vanlige "gjøre".

"Lag test" kommandoen kjører make kommandoen men også tester samling mot en test mål.

"sudo make install" installerer filer som "gjør" innebygd i forhåndsdefinerte mapper. Den håndterer alle inneslutninger, oppdateringer og løser stier og flytter alt til der den skal være. Effektivt, avslutter den installasjonen og brukeren vanligvis ikke trenger å gjøre noe annet

Dette er faktisk akkurat hva Homebrew -. Pakkebehandleren vi installerer i neste avsnitt - kan gjøre. Den kan utføre den samme strømnings, internt. Du trenger egentlig ikke se noe av det direkte, men mer eller mindre den samme kjeden er henrettet, hvis "formelen" innsendt av "brygger" er laget på den måten.

Det gjør hele prosessen mindre klumpete ved å automatisk sjekke for avhengigheter og installere dem før du går inn på hovedsiden utpekt pakken. Deretter nedlastinger og unarchives det og utfører konfigurere, gjøre, make install kjeden å gjøre ferdig installasjonen

Nesten hver installasjon fra kilden følger de samme trinnene:. Nedlasting, konfigurere, lage, installere
<. h2> Homebrew
Fra Homebrew hjem

For installasjon av PHP til å gå så smidig som mulig, vi trenger å installere Homebrew, en pakkebehandler for OSX som kan håndtere en rekke installasjoner for deg - installasjoner som ellers krever komplekse bygge prosedyrer og kan ha kritiske avhengigheter som tar timer å løse.

Å ha Homebrew installert vil gagne deg i det lange løp.

Å ha Homebrew installert vil gagne deg i lange løp, ikke bare for hensikten med denne artikkelen. Det tilbyr en rask måte å installere vanlige biblioteker og programvare uten å måtte bygge fra kilden
å installere det, må vi gjøre følgende (hoppe over denne delen hvis du har Homebrew installert).


    Installer XCode via App Store. Når programmet er installert, må du installere Command Line Tools gjennom XCode app selv, eller last ned og installer fra http://developers.apple.com. Vi trenger XCode og CLT fordi Homebrew krever dem.
  1. Installer X11 herfra. Dette er også en Homebrew krav. Plukk den nyeste versjonen tilgjengelig, ikke nødvendigvis den som er knyttet til her

    Installer Homebrew fra GitHub

    Hvis du får problemer, må du kanskje gjøre følgende etter trinn 1 og 2:.. $ sudo Xcode-select bryterens /Applications/Xcode.app/Contents/Developer$ ln -s /opt /X11 /usr/X11

    ..taken fra dette innlegget. Dette skjer på noen tilfeller av Mountain Lion eller annen grunn.

    Når dette er gjort, kjører brygge lege og kontrollere at alt fungerer (i henhold til instruksjonene på Homebrew nettside).



    PHP

    Forutsigbart, installere PHP krever at du har visse bibliotek installert. Heldigvis er Homebrew her for å håndtere disse installasjonene for oss. Installer følgende:
    brygge installere libjpegbrew installere pcrebrew installere libxml2brew installere mcrypt

    Når dette er gjort, laste ned PHP kildefilene fra Php.net. Pakk ut arkivet, åpne terminal, og bytte til kildemappen (f.eks cd ~ /Downloads /php-5.4.5 /eller hvor enn du lastet ned kildene).

    Hvis du planlegger å jobbe med Zend Framework 2 og ønsker å starte med prøve skjelettet programmet som laget av Rob "Akrabat" Allen, eller hvis du har tenkt å distribuere programmet i flere langauges, trenger du php-intl støtte. Å tillate konfigurere skript for å ta php-intl hensyn samtidig bygge Makefile, vi trenger å installere en annen avhengighet - ICU. Last ned dette fra ICU-Project.org og gjennomføre.
    Tjære xzvf icu4c-4_8_1-src.tgzcd ICU /kilde /runConfigureICU MacOSXmakesudo make install

    Dette håndteres alle grunnleggende avhengig PHP noensinne kunne ønske fra oss (for nå ). Vi kan nå endelig bygge og installere det

    Installere

    Først, mens i PHP dearkivert kilde mappe, utføre følgende konfigurere kommandoen. Anmeldelser ./configure \\ - prefix = /usr \\ - Mandir = /usr /share /mann \\ - infodir = /usr /share /info \\ - sysconfdir = /private /etc \\ - med-apxs2 = /usr /sbin /apxs \\ - enable-cli \\ - med-config-fil-path = /etc \\ - med-libxml-dir = /usr \\ - med-OpenSSL = /usr \\ - med-Kerberos = /usr \\ - med-zlib = /usr \\ - enable-bcmath \\ - med-bz2 = /usr \\ - enable-kalender \\ - med-curl = /usr \\ - enable-dba \\ - enable-exif \\ - enable-ftp \\ --with-gd \\ - enable-gd-innfødte TTF \\ - med-ICU-dir = /usr \\ - med-iodbc = /usr \\ - med-ldap = /usr \\ - med-ldap -sasl = /usr \\ - med-libedit = /usr \\ - enable-mbstring \\ - enable-mbregex \\ - med-mysql = mysqlnd \\ - med-mysqli = mysqlnd \\ - uten-pære \\ - -med-PUD-mysql = mysqlnd \\ - med-mysql-sokk = /var /mysql /mysql.sock \\ - med-readline = /usr \\ - enable-shmop \\ - med-snmp = /usr \\ enable-såpe \\ - enable-sockets \\ - enable-sysvmsg \\ - enable-SYSVSEM \\ - enable-SYSVSHM \\ - med-ryddig \\ - enable-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-PUD-pgsql = /usr \\ - med-Freetype-dir = /usr /X11 \\ --with-jpeg-dir = /usr \\ - med-png-dir = /usr /X11

    Når dette er gjort, utføre
    $ gjøre test

    "make test" runs gjør og tester samlinger for feil

    Som nevnt i avsnittet om Build Theory, går dette gjøre og tester kompilering. Dette kan ta en stund, opp til 30 minutter, fordi hver eneste fasett av PHP blir testet. Når du er ferdig, hvis PHP funnet noen feil (og det sannsynligvis vil) rapportere dem til utviklerne ved å følge instruksjonene på skjermen. Ikke bekymre deg, alt er fortsatt fine - de feilene som blir funnet er vanligvis mindre enn viktig
    Som du kan se, noen 11503 tester skal utføres.. Dette vil ta litt tid.

    Hvis du har den originale PHP allerede er aktivert og konfigurert, ta en sikkerhetskopi av php.ini filen nå. Det bør være i /etc/php.ini

    Til slutt kjører du følgende for å faktisk installere PHP.
    $ Sudo make install

    Det er best å ikke overskrive den nye php.ini fil med din gamle hvis du har gjort en backup. I stedet kopiere verdiene du trenger manuelt, for å holde på den sikre siden -. På den måten vi sørge for at den nye php.ini filen er fullt kompatibel med den nylig installerte versjonen



    Apache konfigurasjonen Anmeldelser

    Nesten ferdig! Hvis du allerede hadde aktivert PHP på maskinen før dette, og det eneste formålet med å lese denne artikkelen ble faktisk oppgradering av eksisterende PHP, så er du ferdig -. Alt skal fungere

    Hvis ikke, men vi trenger å Aktiver PHP i OSX native Apache installasjon. Siden httpd.conf filen vil trolig være på standardplasseringen, åpner du den via Terminal i TextEdit som så:
    $ SUDO_EDITOR = "open -FWne" sudo -e /etc/apache2/httpd.conf

    I am bruke sudo REDAKTØR kommandoen her for å åpne filen i TextEdit, rett og slett fordi jeg anser det mye enklere å redigere filer i enn Vim eller Nano. Jeg kunne like godt ha brukt "$ sudo vim /ect/apache2/httpd.conf" for å redigere den i vim

    Deretter Uncomment følgende linjer (de er ikke ved siden av hverandre -. Bruke Finn kommando for å finne dem)
    LoadModule php5_module libexec /apache2 /libphp5.soInclude /private/etc/apache2/extra/httpd-vhosts.conf

    The første linje aktiverer bruk av PHP som en Apache-modul. Den andre linjen er det slik at hoved httpd.conf (Apache konfigurasjon) fil høster de virtuelle vertene fra vhosts filen og sparer oss bryet med overdreven redigering i altfor sensitiv httpd.conf. Dette har den ekstra fordelen av å la deg lagre en vhosts fil et sted utenfor /etc, og støtte den opp for andre utviklings maskiner eller reinstallations.

    En meget praktisk tilnærming til dette er vert det på en sky tjeneste som Google Drive eller Dropbox og linke til den direkte fra httpd.conf. På den måten når du legger til en ny virtuell host, det blir automatisk installert på hver og en av dine maskiner like fort som du starter den lokale Apache server.



    Legge til en vhost og Wrapping Up

    En virtuell host er et lokalt vertskap imaginær domene. Den lar utgangspunktet du teste ut dine prosjekter i nettleseren ved å angi ulike nettadresser. For eksempel, på min maskin, kunne jeg besøke http: //mactuts.tutorial og se Hello World app denne seksjonene ender med, eller jeg kunne besøke http://mw.dev å se utviklingen versjon av et prosjekt jeg er jobber med. Ganske enkelt, utløser en annen URL en annen kilde mappe og åpner et annet prosjekt som en nettside. Her er en rask guide på hvordan du legger til en vhost - hvis du har vhosts satt opp allerede, eller forstå alt om dem, kan du gjerne hoppe over denne delen

    Trinn 1:. Redigere hosts-filen

    Først vil vi nevne vårt utvalg vhost "mactuts.tutorial". For å gjøre dette, legg til en oppføring i /etc /hosts som ser ut som dette:
    127.0.0.1 mactuts.tutorial

    Dette betyr tilgang til url http: //mactuts.tutorial i nettleseren vil gå til 127.0.0.1 .: 80, eller med andre ord, til port 80 av våre lokale server (Apache)
    Dette er et eksempel hosts. Merker jeg har også noen andre virtuelle verter satt opp på denne maskinen
    Trinn 2: Legg til en Apache vhost

    Deretter legger du til en blokk i etc /apache2 /ekstra /httpd-vhosts.conf som ser omtrent slik ut dette:
    < virtuellverten *: 80 > Server mactuts.tutorial Document "/Users /{BRUKERNAVN} /nettsteder /mactuts" Server [email protected]~~number=plural < Directory "/Users /{BRUKERNAVN} /Nettsteder /mactuts" > Alternativer avskriftene FollowSymLinks AllowOverride All Bestill tillate, nekte Tillate fra alle < /Directory > < /virtuellverten >

    Erstatt {BRUKERNAVN} med ditt eget brukernavn, uten klammeparentes. Dette forteller Apache følgende: Hvis du har noe på port 80, sjekk den opprinnelige url navn. Hvis det er mactuts.tutorial, deretter sette opp alle disse alternativene

    Trinn 3:. Restart Apache

    Deretter starte Apache med
    $ sudo apachectl restart
    Trinn 4: Lag Index File

    3) Lag en mappe "/Users /{BRUKERNAVN} /nettsteder /mactuts" (naturligvis, erstatte {username} med OSX brukerens navn) og legger inn en index.php fil inn i det med den følgende innhold:?
    < php echo 'Hello world'; ? >
    Steg 5: Sjekk det ut

    Gå til http: //mactuts.tutorial. Du skal se "Hello World"



    Alternativer

    Nylig, et alternativ til denne tilnærmingen dukket opp - installerer PHP gjennom Homebrew selv. Problemet er, det finnes ingen offisielle kanaler på tidspunktet for dette skriftlig (tidlig i august 2012) så et alternativ springen 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 eventyrlystne sjekk dette innlegget ut og prøve å endre det i henhold til din egen OS og ønsket PHP versjon.

    Et mer stabilt alternativ synes å være tilgjengelig her, men tilbakemeldingene er slapp og det er ikke mye å gå på, så jeg skal la disse metodene opp til eksperimentering av leserne.

    Oppdateringer

    Her er noen alternativer foreslått av kommentatorer siden innlegget ble publisert.

    php_osx
    Et annet alternativ (tilsynelatende glatt arbeidende) til dette ble brakt til min oppmerksomhet ved bemerket DaftViking og inkluderer installere PHP via php_osx.

    Macports
    Selv om jeg oppfordrer utfasing av Macports i favør av Homebrew, synes det Macports lagt en stabilisert versjon av PHP også, så det kan gi en annen arbeider alternativ. Jeg har personlig ikke testet denne tilnærmingen, men for de dyktigere med Macports, kan ytterligere informasjon finnes her. Takk til Redditor nemeth88 for heads up!



    Konklusjon

    OS X kommer med et forhåndsinstallert PHP og Apache-konfigurasjonen. Dessverre, PHP versjon at den kommer med er alvorlig utdatert, og det aldri oppdaterer unntatt når en ny OS-versjon blir installert. Da den nye PHP versjon inkludert er allerede utdatert, så i tillegg til å hente en * AMP (Apache /MySQL /PHP) pakken (som sjelden, om noensinne, har up-to-date versjoner av PHP), hva kan man gjøre bortsett oppdatere den manuelt?

    I denne opplæringen vi har dekket det grunnleggende om å bygge fra kilden, vi har bygget en ny up-to-date versjon av PHP og installert det, og vi har selv installert Homebrew som vil gjøre ytterligere installasjoner av programvare og biblioteker super enkelt. Vi dekket også etablering av en virtuell vert og testet vår installasjon for å sikre at det fungerer. Jeg håper du har hatt glede av det, og at alt fungerte som planlagt. Hvis du får problemer, gjerne legge inn kommentarer, og vi skal jobbe gjennom problemene sammen. Anmeldelser