Să vedem cum putem actualiza manual instalarea nativă OS X 10.8 PHP la cea mai nouă versiune (în prezent, 5.4.5) și pentru a obține alte software-uri utile instalate în timp ce suntem la ea. * Pachetele AMP sunt practice, dar rareori actualizate, astfel încât absorbția procedurii descrise în acest articol este de neprețuit pentru fiecare dezvoltator PHP.
Dacă sunteți interesat doar de aspectul practic al instalării PHP, nu ezitați să omiteți această secțiune, dar ar putea fi util pentru dvs. mai târziu să știți cum funcționează efectiv și de ce anumite comenzi sunt necesare.
Fiecare instalare de software de la sursă are în principiu același lanț de comenzi: Descărcați fișierele sursă, configurați, faceți, testați opțional, instalați.
Scriptul "configure" spune "face" ceea ce va fi construit. Executat prin tastarea "./configure", scriptul de configurare analizează dependențele, verifică dacă executați un sistem de operare acceptat, setați fișierele necesare pentru sistemul de operare dat și generează în final un makefile, care, atunci când se numește "make", dictează cum și exact ce urmează să fie construit.
"Configure" spune "face" ceea ce va fi construit
Dacă scriptul de configurare constată că există dependențe sau erori lipsă, acesta efectuează o ieșire și oprește execuția, permițând utilizatorului să elimine sau să depășească orice obstacole înainte de a continua. Comanda de configurare apare întotdeauna când se construiește din sursă.
Apoi, "face" construiește ceea ce sa spus să-l construiască. "Make" este inițializată doar prin tastarea "make" și este de fapt un utilitar GNU care este folosit în general pentru a menține un set de fișiere și a le recompila dacă este necesar.
"Make" construiește ceea ce sa spus să se construiască
Pentru a funcționa, aceasta necesită un makefile - un fișier în care sunt descrise directivele sale și se notează relațiile dintre fișierele respective. Odată ce rulează, comanda de creare citește fișierul makefile și efectuează sarcinile.
Comanda "make test" rulează comanda make, dar testează și compilația împotriva unei ținte de testare. Nu toate distribuțiile sursă susțin "face test", deci dacă nu este specificat explicit în documentația de instalare a software-ului care se instalează, se utilizează regulatul "make".
Comanda "make test" rulează comanda make, dar testează și compilația împotriva unei ținte de testare.
"Sudo make install" instalează fișierele care "face" încorporate în foldere predefinite. Se ocupă de toate incluziunile, actualizează și rezolvă căile și mută totul acolo unde ar trebui să fie. Eficace, acesta termină instalarea și utilizatorul nu are de obicei nevoie să facă altceva.
Acesta este exact ceea ce poate face Homebrew - managerul de pachete pe care îl instalăm în secțiunea următoare. Se poate executa același flux intern. Nu vedeți nimic în mod direct, dar mai mult sau mai puțin același lanț este executat dacă "formula" prezentată de "bere" este făcută în acest fel.
Aceasta face ca întregul proces să fie mai greoaie prin verificarea automată a dependențelor și instalarea acestora înainte de a se deplasa în pachetul principal desemnat. Apoi, le descarcă și o dezarhivează și execută configurarea, realizarea, realizarea lanțului de instalare pentru a termina instalarea.
Aproape fiecare instalare din sursă urmează aceiași pași: descărcare, configurare, realizare, instalare.
Pentru ca instalarea PHP să fie cât mai lină posibil, trebuie să instalăm Homebrew, un manager de pachete pentru OSX care poate gestiona o mulțime de instalații pentru dvs. - instalații care altfel ar putea necesita proceduri complexe de construire și pot avea dependențe critice care iau ore pentru a rezolva.
Dacă ai instalat Homebrew, te vei beneficia pe termen lung.
Dacă ați instalat Homebrew, veți beneficia pe termen lung, nu doar pentru scopul acestui articol. Acesta oferă o modalitate rapidă de instalare a bibliotecilor și a software-urilor comune, fără a fi necesară construirea de la sursă.
Pentru a le instala, trebuie să facem următoarele (sări peste această secțiune dacă ai instalat Homebrew):
$ sudo xcode-select -sincronizare /Applications/Xcode.app/Contents/Developer $ ln -s / opt / X11 / usr / X11
... luate din acest post. Acest lucru se întâmplă în unele cazuri de Mountain Lion, din anumite motive.
Odată ce ați terminat, rulați medicul de preparare și verificați dacă totul funcționează (conform instrucțiunilor de pe site-ul web Homebrew).
În mod previzibil, instalarea PHP necesită instalarea anumitor biblioteci. Din fericire, Homebrew este aici să se ocupe de aceste instalații pentru noi. Instalați următoarele:
brew instalare instalare libjpeg brew instalare instalare pk brew instalare libxml2 brew install mcrypt
După ce ați terminat, descărcați fișierele sursă PHP de la Php.net. Despachetați arhiva, deschideți terminalul și comutați la directorul sursă (de exemplu, cd ~ / Downloads / php-5.4.5 / sau oriunde ați descărcat sursele).
Dacă intenționați să lucrați cu Zend Framework 2 și doriți să începeți cu aplicația scheletului de probă, așa cum a făcut-o Rob "Akrabat" Allen sau dacă intenționați să implementați aplicația în mai multe limbi, aveți nevoie de suport php-intl. Pentru a permite scriptului de configurare să ia în considerare php-intl în timpul construirii makefile, trebuie să instalăm o altă dependență - ICU. Descărcați acest lucru de la ICU-Project.org și executați:
tar xzvf icu4c-4_8_1-src.tgz cd icu / sursă ./runConfigureICU MacOSX face sudo make install
Aceasta a rezolvat toate dependențele de bază pe care PHP le-ar putea dori vreodată de la noi (deocamdată). Acum putem construi și instala în final.
În primul rând, în folderul sursă neanalizat al PHP, executați următoarea comandă de configurare:
./ configure \ -prefix = / usr \ --mandir = / usr / share / man \ --infodir = / usr / share / info \ --sysconfdir = / private / etc \ --with-apxs2 = sbin / apxs \ --enable-cli \ --cu -config-file-path = / etc \ --with-libxml-dir = / usr \ --with-openssl = / usr \ --with-kerberos = usr \ --with-zlib = / usr \ --enable-bcmath \ --with-bz2 = / usr \ --enable-calendar \ --with-curl = / usr \ --enable-dba \ -exif \ -enable-ftp \ --with -gd \ --enable-gd-native-ttf \ --with-icu-dir = / usr \ --with-iodbc = / usr \ = / usr \ --with-ldap-sasl = / usr \ --with-libedit = / usr \ --enable-mbstring \ --enable-mbregex \ --with-mysql = mysqlnd \ mysqlnd \ --without-pear \ --cu-pdo-mysql = mysqlnd \ --cu-mysql-sock = / var / mysql / mysql.sock \ --with-snmp = / usr \ --activitate-sapun \ --poduri de sincronizare \ --enable-sysvmsg \ -enable-sysvsem \ -enable-sysvshm \ --with-tidy \ -enable-wddx \ - cu-xmlrpc \ - cu-iconv-dir = / usr \ --cu-xsl = / usr \ --enable-zip \ --with -imap = / usr / local / imap-2007 \ - cu-kerberos \ --with -imap-ssl \ --enable-intl \ --with-pcre -regex \ --with-pgsql = / usr \ --with-pdo-pgsql = - cu-freetype-dir = / usr / X11 \ - cu-jpeg-dir = / usr \ - cu-png-dir = / usr / X11
După ce ați terminat, executați
$ face test
"Face test" rulează și testează compilațiile pentru erori
După cum se menționează în secțiunea Teoria construirii, aceasta rulează și testează compilația. Acest lucru poate dura un timp, de până la 30 de minute, deoarece fiecare fațet al PHP este testat. Când ați terminat, dacă PHP a descoperit erori (și probabil va) le raportează dezvoltatorilor urmând instrucțiunile de pe ecran. Nu vă faceți griji, totul este bine - erorile pe care le găsește sunt, de obicei, mai puțin importante.
Dacă aveți deja originalul PHP activat și configurat, faceți o copie de siguranță a fișierului php.ini acum. Ar trebui să fie în /etc/php.ini
În cele din urmă, executați următoarele pentru a instala PHP.
$ sudo face instalare
Cel mai bine este să nu înlocuiți noul fișier php.ini cu cel vechi dacă ați făcut o copie de rezervă. În schimb, copiați valorile de care aveți nevoie manual, pentru a rămâne pe partea sigură - în acest fel ne asigurăm că noul fișier php.ini este pe deplin compatibil cu versiunea nouă instalată.
Aproape terminat! Dacă ați fi activat deja PHP pe mașina dvs. înainte de aceasta și singurul scop al citirii acestui articol a fost de fapt actualizarea PHP existentă, atunci ați terminat - totul ar trebui să funcționeze.
Dacă nu, cu toate acestea, trebuie să activați PHP în instalarea Apache nativă Apache. Deoarece fișierul httpd.conf va fi probabil în locația implicită, deschideți-l prin Terminal în TextEdit, așa cum este acesta:
$ SUDO_EDITOR = "deschis -FWne" sudo -e /etc/apache2/httpd.conf
Folosesc comanda SUDO EDITOR aici pentru a deschide fișierul în TextEdit, pur și simplu pentru că consider că este mult mai ușor să editați fișiere decât Vim sau Nano. Aș putea folosi la fel de bine "$ sudo vim /ect/apache2/httpd.conf" pentru ao edita în vim.
Apoi, detașați următoarele linii (acestea nu sunt una lângă alta - utilizați comanda Căutare pentru a le localiza)
LoadModule php5_module libexec / apache2 / libphp5.so Include /private/etc/apache2/extra/httpd-vhosts.conf
Prima linie activează utilizarea PHP ca modul Apache. A doua linie este acolo, astfel încât fișierul principal httpd.conf (configurația Apache) recoltează gazdele virtuale din fișierul vhosts și ne salvează problemele de editare excesivă în httpd.conf prea sensibil. Acest lucru are avantajul suplimentar de a vă permite să salvați un fișier vhosts undeva în afara / etc, și să îl salvați pentru alte mașini de dezvoltare sau pentru reinstalări.
O abordare foarte practică în acest sens îl găzduiește într-un serviciu de tip cloud, cum ar fi Google Drive sau Dropbox, și care se leagă direct de acesta de la httpd.conf. În acest fel, atunci când adăugați o nouă gazdă virtuală, aceasta este instalată automat pe fiecare mașină doar de îndată ce reporniți serverul local Apache.
O gazdă virtuală este un domeniu imaginar găzduit local. În principiu, vă permite să vă testați proiectele în browser introducând diferite adrese URL. De exemplu, pe mașina mea, am putea vizita http: //mactuts.tutorial și să vedeți aplicația Hello World cu care se termină aceste secțiuni sau am putea vizita http://mw.dev pentru a vedea versiunea de dezvoltare a unui proiect pe care sunt lucrul la. Destul de simplu, o altă adresă URL declanșează un alt director sursă și deschide un alt proiect ca un site web. Iată un ghid rapid despre cum să adăugați un vhost - dacă aveți vhosts deja configurat sau înțelegeți totul despre ele, nu ezitați să omiteți această secțiune.
Mai întâi, vom numi exemplul vhost "mactuts.tutorial". Pentru aceasta, adăugați o intrare în / etc / hosts care arată astfel:
127.0.0.1 mactuts.tutorial
Aceasta înseamnă că accesarea http: //mactuts.tutorial url în browser va ajunge la 127.0.0.1:80 sau, cu alte cuvinte, la portul 80 al serverului nostru local (Apache).
Apoi, adăugați un bloc în / etc / apache2 / extra / httpd-vhosts.conf care arată cam așa:
ServerName mactuts.tutorial DocumentRoot "/ Utilizatori / USERNAME / Site-uri / mactuturi" ServerAdmin [email protected] Opțiuni Indexuri FollowSymLinks AllowOverride Toate comenzile permit, resping Permiteți tuturor
Înlocuiți USERNAME cu propriul nume de utilizator, fără bretele curbate. Acest lucru spune Apache următoarele: Dacă aveți ceva pe portul 80, verificați numele inițial url. Dacă este mactuts.tutorial, atunci configurați toate aceste opțiuni.
Apoi, reporniți Apache cu
$ sudo apachectl reporniți
3) Creați un folder "/ Users / USERNAME / Sites / mactuts" (în mod natural, înlocuiți USERNAME cu numele utilizatorului OSX) și plasați un fișier index.php în el cu următorul conținut:
Accesați http: //mactuts.tutorial. Ar trebui să vedeți "Hello World"!
Recent, a apărut o alternativă la această abordare - instalarea PHP prin Homebrew în sine. Problema este că în momentul acestei scrieri nu există canale oficiale (începutul lunii august 2012), deci trebuie să fie activată o robinet alternativ pentru Homebrew.
De asemenea, versiunea OS X pe care am testat-o, Mountain Lion, din păcate, nu a reușit să instaleze în acest fel și a aruncat la mine erori vagi pe care nu le puteam rezolva. Dacă vă simțiți aventuros, verificați această postare și încercați să o modificați în funcție de propriul sistem de operare și versiunea dorită de PHP.
O alternativă mai stabilă pare să fie disponibilă aici, dar feedback-ul este lax și nu mai sunt multe de făcut, așa că voi lăsa aceste metode până la experimentarea cititorilor.
Iată câteva variante sugerate de comentatori de la publicarea postului.
php_osx
O alta (aparent neteda) alternativa la aceasta mi-a fost adusa in atentie de Commenter DaftViking si include instalarea PHP prin php_osx.
MacPorts
Deși încurajez eliminarea treptată a Macports în favoarea Homebrew, se pare că Macports a adăugat o versiune stabilizată a PHP-ului, astfel încât ar putea oferi o altă alternativă de lucru. Nu am testat personal această abordare, dar pentru cei cu experiență cu Macports, mai multe informații pot fi găsite aici. Mulțumită lui Redditor nemeth88 pentru heads-up!
OS X vine cu o configurație preinstalată PHP și Apache. Din păcate, versiunea PHP cu care este livrată este extrem de depășită și nu se actualizează niciodată, cu excepția cazului în care se instalează o nouă versiune de sistem de operare. Până atunci, noua versiune PHP inclusă este deja depășită, astfel încât, pe lângă extragerea unui pachet * AMP (Apache / Mysql / Php) (care rareori, dacă vreodată, are versiuni actualizate ale PHP), ce se poate face cu excepția actualizării manual?
În acest tutorial am acoperit elementele de bază ale clădirii de la sursă, am construit o nouă versiune actualizată a PHP și l-am instalat și chiar am instalat Homebrew, ceea ce va face super instalările de software și biblioteci super . Am acoperit, de asemenea, crearea unei gazde virtuale și am testat instalarea noastră pentru a ne asigura că funcționează. Sper că v-ați bucurat de asta și că totul a funcționat conform planului. Dacă întâmpinați probleme, nu ezitați să postați în comentarii și vom rezolva problemele împreună.