web-dev-qa-db-fra.com

Comment activer --enable-soap en php sur linux?

C'est beaucoup la question. J'ai PHP 5.2.9 sur Apache et je ne peux pas mettre à jour PHP. Puis-je activer SOAP dans PHP 5.2.9? Le manuel de PHP n'a pas du tout aidé lorsqu'il a déclaré: "Pour activer le support de SOAP, configurez PHP avec --enable-soap." Comment puis-je configurer?

63
netrox

Obtenir SOAP pour travailler ne nécessite généralement pas de compilation PHP à partir des sources. Je vous recommanderais d'essayer cela uniquement comme dernière option.

Pour faire bonne mesure, vérifiez si votre phpinfo dit quelque chose à propos de SOAP extensions:

$ php -i | grep -i soap

pour s’assurer que c’est l’extension PHP) qui manque.

En supposant que vous ne voyez rien à propos de SOAP dans le phpinfo, voyez ce que PHP SOAP pourraient vous être disponibles.

Dans Ubuntu/Debian, vous pouvez effectuer une recherche avec:

$ apt-cache search php | grep -i soap

ou dans RHEL/Fedora, vous pouvez effectuer une recherche avec:

$ yum search php | grep -i soap

Il y a généralement deux PHP SOAP paquets à votre disposition, généralement php-soap et php-nusoap. php-soap est généralement ce que vous obtenez avec la configuration PHP avec --enable-soap.

Dans Ubuntu/Debian, vous pouvez installer avec:

$ Sudo apt-get install php-soap

Ou dans RHEL/Fedora, vous pouvez installer avec:

$ Sudo yum install php-soap

Après l’installation, vous devrez peut-être placer un fichier ini et redémarrer Apache.

143
ghbarratt

En ce qui concerne votre question: non, si l'activation à partir de .ini Ne suffit pas et que vous ne pouvez pas mettre à jour PHP, vous ne pouvez pas faire grand chose. Certains modules, mais pas tous, peuvent être ajoutés sans recompilation (zypper install php5-soap, yum install php-soap). Si cela ne suffit pas, essayez d’installer quelques PEAR classe pour interprété SOAP support (NuSOAP, etc.).

En général, les doubles tirets --switches Sont conçus pour être utilisés lors de la recompilation PHP à partir de zéro.

Vous devez télécharger le package PHP source (sous la forme d'une archive compressée .tgz, Par exemple), le développer quelque part puis, par exemple, sous Linux, exécuter le script de configuration

./configure --prefix ...

La commande configure utilisée par votre PHP peut être affichée avec phpinfo()] _. Le répéter de manière identique devrait vous donner une copie exacte de PHP que vous avez maintenant installé. Ajouter --enable-soap activera alors SOAP en plus de tout le reste.

Cela dit, si vous n'êtes pas familier avec PHP recompilation, ne le faites pas. Il nécessite également plusieurs bibliothèques auxiliaires que vous pourriez avoir ou non available - freetype, Gd, libjpeg, XML, expat, et ainsi de suite (ce n'est pas assez, ils sont - installé; il doit s'agir de version développeur, c'est-à-dire avec des en-têtes, etc., dans la plupart des distributions, il est possible que libjpeg soit installé, et vous aurez peut-être besoin de libjpeg-dev Également).

Je dois conserver une machine virtuelle séparée avec tout ce qui est installé pour mes besoins de recompilation.

6
LSerni

Si Ubuntu est installé sur votre ordinateur, procédez comme suit:

  1. Vérifiez d'abord dans votre fichier de test php si vous avez soap (client/serveur) ou non en utilisant phpinfo (); et vérifiez les résultats dans le navigateur. Au cas où vous l'auriez, il semblerait que l'image suivante (sinon passez à l'étape 2):

enter image description here

  1. Ouvrez votre terminal et collez: Sudo apt-get install php-soap.

  2. Redémarrez votre serveur Apache2 dans un terminal: redémarrez le service Apache2.

  3. Pour vérifier, utilisez à nouveau votre fichier de test php. Cela semble être le mien à l'étape 1.

5
Noha Salah