Installiamo php 5.2.10 su Snow Leopard
Eh si! Con Snow Leopard viene fornito a corredo il php 5.3 cioè l’ultima versione disponibile. Il problema è che php 5.3 apporta delle modifiche sostanziali a linguaggio ed elimina alcune funzioni, che poi da diversi anni si chiedeva di non usare più dichiarandole “Deprecated”, che di fatto impediscono il funzionamento di alcuni dei software open-source più comuni fra cui zen-cart, magento, joomla etc. Poiché sono uno sviluppatore che opera principalmente con questi software era per me impossibile mantenere il php 5.3 quindi piano piano sono riuscito a compilare il php 5.2.10 e farlo funzionare con Snow Leopard.
Riporto di seguito la procedura così come l’ho eseguita, è piuttosto lunga e un pò snervante e richiede un minimo di dimestichezza con la shell Unix. Alla fine otterrete una versione di php piuttosto completa, volendo potete aggiungere o togliere le estensioni, e completamente stand-alone che funziona a 64 bit correttamente con web server apache installato di default con Snow Leopard.
Installate prima di tutto mysql prelevando l’ultima versione dal sito www.mysql.com, ovviamente prendete quella per 10.5 x86_64
Prepariamo le directory necessarie:
sudo mkdir /usr/local/php5.2
mkdir ~/src
cd src
installare prima le librerie necessarie in /usr/local/php5.2/
installazione t1lib
curl -O ftp://sunsite.unc.edu/pub/linux/libs/graphics/t1lib-5.1.2.tar.gz
tar xzf t1lib-5.1.2.tar.gz
cd t1lib-5.1.2
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
make without_doc
sudo make install
cd ..
installazione lib jpeg
curl -O http://www.ijg.org/files/jpegsrc.v7.tar.gz
tar -xzf jpegsrc.v7.tar.gz
cd jpeg-7/
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
make
sudo make install
cd ..
installazione lib png
Scaricatela da http://www.libpng.org/pub/png/libpng.html e mettela dentro ~/src curl non funziona con sourceforge
tar -xzf libpng-1.2.40.tar.gz
cd libpng-1.2.40
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
sudo make install
cd .
installazione libmcrypt
scaricatela da http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download e mettela dentro ~/src curl non funziona con sourceforge
tar -xzf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
make
sudo make install
cd ..
installazione libxml2
curl -O ftp://xmlsoft.org/libxml2/libxml2-2.7.4.tar.gz
tar -xzf libxml2-2.7.4.tar.gz
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
make
sudo make install
cd ..
installazione gettext
curl -O http://gd.tuwien.ac.at/gnu/gnusrc/gettext/gettext-0.17.tar.gz
tar -xzf gettext-0.17.tar.gz
cd gettext-0.17
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
make
sudo make install
cd ..
installazione di curl e lib curl
curl -O http://curl.haxx.se/download/curl-7.19.6.tar.gz
tar -xzf curl-7.19.6.tar.gz
CFLAGS="-arch x86_64" ./configure --prefix=/usr/local/php5.2/
make
sudo make install
cd ..
e finalmente prendiamo php
curl -O http://uk.php.net/distributions/php-5.2.10.tar.bz2
tar xfz php-5.2.10.tar.bz2
cd php-5.2.10
in questa versione di php cè un piccolo errore in un file che va corretto prima di tutto altrimenti non si compila un bel niente
aprite con un editor di testo (io ho usato xcode) il file
~/src/php-5.2.10/ext/iconv/iconv.c
alle riga 196, 197, e 198 trovate
#ifdef HAVE_LIBICONV
#define iconv libiconv
#endif
correggete con
#ifdef HAVE_LIBICONV
#define iconv iconv
#endif
prepariamo il configure
CFLAGS="-arch x86_64 -I/usr/local/php5.2/include/" LDFLAGS="-L/usr/local/php5.2/include/" ./configure --prefix=/usr/local/php5.2 --disable-dependency-tracking --with-apxs2=/usr/sbin/apxs --with-config-file-scan-dir=/usr/local/php5.2/php.d --with-openssl=/usr --with-zlib=/usr --with-zlib-dir=/usr -with-xpm-dir=/usr --with-gd --with-ldap --with-xmlrpc --enable-exif --enable-soap --enable-sqlite-utf8 --enable-wddx --enable-ftp --enable-sockets --with-bz2=/usr --enable-zip --enable-pcntl --enable-shmop --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-mbstring --enable-bcmath --with-libxml-dir=/usr/local/php5.2 --with-xsl=/usr/local/php5.2 --with-gettext=/usr/local/php5.2 --with-png-dir=/usr/local/php5.2 --with-jpeg-dir=/usr/local/php5.2 --enable-gd-native-ttf --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mcrypt=/usr/local/php5.2 --with-iconv --disable-xmlreader --with-t1lib=/usr/local/php5.2 --with-curl=/usr/local/php5.2
ok c’è un altro bug
aprite sempre con xcode
~/src/php-5.2.10/Makefile
il Makefile appena generato, cercate
EXTRA_LIBS =
seguito da una serie di opzioni, aggiungete per prima
-lresolv
salvate e chiudete, compiliamo!
make
bene il php è compilato ora facciamo il backup del php di snow leopard altrimenti viene sovrascritto
sudo mv /usr/libexec/apache2/libphp5.so /usr/libexec/apache2/libphp5.so.snow_leopard
sudo make install
spostiamo modulo appena generato e ripristiniamo il php di snow leopard (opzionale)
sudo mv /usr/libexec/apache2/libphp5.so /usr/local/php5.2/libphp5.so
sudo cp /usr/libexec/apache2/libphp5.so.snow_leopard /usr/libexec/apache2/libphp5.so
Modifichiamo il file
/etc/apache/httpd.conf
commentando la riga
#LoadModule php5_module libexec/apache2/libphp5.so
e aggiungendo la riga
LoadModule php5_module local/php5.2/libphp5.so
Riavviamo apache
sudo apachectl restart
Ok ora avete il vostro php 5.2.10 funzionante potete tranquillamente continuare a sviluppare in attesa della prossima compatibilità de vari software. Bella fatica eh! io sono impazzito 2 giorni pieni pieni, sperò che possa essere d’aiuto a qualcun altro. Se seguite questa guida e qualcosa non vi torna o semplicemente riuscite lasciatemi un commento, sarò felice di aiutarvi o di esservi stato d’aiuto.
Ciao



