2009-07-22 4 views
3

je l'origine asked this question on ServerFault et n'ont pas obtenu de réponse et je dis qu'il est la programmation liée donc, ici va ...compilez PHP 5.1.6 avec PDO MySQL


Il y a quelque temps un gros client de nos déplacés à un fournisseur d'hébergement unique qui a spéculé sur un environnement logiciel qui serait cohérent sur tous les serveurs en direct. Parmi d'autres choses cela inclut Apache 2.2.8 et PHP 5.1.6.

Nous avions un serveur ubuntu 8.04 pour le développement et ces versions d'Apache et PHP ne sont pas installées par défaut. J'ai donc dû les compiler à partir de la source. Ces versions fonctionnent heureusement depuis plus d'un an maintenant.

Nous commençons une nouvelle construction de site et nous voulons utiliser ZendFrameword qui nécessite PDO_MySQL.

J'ai essayé de recompiler avec les éléments suivants ... (trait de soulignement montre la continuation de la ligne)

./configure --with-apxs2=/usr/local/apache2/bin/apxs _ 
--with-config-file-path=/user/local/apache2/conf/php.ini _ 
--with-curl=/usr/lib/ --with-mysql=shared --with-mysqli=shared _ 
--with-zlib --with-gd --with-jpeg-dir=/usr/local/lib/ _ 
--with-freetype-dir=/usr/lib/ --enable-soap --enable-pdo=shared _ 
--with-pdo-mysql=shared --with-sqlite=shared 
... 
make 
... 
make install 
... 
libtool --finish /sources/php-5.1.6/libs 

qui tout fonctionne très bien, et quand je ferai venir apache de secours, il me montre la nouvelle ./configure dans le phpinfo(). Après cela, MySQL cesse de fonctionner, la section MYSQL disparaît et msyql cesse de fonctionner.

Le make, make install, libtool ... met les * .so dans

/usr/local/lib/php/extensions/non-debug-non-ZTS-20050922

Le configurer Je l'ai utilisé précédemment ce qui a permis MySQL, mais pas AOP est

./configure --with-apxs2=/usr/local/apache2/bin/apxs _ 
--with-config-file-path=/user/local/apache2/conf/php.ini _ 
--with-curl=/usr/lib/ --with-mysql --with-mysqli _ 
--with-zlib --with-gd --with-jpeg-dir=/usr/local/lib/ _ 
--with-freetype-dir=/usr/lib/ --enable-soap 

Je ne suis pas une personne énorme * nix, quelqu'un peut me dire où je vais mal.

Merci

+0

5.2.10/5.3.0 sont des versions stables actuelles. Êtes-vous sûr de vouloir une version de 3 ans qui pourrait avoir des failles de sécurité connues? – Kornel

+0

@porneL Il y a quelque temps, un de nos grands clients a déménagé chez un fournisseur d'hébergement unique, qui avait conçu un environnement logiciel cohérent sur tous les serveurs en direct. –

+0

@porneL Nous sommes dans une situation où nous devons utiliser ce que nous avons reçu. Le client est assez massif (des centaines de marques dans le monde) et la migration vers une version différente est une tâche difficile. "Si ce n'est pas cassé, ne le répare pas" et tout ça ... –

Répondre

3

Je ne suis pas sûr que ce sera vraiment aider, mais que si vous supprimez tous les cas de « =shared » dans votre ligne de configuration?

Par exemple, voici une commande de configuration que je l'ai utilisé il y a quelque temps * (comme indiqué par phpinfo) *:

$ /usr/local/php-5.1.6/bin/php -i | grep 'configure' 
Configure Command => './configure' '--prefix=/usr/local/php-5.1.6' '--with-config-file-path=/etc/php-5.1.6' 
    '--with-apxs2=/usr/bin/apxs2' '--disable-ipv6' '--with-openssl' '--with-zlib' '--enable-bcmath' 
    '--with-bz2' '--with-curl' '--enable-exif' '--enable-ftp' '--with-gd' '--with-ttf' 
    '--enable-gd-native-ttf' '--with-imap-ssl' '--with-ldap' '--enable-mbstring' '--with-mcrypt' 
    '--with-mhash' '--with-mysql' '--with-mysqli' '--enable-pcntl' '--with-pdo-mysql' '--with-pdo-sqlite' 
    '--enable-shmop' '--enable-soap' '--enable-sockets' '--enable-sqlite-utf8' '--with-xmlrpc' 
    '--with-xsl' '--with-pear' 

(nouvelles lignes ajoutées pour des raisons de lisibilité)

Aide-t-il ?

+0

Je vais tenter le coup! acclamations –

+0

Cela a fonctionné. Devrais vraiment penser à celui-là moi-même. Je serais intéressé de voir une compilation de travail avec les modules partagés bien. Juste comme un exercice d'apprentissage –

+0

OK, agréable de savoir où le problème venait; En fait, un peu "partagé" a sauté dans mes yeux, comme je ne l'ai jamais ** utilisé **^ –

-1

Pas besoin de recompiler PHP complet. Compilez simplement le module PDO_MYSQL seul. Utilisez pecl pour l'installer:

pecl install PDO_MYSQL 

Pour cela, vous aurez besoin phpize installé. Sur les machines Debian, il est fourni par le paquet appelé php5-dev. Ensuite, il suffit de l'ajouter à votre php.ini et redémarrez Apache.

Si vous êtes sur le système Debian/Ubuntu PDO_MYSQL est fourni dans le package appelé php5-mysql

+0

De mon article "Nous avions un serveur ubuntu 8.04 pour le développement et ces versions d'Apache et de PHP ne sont pas installées par défaut, donc j'ai dû les compiler depuis la source." –

Questions connexes