Låt oss se hur vi manuellt kan uppgradera den ursprungliga OS X 10.8 PHP-installationen till den senaste versionen (för närvarande 5.4.5) och få någon annan användbar programvara installerad när vi är på den. * AMP-paket är praktiska, men sällan aktuella, så att absorbera proceduren avbildad i denna artikel är ovärderlig för varje PHP-utvecklare.
Om du bara är intresserad av den praktiska aspekten av att installera PHP, kan du hoppa över det här avsnittet, men det kan vara användbart för dig senare att veta hur det fungerar och varför vissa kommandon är nödvändiga.
Varje installation av programvara från källan följer i princip samma kommandokedja: Ladda ner källfilerna, konfigurera, skapa, valfritt test, installera.
Skriptet "configure" berättar "gör" vad som ska byggas. Exekveras genom att skriva "./configure", konfigurerar skriptet beroenden, verifierar att du kör ett operativsystem som stöds, ställer in nödvändiga filer för det angivna operativsystemet och genererar slutligen en makefile, som när "make" kallas dikterar hur och vad exakt ska byggas.
"Configure" berättar "gör" vad som ska byggas
Om konfigurationsskriptet upptäcker saknade beroenden eller fel, utför det en utgång och slutar exekvering, så att användaren kan ta bort eller omarbeta några hinder innan man fortsätter. Konfigurera kommandot kommer alltid först när du bygger från källan.
Därefter bygger "make" vilken konfiguration som berättade att den ska byggas. "Make" initialiseras genom att bara skriva "make" och är egentligen ett GNU-verktyg som vanligtvis används för att upprätthålla en uppsättning filer och omkompilera dem om det behövs.
"Make" bygger vilken konfiguration som berättade att den ska byggas
För att fungera kräver det en makefile - en fil där dess direktiv beskrivs och relationerna mellan de aktuella filerna noteras. När du har kört, läser kommandot kommandot makefile och utför uppgifterna.
Kommandot "make test" kör kommandot make men testar även kompileringen mot ett testmål. Inte alla källfördelningar stöder "gör test", så om inte explicit anges i installationsdokumentationen för den programvara som installeras, en är att använda den vanliga "make".
Kommandot "make test" kör kommandot make men testar även kompileringen mot ett testmål.
"Sudo make install" installerar de filer som "gör" inbyggda i fördefinierade mappar. Den hanterar alla inklusioner, uppdateringar och löser vägar och flyttar allt till var den borde vara. Effektivt slutar installationen och användaren behöver vanligtvis inte göra något annat.
Det här är faktiskt exakt vad Homebrew - paketchefen vi installerar i nästa avsnitt - kan göra. Det kan exekvera samma flöde, internt. Du ser inte riktigt något direkt, men mer eller mindre samma kedja utförs, om "formeln" som skickats av "bryggeriet" görs så.
Det gör hela processen mindre besvärlig genom att automatiskt söka efter beroenden och installera dem innan de flyttas till det huvudsakliga paketet. Den hämtar sedan och unarchives den och kör konfigurerar, gör, gör installationskedjan att slutföra installationen.
Nästan varje installation från källan följer samma steg: ladda ner, konfigurera, skapa, installera.
För att installationen av PHP ska gå så smidigt som möjligt måste vi installera Homebrew, en pakethanterare för OSX som kan hantera många installationer för dig - installationer som annars skulle kräva komplexa byggprocedurer och kan ha kritiska beroenden som tar timmar att lösa.
Att ha Homebrew installerat kommer att gynna dig på lång sikt.
Att ha Homebrew installerat kommer att gynna dig i det långa loppet, inte bara för syftet med denna artikel. Det erbjuder ett snabbt sätt att installera vanliga bibliotek och programvara utan att behöva bygga från källan.
För att installera det måste vi göra följande (hoppa över det här avsnittet om du har installerat Homebrew):
$ sudo xcode-select -witch /Applications/Xcode.app/Contents/Developer $ ln -s / opt / X11 / usr / X11
... taget från detta inlägg. Detta händer på vissa fall av Mountain Lion av någon anledning.
När du är klar, kör bryggläkare och verifiera att allt fungerar (enligt instruktioner på Homebrews hemsida).
Förutsättningsvis kräver installation av PHP att du måste ha vissa bibliotek installerade. Lyckligtvis är Homebrew här för att hantera dessa installationer för oss. Installera följande:
brygga installera libjpeg brygga installera pcre brygga installera libxml2 brygga installera mcrypt
När du är färdig, ladda ner PHP-källfilerna från Php.net. Packa upp arkivet, öppna din terminal och växla till källkatalogen (t.ex. cd ~ / Nedladdningar / php-5.4.5 / eller var du än hämtade källorna).
Om du planerar att arbeta med Zend Framework 2 och vill börja med provskelettansökan som gjord av Rob "Akrabat" Allen, eller om du tänker distribuera din ansökan i flera tidsåtgångar, behöver du php-intl-support. För att låta konfigurationsskriptet ta php-intl i beaktande när du bygger makefile behöver vi installera ett annat beroende - ICU. Ladda ner det här från ICU-Project.org och kör:
tjära xzvf icu4c-4_8_1-src.tgz cd icu / source ./runConfigureICU MacOSX gör sudo make install
Detta hanterade alla grundläggande beroenden PHP någonsin skulle kunna ha från oss (för nu). Vi kan nu slutligen bygga och installera det.
Först, medan du i PHP: s obearbetade källkatalog, kör följande konfigurationskommando:
./ config \ --prefix = / usr \ --mandir = / usr / share / man \ --infodir = / usr / share / info \ --sysconfdir = / privat / etc \ - med-apxs2 = / usr / sbin / apxs \ --enable-cli \ --with-config-file-path = / etc \ - med-libxml-dir = / usr \ - med-openssl = / usr \ - med-kerberos = / usr \ - med-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 \ --with-ldap-sasl = / usr \ --with-libedit = / usr \ --enable-mbstring \ --enable-mbregex \ --with-mysql = mysqlnd \ --with-mysqli = mysqlnd \ --without-pear \ --with-pdo-mysql = mysqlnd \ --with-mysql-sock = / var / mysql / mysql.sock \ --with-readline = / usr \ --enable-shmop \ - med-snmp = / usr \ --enbar-tvålen \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --withy tidy \ --enable-wddx \ --with-xmlrpc \ --with-iconv-dir = / usr \ --with-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 \ -med-freetype-dir = / usr / X11 \ - med-jpeg-dir = / usr \ - med-png-dir = / usr / x11
En gång gjort, kör
$ göra test
"Test" körningar gör och testar kompileringarna för fel
Som nämnts i avsnittet om byggteori gör och gör dessa körningar sammanställningen. Det kan ta ett tag, upp till 30 minuter, eftersom varje enskild fas av PHP testas. När det är klart, om PHP hittade några fel (och det kommer det troligen) rapportera dem till utvecklarna genom att följa instruktionerna på skärmen. Oroa dig inte, allt är fortfarande bra - de fel som det finner är vanligtvis mindre än viktiga.
Om du har det ursprungliga PHP redan aktiverat och konfigurerat, gör en säkerhetskopia av din php.ini-fil nu. Det borde vara i /etc/php.ini
Slutligen kör följande för att faktiskt installera PHP.
$ sudo gör installationen
Det är bäst att inte skriva över den nya php.ini-filen med din gamla om du gjorde en säkerhetskopia. Istället kopierar du de värden du behöver manuellt, för att stanna på den säkra sidan - så ser vi till att den nya php.ini-filen är helt kompatibel med den nyligen installerade versionen.
Nästan färdig! Om du redan hade aktiverat PHP på din maskin före detta och det enda syftet med att läsa den här artikeln var faktiskt att uppgradera det befintliga PHP, då är du klar - allt ska fungera.
Om inte, måste vi aktivera PHP i OSXs ursprungliga Apache-installation. Eftersom httpd.conf-filen troligen kommer att vara i standardplatsen öppnar du den via Terminal i TextEdit så här:
$ SUDO_EDITOR = "open -FWne" sudo -e /etc/apache2/httpd.conf
Jag använder SUDO EDITOR kommandot här för att öppna filen i TextEdit, helt enkelt för att jag anser det mycket lättare att redigera filer än Vim eller Nano. Jag kunde lika bra ha använt "$ sudo vim /ect/apache2/httpd.conf" för att redigera det i vim.
Därefter Kommentera följande rader (de är inte bredvid varandra - använd kommandot Sök för att hitta dem)
LoadModule php5_module libexec / apache2 / libphp5.so Inkludera /private/etc/apache2/extra/httpd-vhosts.conf
Den första raden aktiverar användningen av PHP som en Apache-modul. Den andra raden är där så att den huvudsakliga httpd.conf-filen (Apache's configuration) skördar de virtuella värdarna från vhosts-filen och sparar oss besväret med överdriven redigering i den alltför känsliga httpd.conf. Detta har den extra fördelen att du kan spara en vhosts-fil någonstans utanför / etc, och säkerhetskopiera den till andra utvecklingsmaskiner eller ominstallationer.
Ett mycket praktiskt tillvägagångssätt för detta är värd för en molntjänst som Google Drive eller Dropbox och länkar direkt till httpd.conf. På det sättet när du lägger till en ny virtuell värd installeras den automatiskt på alla dina maskiner, så snart du startar den lokala Apache-servern.
En virtuell värd är en lokalt värd imaginär domän. Det låter dig i princip testa dina projekt i webbläsaren genom att ange olika webbadresser. Till exempel på min maskin kunde jag besöka http: //mactuts.tutorial och se Hello World-appen som dessa avsnitt slutar med, eller jag kunde besöka http://mw.dev för att se utvecklingsversionen av ett projekt jag är jobbar på. En helt annan URL utlöser helt enkelt en annan källkatalog och öppnar ett annat projekt som en webbplats. Här är en snabbguide om hur du lägger till ett vhost - om du redan har vhosts konfigurerat eller förstått allt om dem, kan du hoppa över det här avsnittet.
Först ska vi namnge vårt exempel vhost "mactuts.tutorial". För att göra detta lägger du till en post i / etc / hosts som ser ut så här:
127.0.0.1 mactuts.tutorial
Detta innebär att du får åtkomst till URL: http: //mactuts.tutorial i webbläsaren går till 127.0.0.1:80 eller med andra ord till port 80 på vår lokala server (Apache).
Därefter lägger du till ett block i etc / apache2 / extra / httpd-vhosts.conf som ser något ut så här:
ServerName mactuts.tutorial DocumentRoot "/ Användare / USERNAME / Sites / mactuts" ServerAdmin [email protected] Alternativ Indexes FollowSymLinks AllowOverride All Order allow, deny Tillåt från alla
Byt ut USERNAME med ditt eget användarnamn, utan de lockiga hängslen. Detta berättar Apache följande: Om du har något på port 80, kontrollera dess ursprungliga url namn. Om det är mactuts.tutorial, sätt sedan upp alla dessa alternativ.
Starta om Apache med
$ sudo apachectl omstart
3) Skapa en mapp "/ Users / USERNAME / Sites / mactuts" (ersätt naturligtvis USERNAME med ditt OSX-användares namn) och lägg in en index.php-fil med följande innehåll:
Gå till http: //mactuts.tutorial. Du borde se "Hello World"!
Nyligen har ett alternativ till detta tillvägagångssätt dykt upp - installerat PHP genom Homebrew själv. Problemet är att det inte finns några officiella kanaler vid tidpunkten för det här skrivandet (början av augusti 2012) så att en alternativ kran måste aktiveras för Homebrew.
Också, OS X-versionen som jag testade detta på, Mountain Lion, lyckades tyvärr inte att installera på det sättet och slog vaga fel på mig som jag inte kunde lösa. Om du känner dig äventyrlig, kolla det här inlägget och försök att ändra det enligt ditt eget operativsystem och önskad PHP-version.
Ett mer stabilt alternativ verkar vara tillgängligt här, men återkopplingen är lax och det går inte mycket att fortsätta, så jag lämnar dessa metoder upp till läsarnas experimentering.
Här är några alternativ som föreslagits av kommenterare sedan inlägget publicerades.
php_osx
Ett annat (till synes smidigt fungerande) alternativ till detta uppmärksammades av commenter DaftViking och inkluderar att installera PHP via php_osx.
Macports
Även om jag uppmuntrar avvecklingen av Macports till förmån för Homebrew, verkar det som om Macports lagt till en stabiliserad version av PHP, så det kan också ge ett annat arbetsalternativ. Jag har personligen inte testat detta tillvägagångssätt, men för dem som är skickliga med Macports, kan du hitta mer information här. Tack vare Redditor nemeth88 för heads up!
OS X levereras med en förinstallerad PHP- och Apache-konfiguration. Tyvärr, den PHP-version som den kommer med är allvarligt föråldrad, och den uppdateras aldrig, utom när en ny operativversion installeras. Den nya nya PHP-versionen är redan föråldrad, förutom att hämta ett * AMP (Apache / Mysql / Php) -paket (vilket sällan någonsin har uppdaterade versioner av PHP), vad kan man göra utom uppdatera det manuellt?
I den här handledningen har vi täckt grunderna för att bygga från källan, vi har byggt en ny uppdaterad version av PHP och installerat den, och vi har även installerat Homebrew som gör det möjligt för ytterligare installationer av programvara och bibliotek . Vi omfattade också skapandet av en virtuell värd och testade vår installation för att säkerställa att den fungerar. Jag hoppas att du har haft det och att allt fungerade som planerat. Om du stöter på problem, skriv gärna in i kommentarerna och vi kommer att arbeta igenom problemen tillsammans.