Complimenti vivissimi, mi hai salvato. GRAZIE!!
Ciao articolo interessantissimo in tutti i sensi e l’ho trovato proprio perche mi sono trovato nelle stesse tue situazioni, ma poi alla fine mi sono reso conto che esiste Mamp che include:
Included programs & libraries
* Apache 2.0.63
* MySQL 5.1.37
* PHP 4.4.9 & 5.2.10
* APC 3.0.19 & APC 3.1.2
* eAccelerator 0.9.5.3
* XCache 1.2.2
* phpMyAdmin 2.11.9.5 & phpMyAdmin 3.2.0.1
* Zend Optimizer 3.3.3
* SQLiteManager 1.2.0
* Freetype 2.3.9
* t1lib 5.1.2
* curl 7.19.5
* jpeg 7
* libpng-1.2.38
* gd 2.0.34
* libxml 2.7.3
* libxslt 1.1.24
* gettext 0.17
* libidn 1.15
* iconv 1.13
* mcrypt 2.5.8
* YAZ 3.0.47 & PHP/YAZ 1.0.14
adesso lo volgio provare e in caso ti facio sapree come va …
La cosa che mi attira nel fare questa installazione (cosa che di solito non faccio perchè preferisco fare tutto da me installando ogi componente da solo e poi farli colloquiare ) è che se non dovessi essere soddisfatto del risultato basta eliminare la cartella di Manp senza aver compromesso nessun fiel originale di Mac os X. Figo no!!!
Ciao grazie di tutto
PS: ho visto molti “articoli veramente fatti bene” complimenti
Ciao Pengo, conosco Mamp e prima di decidere di compilare il php ho anche provato ad installare mamp e mamp pro ma ho avuto dei problemi. Avvaindo Mamp Pro ricevevo un errore di mysql, come se non si fosse avviato. In realta il server era partito ma il software di gestione di Mamp Pro lo vedeva spento. Poco male se non per il fatto che chiudendo Mamp dava di nuovo errore su mysql che ovviamente non risultando aperto non si chiudeva.
Adesso non so se hanno sistemato il problema magari facci sapere a te com’è andata.
In ogni caso istallare php come ho descritto non comporta alcuna modifica al sistema e in qualsiasi momento puoi disistallare tutto semplicemente eliminando la cartella /urs/local/php5.2 e modificando httpd.conf per prendere di nuovo quello originale fornito da Apple.
Per Him, prego mi fa paicere esserti stato d’aiuto
Ciao, innanzi tutto complimenti e grazie per l’articolo.
Purtroppo non avevo la più pallida idea che l’aggiornamento a snow leopard mi cambiasse le configurazione di apache e mysql. Non sono un grande esperto e purtroppo ho qualche difficoltà nel seguire le istruzioni. Mi riesce tutto bene fino a che non arriva il momento di compilare il PHP.
Vediamo se ho capito bene:
ho scaricato il file php-5.2.10.tar.bz2 e decompresso nella cartella /usr/local/php5.2/.
Sono entrato nella cartella php-5.2.10.
Ho modificato il file ~/src/php-5.2.10/ext/iconv/iconv.c come richiesto.
Ho preparato il configure con il codice che hai suggerito però… non c’è il file ~/src/php-5.2.10/Makefile e il comando make mi risponde: “make: *** No targets specified and no makefile found. Stop.” A questo punto non so come andare avanti…
Un aiutino? Grazie per la disponibilità e per il prezioso aiuto.
Ciao Mario, devi dare il comando configure con tutte quelle opzioni, per configurare il php con tutti gli accessori che normalmente servono per il funzionamento dei vari software opensource. Dovrebbe essere sufficiente copiarlo ed incollarlo nella shell così com’è! Devi essere ovviamente nella directory ~/src/php-5.2.10/ perchè lo script configure è lì. Lo script eseguirà vari controlli e creerà il Makefile, soltanto allora potrai modificarlo e poi compilare.
Ciao
Grazie Stefano,
ho seguito di nuovo tutte le tue istruzioni e ho scoperto che al lancio del ./configure di php mi ritorna il seguente errore: “configure: error: mysql configure failed. Please check config.log for more information.”
Suppongo quindi che questo errore blocca il completamento del ./configure e quindi della creazione del file Makefile.
Quindi l’errore è nelle seguenti opzioni del ./configure: –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-pdo-mysql=/usr/local/mysql. Giusto?
Sai per caso indirizzarmi su come trovare le informazioni giuste da inserire?
Grazie ancora per la tua disponibilità.
Allora Mario, da quello che mi dici, sembra che mysql non sia installato in /usr/local/mysql il che è strano perché se ha installato mysql con il package ufficiale scaricato da http://www.mysql.com dovrebbe installarlo proprio lì di default.
Puoi controllare se mysql è in /usr/local/mysql, se non lo è devi specificare nel configure una path valida per mysql nelle opzioni che giustamente ai evidenziato.
Ci potrebbe essere un’altro problema però perché se ricordo bene io ho dovuto installare l’ultima versione disponibile di mysql perché con quella che avevo non andava. Per fare ciò devi fare un dump di tutto con mysql_dump installare il nuovo ripristinare i dati e poi eseguire sempre uno script che non ricordo il nome comunque qualcosa come mysql_fix_user_priv per ripristinare i permessi e il db mysql qualora ci siano differenze fra le due versioni.
Mi rendo conto che non è proprio semplice semplice, purtroppo anche io c’ho sbattuto il grugno!!!
A completamento del mio commento precedente riporto anche le ultime righe del config.log:
configure:60459: gcc -o conftest -I/usr/include -arch x86_64 -I/usr/local/php5.2/include/ -no-cpp-precomp -Wl,-rpath,/usr/local/mysql/lib -L/usr/local/mysql/lib -liconv -L/usr/lib -L/usr/local/php5.2/includ$
ld: warning: in /usr/local/mysql/lib/libmysqlclient.dylib, file is not of required architecture
Undefined symbols:
“_mysql_error”, referenced from:
_main in ccL11iC6.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
configure: failed program was:
#line 60448 “configure”
#include “confdefs.h”
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char mysql_error();
int main() {
mysql_error()
; return 0; }
Il file libmysqlclient.dylib esiste ed è un link simbolico. Il resto non capisco cosa significa.
;O)
Troppo veloce… non mi ero accorto che mi avevi già risposto. ;O)
Allora /usr/local/mysql esiste… e mysql è un link simbolico che punta a mysql-5.1.39-osx10.5-x86/… la versione che ho installato di mysql.
Noto che all’interno di mysql-5.1.39-osx10.5-x86 esiste un altro mysql-5.1.39-osx10.5-x86 e un mysql, link simbolico, proprio a questa cartella (mysql-5.1.39-osx10.5-x86)…
mi sa che ho fatto un po’ di casino con l’installazione di mysql.
;O)
Mario molto semplicemente:
/usr/local/mysql/lib/libmysqlclient.dylib, file is not of required architecture
Probabilmente la tua installazione di mysql non è quella per 10.5 x86_64! Importantissimo preleva il mysql x86_64, ricordati che stiamo compilando per x86 a 64 bit, poichè in snow leopard questa perte è tutta a 64 bit.
Installando l’ultima release di mysql a 64 bit dovresti risolvere il problema.
Ciao
Ciao Mario, ho avuto ed ho il tuo stesso problema con php 5.3. Ora pero’ prima di seguire la tua guida volevo chiederti se per la versione a 32 bit (ho il macbook di prima generazione) la procedura è piu’ o meno la stessa…
Ciao Fabrizio, se vuoi compilare php 5.3 per Leopard (10.5) puoi seguire queste indicazioni avendo cura di eliminare tutte le CFLAGS=”-arch x86_64″ prima di lanciare i vari configure. Nel configure di php inoltre va modificata la parte relativa a mysql poichè php 5.3 introduce novità in quel punto. Per vedere come aggiungere il supporto a mysql puoi provare a lanciare ./configure –help.
Ciao
Ciao Stefano,
come prima cosa ti faccio i mie complimenti per il tuo articolo, molto chiaro e completo.
L’unico suggerimento potrebbe essere l’utilizzo dei MacPorts per l’installazione delle librerie.
Da un paio di mesi ho trovato il tempo di costruire il mio Blog, è incredibile, abbiamo lo stesso tema.
Sempre lode a Apple e Mac OS X.
Bye,
Antonio.
Ciao Stefano,
Ho certato di seguire passo passo le tue istruzioni e questo è quello che ottengo quando cerco di attivare il file config
loading cache ./config.cache
checking for Cygwin environment… no
checking for mingw32 environment… no
checking for egrep… grep -E
checking for a sed that does not truncate output… /usr/bin/sed
checking host system type… i686-apple-darwin10.2.0
checking target system type… i686-apple-darwin10.2.0
checking for gcc… no
checking for cc… no
configure: error: no acceptable cc found in $PATH
Chiaramente dopo questa operazione non ottengo nessun file makefile e quindi non riesco a procedere…
Hai qualche idea????
Sono disperato… help me!!!!
Ciao
Ciao Davide non disperare il tuo problema è piuttosto semplice da risolvere! In effetti è una mia dimenticanza quella di non aver avvertito che per poter compilare qualcosa in mac os x è necessario prima di tutto installare i developers tools che trovi nel cd di snow Leopard o sul sito apple da scaricare gratuitamente. I developers tools istallano oltre a xcode e interface builder tutti i compilatori e le librerie necessarie!
Ciao e buona compilazione.
@Stefano
Grazie Stefano della pronta risposta…
Forse non è stata una mancanza tua, ma son io che avrei dovuto saperlo…
In ogni caso, ti scrivo perchè ho ancora lo stesso problema. Ho Installato tutto quello che c’era sul dvd Application in dottazione con il mac…. poi ho provato a ricompilare tutto ma niente da fare… sai aiutarmi? forse ho installato, ma rimane qualcosa da abilitare… proprio non lo so!
Attendo nuove…
ciao
Ciao quando eseguo il make del php mi da questi errori. Sai aiutarmi?
Ti ringrazio
/usr/local/php5.2/src/php-5.2.10/ext/mysqli/mysqli.c: In function ‘zm_startup_mysqli’:
/usr/local/php5.2/src/php-5.2.10/ext/mysqli/mysqli.c:637: error: ‘MYSQL_RPL_MASTER’ undeclared (first use in this function)
/usr/local/php5.2/src/php-5.2.10/ext/mysqli/mysqli.c:637: error: (Each undeclared identifier is reported only once
/usr/local/php5.2/src/php-5.2.10/ext/mysqli/mysqli.c:637: error: for each function it appears in.)
/usr/local/php5.2/src/php-5.2.10/ext/mysqli/mysqli.c:638: error: ‘MYSQL_RPL_SLAVE’ undeclared (first use in this function)
/usr/local/php5.2/src/php-5.2.10/ext/mysqli/mysqli.c:639: error: ‘MYSQL_RPL_ADMIN’ undeclared (first use in this function)
make: *** [ext/mysqli/mysqli.lo] Error 1
Ciao Stefano,
Ora finalmente compila….
Sono riuscito ad installare il development tools, scaricandolo dal sito della apple
Ho seguito il resto delle istruzioni e non ho avuto problemi… però ancora non funziona!
Nel momento in cui io cambio la riga di codice LoadModule php5_module local/php5.2/libphp5.so nel file config poi non parte più Apache anche dopo il riavvio.
Ho controllato nella catella local/php5.2 non c’è nessun file libphp5.so
Grazie
Ciao
Davide
..son sempre io…
Probabilmente l’errore sta in questo msg: make: *** No rule to make target `install’. Stop.
Quando cerco di fare make install del file libphp5.so
Può essere?
Si probabile ma se hai fatto il configure come indicato dovrebbe sapere cosa fare!
Ciao Stefano, complimenti per la ottima guida! Sono da poco passata a mac e non mi intendo di shell unix, nonostante ciò la guida mi è abbastanza chiara. Ho un problema al momento della compilazione di php, perchè non crea il Makefile, immagino sia perchè non completa il processo. Ho il seguente errore alla fine della configurazione di php:
configure: error: Cannot locate header file libintl.h
Controllando nella dir php-5.2.10 ci sono diversi Makefile ma con estensioni varie (.frag, .object, .global, .in etc) ma non Makefile e basta. Un aiuto? Grazie mille
Ciao Monica il makefile viene creato dallo script configure come ultima azione, se il configure non termina senza errori non crea il makefile, perciò non lo trovi!
Bisogna verificare quella lib che non trova dove sta e ci sta! Non so di pacchetto è quel file, comunque domani faccio una ricerca e ti dico, ora sto col tel mi è complicato!
Ciao
La lib non c’è, ho provato a ricercarla col finder. l’ho trovata su un sito e l’ho scaricata ma non so dove va messa, perchè ancora non la vede.
Che velocità di risposta! Grazie Stefano.
Ciao
Ho cercato indicazioni e mi sa che ho saltato l’installazione di gettext, ora riprovo!
Risolto, il problema era quello.
Mi rimane un dubbio: mi ritrovo ora con le librerie scaricate e compilate in
~/src
che risulta essere in
/private/var/root/
mentre dalla guida sembra che tutto debba essere compilato all’interno della dir
/usr/local/php5.2
è un errore dovuto alla iniziale creazione di ~/src?
Nessun problema compila pure li! Hai usato la directory home di root ma una vale l’altra importante è che tu abbia specificato le posizioni Con la path corretta!
Ciao
Ciao Stefano, sono ancora io… Ho completato la procedura della guida e ho provato ad installare Joomla, ma mi dà un errore di permessi al lancio del file di installazione, può dipendere dal php.ini (che non trovo… )? Ho testato phpinfo() e mi da la corretta versione. Grazie per la pazienza…
Ciao
Il file l’ho trovato, ma non so dove guardare…
Ma non è che dipende dai permessi sulle cartelle? Forse vuole scrive un file di configurazione, per cambiare i permessi su una cartella si usa il comando chmod permessi path.
Se vuoi installare joomla in /Library/Webserver/Documents/Joomla devi dare il permesso di scrittura a questa cartella con il comando
chmod -R 777 /Library/Webserver/Documents/Joomla
Il -R indica di applicare gli stessi permessi a tutti i file e cartelle contenuti dentro
/Library/Webserver/Documents/Joomla
Di solito basta assegnare i permessi 777 solo ai file che devo essere accessibili in scrittura dal web server, veramente l’ideale sarebbe impostare come proprietario di questi file l’utente con cui gira il web server in modo da farli scrivere solo da lui. Su una macchina di prova o sviluppo puoi darli a tutta la cartella però senza problemi.
Ciao
Cerca su google la forma ottale dei permessi per capire cosa vuol dire 777!
Ciao
@Monica
Ho risolto installando MAMP che a me funziona anche con MySQL. Magari per qualcuno può essere un’indicazione utile. Ho dovuto stoppare la versione installata di MySQL prima di avviare dalle porte di default la nuova installazione di MySQL che mi è partita. Con questo setup, Joomla funziona.
Grazie comunque per la pronta risposta!
Ciao Stefano, complimenti per l’ottima guida.
Ho seguito alla lettera tutto, ma arrivato ad un certo punto mi blocco dopo il make del php
Mi esce questo errore:
ld: warning: in /usr/sbin/httpd, file is not of required architecture
Undefined symbols:
“_ap_get_brigade”, referenced from:
_php_apache_sapi_read_post in sapi_apache2.o
“_ap_mpm_query”, referenced from:
_php_pre_config in sapi_apache2.o
_zm_info_apache in php_functions.o
“_ap_server_root”, referenced from:
_zm_info_apache in php_functions.o
“_unixd_config”, referenced from:
_zm_info_apache in php_functions.o
_zm_info_apache in php_functions.o
_zm_info_apache in php_functions.o
“_ap_sub_req_lookup_uri”, referenced from:
_php_apache_lookup_uri in php_functions.o
“_ap_add_common_vars”, referenced from:
_php_handler in sapi_apache2.o
“_ap_rflush”, referenced from:
_php_apache_sapi_flush in sapi_apache2.o
_zif_virtual in php_functions.o
“_ap_set_last_modified”, referenced from:
_php_handler in sapi_apache2.o
“_ap_hook_post_config”, referenced from:
_php_ap2_register_hook in sapi_apache2.o
“_ap_run_sub_req”, referenced from:
_zif_virtual in php_functions.o
“_ap_hook_handler”, referenced from:
_php_ap2_register_hook in sapi_apache2.o
“_ap_add_version_component”, referenced from:
_php_apache_add_version in sapi_apache2.o
“_ap_destroy_sub_req”, referenced from:
_zif_virtual in php_functions.o
_zif_virtual in php_functions.o
_zif_virtual in php_functions.o
_zif_apache_lookup_uri in php_functions.o
_zif_apache_lookup_uri in php_functions.o
“_ap_get_server_version”, referenced from:
_php_apache_get_version in php_functions.o
“_ap_update_mtime”, referenced from:
_php_handler in sapi_apache2.o
“_ap_auth_type”, referenced from:
_php_apache_request_ctor in sapi_apache2.o
“_ap_hook_pre_config”, referenced from:
_php_ap2_register_hook in sapi_apache2.o
“_ap_loaded_modules”, referenced from:
_zif_apache_get_modules in php_functions.o
_zif_apache_get_modules in php_functions.o
_zm_info_apache in php_functions.o
_zm_info_apache in php_functions.o
“_ap_set_content_length”, referenced from:
_php_apache_sapi_header_handler in sapi_apache2.o
“_environ”, referenced from:
_zif_putenv in basic_functions.o
_php_print_info in info.o
__php_import_environment_variables in php_variables.o
“_ap_server_root_relative”, referenced from:
_php_apache_phpini_set in apache_config.o
“_ap_pass_brigade”, referenced from:
_php_handler in sapi_apache2.o
“_ap_rwrite”, referenced from:
_php_apache_sapi_ub_write in sapi_apache2.o
“_ap_log_rerror”, referenced from:
_php_apache_sapi_log_message in sapi_apache2.o
_php_apache_sapi_log_message_ex in sapi_apache2.o
“_ap_add_cgi_vars”, referenced from:
_php_handler in sapi_apache2.o
“_ap_set_content_type”, referenced from:
_php_apache_sapi_send_headers in sapi_apache2.o
“_ap_log_error”, referenced from:
_php_apache_sapi_log_message in sapi_apache2.o
_php_pre_config in sapi_apache2.o
“_ap_hook_child_init”, referenced from:
_php_ap2_register_hook in sapi_apache2.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [libs/libphp5.bundle] Error 1
Aiuto non so come andare avanti.
Raffaele stai usando snow leopard vero? Hai usato sempre l’opzione CFLAGS=”-arch x86_64″ ?
Usa monitoraggio attività e verifica se il processo httpd è di tipo intel 64bit
Ascolta sta mattina ho provato a compilare php 5.2.14, compila bene con lo stesso configure di questa guida senza modificare ne il file php ne il makefile. Bisogna solo togliere dalla comnado configure l’opzione –disable-dependency-tracking.
Posto il configure per il 5.2.14
CFLAGS=”-arch x86_64 -I/usr/local/php5.2/include/” LDFLAGS=”-L/usr/local/php5.2/include/” ./configure –prefix=/usr/local/php5.2 –with-apxs2=/usr/sbin/apxs –with-config-file-scan-dir=/usr/local/php5.2/php.d –with-openssl=/usr –with-zlib=/usr –with-zlib-dir=/usr -with-xpm-dir=/usr –with-gd –with-ldap –with-xmlrpc –enable-exif –enable-soap –enable-sqlite-utf8 –enable-wddx –enable-ftp –enable-sockets –with-bz2=/usr –enable-zip –enable-pcntl –enable-shmop –enable-sysvsem –enable-sysvshm –enable-sysvmsg –enable-mbstring –enable-bcmath –with-libxml-dir=/usr/local/php5.2 –with-xsl=/usr/local/php5.2 –with-gettext=/usr/local/php5.2 –with-png-dir=/usr/local/php5.2 –with-jpeg-dir=/usr/local/php5.2 –enable-gd-native-ttf –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-pdo-mysql=/usr/local/mysql –with-mcrypt=/usr/local/php5.2 –with-iconv –disable-xmlreader –with-t1lib=/usr/local/php5.2 –with-curl=/usr/local/php5.2
Ovviamente il resto della guida rimane uguale!
Grazie Stefano adesso provo e ti faccio sapere.
In monitoraggio attività ho tre processi httpd
root
_www
_www
e nessuno dei tre nella colonna Tipo porta “INtel (64bit)” ma solo “Intel”
Ma stai usando il web server installato con Snow Leopard oppure stai usando un web server installato da te?. L’errore è semplice hai compilato il php per l’architettura x86_64 ma hai il web server con architettura x86_32. Molto strano l’Apache fornito con Snow Leopard è a 64bit e questo è il motivo per cui bisogna compilare tutto con il CFLAGS=”-arch x86_64″
Ciao
Scusa, mi stai dicendo che devo attivare la condivisione web da preferenze di sistema, perchè non l’avevo fatto durante la compilazione.
Adesso provo e ti faccio sapere.
Grazie per le risposte.
Si certo stiamo compilando php per farlo funzionare con il web server di default di snow leopard !
Ciao Stefano, niente da fare nonostante ho attivato la condivisione web, l’errore rimane, e in monitoraggio attività rimane sempre “Intel”.
Ho fatto anche aggiornamento software, ma niente.
Come posso fare per rimediare .
Ancora Grazie per la disponibilità.
Ciao Stefano, siccome avevo fatto una installazione di Xampp, secondo te ha potuto modificare qualche file di apache originale.
Si possibile, apache fornito con snow Leopard è a 64 bit mentre quello che stai utilizzando tu è a 32 bit!
Ciao
Scusa Stefano, ma facendo da terminale “apachectl -V”, mi esce questo:
Server version: Apache/2.2.14 (Unix)
Server built: Feb 10 2010 22:22:39
Server’s Module Magic Number: 20051115:23
Server loaded: APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with….
-D APACHE_MPM_DIR=”server/mpm/prefork”
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_FLOCK_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=”/usr”
-D SUEXEC_BIN=”/usr/bin/suexec”
-D DEFAULT_PIDLOG=”/private/var/run/httpd.pid”
-D DEFAULT_SCOREBOARD=”logs/apache_runtime_status”
-D DEFAULT_LOCKFILE=”/private/var/run/accept.lock”
-D DEFAULT_ERRORLOG=”logs/error_log”
-D AP_TYPES_CONFIG_FILE=”/private/etc/apache2/mime.types”
-D SERVER_CONFIG_FILE=”/private/etc/apache2/httpd.conf”
Quindi il mio apache è a 32 bit.
Spero potrai aiutarmi. Grazie ancora
Volendolo reinstallare e riportare tutto all’originale quali sono i passi da fare.
Ma che versione di Mac os x stai usando? Si il tuo apache è a 32 bit ma non capisco perché è a 32 bit! Non so come poter ripristinare il tutto! Mi dici la tua versione di Mac os x?
Mac Os X 10.6.4
Raffaele ma il tuo mac è a 64bit? Alcuni mac Intel non lo sono! Forse è il tuo caso! Se così fosse è tutto normale hai giustamente apache a 32bit quindi devi ricompilare tutto senza l’opzione CFLAGS=”-arch x86_64″
Tutte le librerie ovviamente!
Ciao
Scusa Stefano il mio Mac e un IMac da 27 pollici comprato un anno fa Novembre 2009.
Comunque in Monitoraggio attività la maggior parte delle applicazioni e con Intel (64 bit)
Ma poi quando parli di 64bit di cosa parli del software o dell’hardware
Io ho 4 Gb di memoria installati quindi penso che l’indirizzamento a 64 bit ci dovrebbe essere.
Tu cosa pensi.
Ritornando alla nostra compilazione seguendo il tuo consiglio l’opzione CFLAGS=”-arch x86_64″, la devo eliminare e basta.
Adesso provo e ti faccio sapere
Raffaele il tuo Mac ha il processore a 64bit sicuramente 100% sinceramente non so per quale motivo apache non lo è! Comunque se apache è 32 devi togliere quella opzione, il problema è tutto fra l’architettura del php e quella di apache devono coincidere.
Ciao
Ciao Stefano, brutte notizie, ho seguito il tuo consiglio compilando tutto senza (x86_64) ma al make del php mi da questo errore:
ld: warning: in /usr/sbin/httpd, file was built for i386 which is not the architecture being linked (x86_64)
Non ci capisco più niente.
Mi sa che ho due possibilità
1) Reinstallare tutto da capo Mac OsX.
2) Installare Mamp.
Tu cosa faresti.
Ancora Grazie per la pazienza.