web-dev-qa-db-ja.com

インストール方法oAuth PHP 7およびPECL OAuthライブラリを使用していますか?

UbuntuでDrupal 7を使用しているPHP 8サイトで Twitter モジュールを有効にしようとしています。 Twitterモジュールは oAuth を機能させる必要があり、oAuthにはPECL OAuthライブラリが必要です。

Sudo pecl install oauthを実行した場合

私は戻ります:

pecl/oauth is already installed and is the same as the released version 2.0.2 install failed

そして私がdrush en oauthを試してみると

私は戻ります:

Module oauth doesn't meet the requirements to be enabled. [error] OAuth module requires the PECL OAuth library.

oAuthモジュールとPECL oAuthライブラリを構成する方法のヘルプはありますか?

4
brittany_p

さて、私には最終的な解決策はありませんが、2年後に今日同じ問題を謙虚に扱ったので、少なくともいくつかの点にさらに光を当て、いくつかのテストなどを支援することができます。

まず最初に:レポートにいくつかのバグ追跡がありません。

_php -m_は何と言っていますか?認識されているすべてのphpモジュールがリストされているはずです。 pecl php拡張oauthがここにリストされているはずです。そうでない場合は、_Sudo pecl install oauth_のインストール時に端末に表示される指示に注意深く従っているかどうかを確認してください。 _extension=oauth.so_が_php.ini_に追加されていることを確認する必要があると書かれています。これは標準的な推奨事項であり、次のように翻訳することもできます。_oauth.ini_が_.../php/mods-available_にあり、_.../Apache2/conf.d/..._からシンボリックリンクされて有効なモジュールとして認識されることを確認してください。

そうでない場合は、_php-config --extension-dir_をチェックして、すべてのphp .so拡張機能が実際にインストールされている場所を確認し、_ls -ahl_で一覧表示して、oauthが正しくコンパイルされていることを確認します。

もう1つ注意すべき点は、phpには2つのモード(cliモードとサーバーモード)があることです。両方を混合することもあり、Drupalでもphp拡張機能をチェックするために常に混合するため、混乱を招く可能性があります。単純な_test.php_ファイルを作成し、その中に<? phpinfo(); ?>を置き、ブラウザのローカルリンクとして実行して、どこかにOAuthがリストされているかどうかを確認します(CTRL + F oauth) 。リストされている場合、php cliだけが拡張機能を認識せず、Drupalが拡張機能を見つけられないようです。この場合、_.../php/cli/conf.d/..._でシンボリックリンクされた拡張子を使用して、上記の手順(シンボリックリンク)を繰り返します。次に、_php -m_は、認識されたモジュールを示します。

最後に、私のようにすべてを2回確認し、oauth拡張機能がまだphp/Apache2環境に正しく読み込まれていないか、Drupalがそれを見つけられないことがわかった場合は、私のように同じレベルで立ち往生します:)そして、私は私が一人ではないことがわかりました。これに関する問題のリストがWeb(Google)OAuthにあり、php7で問題が発生しているようです。

しかし、php AND(!)php-cliがモジュールを見つけることができることを2度確認した場合、最終的にDrupalで機能させる99%の一員になります。幸運を。

2
nilsun

Re oauth @nilsumの提案は、私の見た目の忘却にも光を当てました。私はdrupal 8にいますが、解決策はDrupal 7に適用されると思います。

ほとんどの場合、通常はphpの一部であるため、このモジュールがサーバーにすでにインストールされているかどうかを確認できます。 rootアクセス権(SSHまたはWHM)があれば、「PHP Pecl」モジュールをインストールできる場合があります。それ以外の場合は、この場合oauth.soで対象の特定のモジュールをインストールするようにWebホストに要求します。これは「/ opt/cpanel/ea-php72/root/usr/lib64/php/modules」にあります。パッケージをインストールして、php.iniに拡張機能を追加できました。

繰り返しになりますが、php.iniへのrootアクセス権がある場合は、この拡張機能が存在するかどうかを確認してください。存在しない場合(これがoauthモジュールとTwitterを有効にできない理由です)、拡張子 'extension = oauth.so'を追加します。それ以外の場合は、drupalルートサーバー上にphp.iniファイルを作成し、拡張を追加します(ファイル/メモリサイズの変更に加えて、調整する必要があります。成功した場合、oauthを簡単に有効にして、 Twitterも有効になります。これがお役に立てば幸いです。 enter image description here

0
Maplinks