web-dev-qa-db-ja.com

Linuxのphpで--enable-soapを有効にするにはどうすればよいですか?

それが問題です。 ApacheにPHP 5.2.9があり、PHPをアップグレードできません。 SOAP 5.2.9でPHPを有効にする方法はありますか? PHPマニュアルは、「SOAPサポートを有効にするには、PHPを--enable-soapで構成します」と言ってもまったく役に立ちませんでした。どのように設定しますか?

63
netrox

SOAPを機能させるには、通常、ソースからPHPをコンパイルする必要はありません。最後の選択肢としてのみ試してみることをお勧めします。

適切な測定のために、SOAP拡張機能に関するphpinfoの内容を確認してください。

$ php -i | grep -i soap

PHP拡張機能が欠落していることを確認します。

PhpinfoにSOAPについて何も表示されていない場合、どのPHP SOAPパッケージが利用可能かを確認してください。

Ubuntu/Debianでは、次を使用して検索できます。

$ apt-cache search php | grep -i soap

または、RHEL/Fedoraで次を検索できます。

$ yum search php | grep -i soap

通常、利用可能な2つのPHP SOAPパッケージがあり、通常はphp-soapphp-nusoapです。 php-soapは通常、--enable-soapでPHPを設定すると得られます。

Ubuntu/Debianでは、次のものでインストールできます。

$ Sudo apt-get install php-soap

または、RHEL/Fedoraで次を使用してインストールできます。

$ Sudo yum install php-soap

インストール後、iniファイルを配置してApacheを再起動する必要がある場合があります。

143
ghbarratt

あなたの質問に関する限り:いいえ、.iniからのアクティベーションが十分ではなく、PHPをアップグレードできない場合、できることはあまりありません。すべてではありませんが、一部のモジュールは再コンパイルせずに追加できます(zypper install php5-soapyum install php-soap)。十分でない場合、解釈されるPEARサポート(NuSOAPなど)のためにSOAPクラスをインストールしてみてください。

一般に、二重ダッシュ--switchesは、PHPを最初から再コンパイルするときに使用するように設計されています。

PHPソースパッケージを(圧縮された.tgz tarballとして)ダウンロードし、どこかで展開してから、たとえばLinuxでは、configureスクリプトを実行します

./configure --prefix ...

PHPで使用されるconfigureコマンドは、phpinfo()で表示される場合があります。同じことを繰り返すと、今インストールしたPHPの正確なコピーが得られます。 --enable-soapを追加すると、他のすべてに加えてSOAPが有効になります。

つまり、PHP再コンパイルに慣れていない場合は、それをしないでくださいです。 freetypeGdlibjpegXMLexpatなど、利用できる可能性があるかどうか分からないいくつかの補助ライブラリも必要です。など(十分ではありませんインストール済み;それらは開発者バージョンでなければなりません。つまり、ヘッダーなどを使用します。ほとんどのディストリビューションでは、libjpegがインストールされています。十分ではない可能性があり、libjpeg-devも必要になる場合があります)。

再コンパイルのために、すべてがインストールされた別の仮想マシンを保持する必要があります。

6
LSerni

マシンにUbuntuがある場合、次の手順が役立ちます。

  1. Phpinfo()を使用していない場合、または石鹸(クライアント/サーバー)がある場合は、まずphpテストファイルを確認します。ブラウザで結果を確認します。持っている場合は、次の画像のように見えます(手順2に進んでいない場合)。

enter image description here

  1. ターミナルを開いて貼り付けます:Sudo apt-get install php-soap。

  2. ターミナルでApache2サーバーを再起動します。Apache2を再起動します。

  3. もう一度phpテストファイルを使用することを確認するには、手順1のように思えます。

5
Noha Salah