簡體   English   中英

PHP Gnupg未在phpinfo()中顯示為擴展名,我無法在php中使用它

[英]PHP Gnupg is not showing up as an extension in phpinfo() and I can't use it in php

我使用自制軟件安裝了gnupg和gpgme。 我還鏈接了這兩個文件,並通過運行brew gnupg install和brew gpgme install來確保它們已安裝並鏈接,並得到確認安裝和版本的消息。

我已經將gnupg.so文件放在擴展路徑中,並且還將extension = gnupg.so添加到了php.ini文件中。

我從infophp頁面獲得了擴展路徑和特定php.ini的路徑。 重新啟動Mamp之后,我仍然看不到gnupg或gpgme作為phpinfo的擴展,我也不能在我的php代碼中使用gnupg。
使用$gpg = new \\gnupg(); 這給我一個錯誤,說gnupg類不存在。

[Symfony\Component\Debug\Exception\FatalThrowableError]
Class 'gnupg' not found

我嘗試了另一種方法:我還從他們的網站上手動下載了gnupg和gpgme,並提取了以下內容

。/配置,

使,

sudo make install,

並且能夠再次成功安裝,還請確保gnupg.so與phpinfo頁面中顯示的擴展路徑相同,並且還將extension=gnupg.so添加到了phpinfo頁面中顯示的同一php.ini中(我在php.ini文件中的所有其他擴展名之后添加了extension = gnupg.so)

我在用:

Mac OS High Sierra 10.13.3

PHP 7.1.12

模板4.4.1

gnupg 2.2.5(我使用brew install嘗試了此版本)

gnupg 1.4.0(我嘗試從gnupg.org下載此版本)

gpgme 1.10.0

我也想知道,在希望解決上述問題后,我是否需要在php文件中包含任何內容才能使用gnupg?

gnupg和gpgme有什么區別? 我是否都需要為了在php中加密文件?

如果我無法解決此問題,還有什么方法可以加密xml文件或包含文本數據的文件? 我需要加密文件和FTP到另一台服務器,然后在那兒解密。

預先感謝大家的幫助

我能夠使用Pecl安裝GnuPG來解決此問題。 該鏈接對我也有很大幫助。

運行以下命令以安裝庫:

  1. 須藤apt-get -y install gcc make autoconf libc-dev pkg-config
  2. 須藤apt-get -y install libgpgme11-dev
  3. sudo pecl安裝gnupg
  4. 使用以下命令重新啟動服務器:“ service apache2 restart”或“ sudo service phpX.Y-fpm-sp restart”,其中xy是php的major.minor版本。 注意:有多種不同的方法可以重新啟動系統,以使更改生效。因此,請根據服務器和php版本,自行研究如何執行此操作。
  5. 正如我在問題中解釋的那樣,嘗試找到正確的php.ini文件以將“ extension = gnupg.so”添加到其中。 最常見的地方是php.ini:
    • /etc/php/7.2/apache2(您可以使用PHP版本而不是7.2)
    • /etc/php/7.2/cli(您可以使用PHP版本而不是7.2)

      更好的方法是從phpinfo()中找出加載擴展的php.ini路徑。

現在,使用以下命令驗證是否一切正常:

  • “ php -i | grep -i gnup”

如果一切正常,您將看到以下內容:

  • /etc/php7.0-sp/conf.d/gnupg.ini,
    gnupg
    gnupg支持=>已啟用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM