• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

PEAR Pakete fehlen seit Upgrade auf php7

f.gruber

Hacker
Hallo,
ich habe schon vor einigen Wochen auf einem Server php auf die Version php7 upgedatet.

phpinfo() zeigt mir, dass php7 installiert ist. Die php Seiten werden vom Apache Server korrekt ausgeliefert.

Nur mit der Groupware Horde habe ich ein Problem, das ich bisher nicht lösen konnte. Es scheint an PEAR zu liegen. Es fällt mir auf, dass anscheinend php7-pear-Pakete fehlen.

zypper se pear zeigt mir viele PEAR Pakete, die offensichtlich mit php5 kompatibel sind.

Code:
  | php5-pear                            | PHP Extension and Application Repository                                      | Paket     
  | php5-pear-Auth_SASL                  | Abstraction of various SASL mechanism responses                               | Paket     
  | php5-pear-Crypt_Blowfish             | Allows for quick two-way blowfish encryption without the MCrypt PHP extension | Paket     
  | php5-pear-DB                         | Database Abstraction Layer                                                    | Paket     
  | php5-pear-DB_DataObject              | An SQL Builder, Object Interface to Database Tables                           | Paket     
  | php5-pear-DB_DataObject_FormBuilder  | Build automatically HTML_QuickForm objects from a DB_DataObject-derived class | Paket     
  | php5-pear-Date                       | Generic date/time handling                                                    | Paket     
  | php5-pear-Date_Holidays              | Driver based class to calculate holidays                                      | Paket     
  | php5-pear-Date_Holidays_Austria      | Driver class to calculate holidays in Austria                                 | Paket     
  | php5-pear-Date_Holidays_Brazil       | Driver class to calculate holidays in Brazil                                  | Paket     
  | php5-pear-Date_Holidays_Croatia      | Driver class to calculate holidays in Croatia                                 | Paket     
  | php5-pear-Date_Holidays_Denmark      | Driver class to calculate holidays in Denmark                                 | Paket     
  | php5-pear-Date_Holidays_EnglandWales | Driver class to calculate holidays in England and Wales                       | Paket     
  | php5-pear-Date_Holidays_Finland      | Driver class to calculate holidays in Finland                                 | Paket     
  | php5-pear-Date_Holidays_Germany      | Driver class to calculate holidays in Germany                                 | Paket     
  | php5-pear-Date_Holidays_Iceland      | Driver class to calculate holidays in Iceland                                 | Paket     
  | php5-pear-Date_Holidays_Ireland      | Driver class to calculate holidays in Ireland                                 | Paket     
  | php5-pear-Date_Holidays_Italy        | Driver class to calculate holidays in Italy                                   | Paket     
  | php5-pear-Date_Holidays_Japan        | Driver class to calculate holidays in Japan                                   | Paket     
  | php5-pear-Date_Holidays_Netherlands  | Driver class to calculate holidays in Netherlands                             | Paket     
  | php5-pear-Date_Holidays_Norway       | Driver class to calculate holidays in Norway                                  | Paket     
  | php5-pear-Date_Holidays_Portugal     | Driver class to calculate holidays in Portugal                                | Paket     
  | php5-pear-Date_Holidays_Romania      | Driver class to calculate holidays in Romania                                 | Paket     
  | php5-pear-Date_Holidays_Spain        | Driver class to calculate holidays in Spain                                   | Paket     
  | php5-pear-Date_Holidays_Sweden       | Driver class to calculate holidays in Sweden                                  | Paket     
  | php5-pear-File                       | Common file and directory routines                                            | Paket     
  | php5-pear-File_IMC                   | Create and parse IMC-style files (like vCard and vCalendar)                   | Paket     
  | php5-pear-HTML_Common                | A base class for other HTML classes                                           | Paket     
  | php5-pear-HTML_QuickForm             | Methods for creating, validating, processing HTML forms                       | Paket     
  | php5-pear-HTTP_Request               | Provides an easy way to perform HTTP requests                                 | Paket     
  | php5-pear-HTTP_Request2              | Provides an easy way to perform HTTP requests                                 | Paket     
  | php5-pear-HTTP_WebDAV_Server         | WebDAV Server Base class                                                      | Paket     
  | php5-pear-Log                        | A base class for other HTML classes                                           | Paket     
  | php5-pear-MDB2                       | Database abstraction layer                                                    | Paket     
  | php5-pear-MDB2_Driver_mysql          | MySQL MDB2 driver                                                             | Paket     
  | php5-pear-MDB2_Driver_mysqli         | MySQLi MDB2 driver                                                            | Paket     
  | php5-pear-MDB2_Driver_pgsql          | PostgreSQL MDB2 driver                                                        | Paket     
  | php5-pear-Mail                       | Multiple interfaces for sending emails                                        | Paket     
  | php5-pear-Mail_Mime                  | Mail_Mime provides classes to create mime messages                            | Paket     
  | php5-pear-Mail_mimeDecode            | Decode mime messages                                                          | Paket     
  | php5-pear-Net_DIME                   | DIME encoding and decoding                                                    | Paket     
  | php5-pear-Net_IDNA2                  | PHP library for Punycode encoding and decoding                                | Paket     
  | php5-pear-Net_IMAP                   | Provides an implementation of the IMAP protocol                               | Paket     
  | php5-pear-Net_LDAP                   | UNmaintained OOP interface for searching and manipulating LDAP-entries        | Paket     
  | php5-pear-Net_LDAP2                  | Object oriented interface for searching and manipulating LDAP-entries         | Paket     
  | php5-pear-Net_SMTP                   | An implementation of the SMTP protocol                                        | Paket     
  | php5-pear-Net_Sieve                  | Handles talking to a sieve server                                             | Paket     
  | php5-pear-Net_Socket                 | Network Socket Interface                                                      | Paket     
  | php5-pear-Net_URL                    | Easy parsing of Urls                                                          | Paket     
  | php5-pear-Net_URL2                   | Class for parsing and handling URL                                            | Paket     
  | php5-pear-SOAP                       | SOAP Client/Server for PHP                                                    | Paket     
  | php5-pear-Services_Weather           | An interface to various online weather-services                               | Paket     
  | php5-pear-Text_CAPTCHA               | Generation of CAPTCHAs                                                        | Paket     
  | php5-pear-Text_Figlet                | Render text using FIGlet fonts                                                | Paket     
  | php5-pear-Text_Password              | Creating passwords with PHP                                                   | Paket     
  | php5-pear-Text_Wiki                  | Transforms Wiki and BBCode markup into XHTML, LaTeX or plain text markup      | Paket     
  | php5-pear-XML_SVG                    | XML SVG API (unmaintained)                                                    | Paket     
  | php5-pear-XML_Serializer             | Swiss-army knife for creating, reading and writing XML files                  | Paket     
  | php5-pear-cache_lite                 | Fast and Safe little cache system                                             | Paket     
  | php5-pear-channel-ezno               | Adds components.ez.no channel to PEAR                                         | Paket     
  | php5-pear-channel-horde              | Adds pear.horde.org channel to PEAR                                           | Paket     
  | php5-pear-channel-phpunit            | Adds pear.phpunit.de channel to PEAR                                          | Paket     
  | php5-pear-channel-symfony            | Adds pear.symfony-project.com channel to PEAR                                 | Paket     
  | php5-pear-channel-symfony2           | Adds pear.symfony.com channel to PEAR                                         | Paket     
  | php5-pear-ezc-Base                   | Base package of ezcomponents                                                  | Paket     
  | php5-pear-ezc-ConsoleTools           | ConsoleTools package of ezcomponents                                          | Paket     
  | php5-pear-ezc-Graph                  | Graph package of ezcomponents                                                 | Paket     
  | php5-pear-phpunit-DbUnit             | DbUnit port for PHP/PHPUnit to support database interaction testing           | Paket     
  | php5-pear-phpunit-File_Iterator      | Filters files based on a list of suffixes                                     | Paket     
  | php5-pear-phpunit-Object_Freezer     | Filters files based on a list of suffixes                                     | Paket     
  | php5-pear-phpunit-PHPUnit_MockObject | Mock Object library for PHPUnit                                               | Paket     
  | php5-pear-phpunit-PHP_CodeBrowser    | Integration in Hudson and CruiseControl                                       | Paket     
  | php5-pear-phpunit-PHP_CodeCoverage   | PHP code coverage information                                                 | Paket     
  | php5-pear-phpunit-PHP_Timer          | Utility class for timing                                                      | Paket     
  | php5-pear-phpunit-PHP_TokenStream    | Wrapper around PHP's tokenizer extension                                      | Paket     
  | php5-pear-phpunit-Text_Template      | Simple template engine                                                        | Paket     
  | php5-pear-phpunit-bytekit            | A php-bytekit cli                                                             | Paket     
  | php5-pear-symfony-YAML               | Symfony YAML Component                                                        | Paket     
  | php5-pear-symfony2-Console           | Symfony2 Console Component                                                    | Paket     
  | php5-pear-symfony2-Finder            | Symfony2 Finder Component                                                     | Paket     
  | php5-pear-symfony2-Yaml              | Symfony2 Yaml Component                                                       | Paket

Zu php7 sehe ich nur diese zwei Pakete
Code:
i+ | php7-pear                  | PHP Extension and Application Repository       | Paket     
i  | php7-pear-Archive_Tar      | Tar file management class                      | Paket

Wie komme ich zu den anscheinend fehlenden php7-PEAR Paketen?

Noch etwas:
Die Horde Groupware läuft nur dann, wenn ich im PHP include_path sowohl php7/PEAR als auch php7/PEAR eintrage:
Code:
# /etc/php7/apache2/php.ini
include_path = ".:/usr/share/php7:/usr/share/php7/PEAR:/usr/share/php5/PEAR"
Das kommt mir nicht ganz geheuer vor.
 

marce

Guru
f.gruber schrieb:
Wie komme ich zu den anscheinend fehlenden php7-PEAR Paketen?
Recherche im Netz, ob das entsprechende Paket bereits für php7 bereitgestellt wird und ggf. dann direkt installieren.

Sollte es das Paket noch nicht geben - Entwickler ärgern.

... und Dich damit abfinden, daß es so einiges nicht und nie mehr geben wird. Oder anders. Die Verfügbarkeit von php7 ist noch nicht an allen Stellen angekommen hat man das Gefühl. Abgeshen davon, daß viele Entwickler auf ihre ehemaligen Hobby-Projekte keine Lust mehr haben.

Sollte etwas fehlen, was Du dringend brauchst - auf php7 verzichten.
 
OP
F

f.gruber

Hacker
marce schrieb:
... auf php7 verzichten.
Das wäre ein Schnellschuss ins Knie, denke ich. Ich bin ziemlich sicher, dass die Rückkehr zu php5 mir wieder andere Probleme bereiten würde. :roll:

Probleme macht eigentlich nur die Groupware Horde im Zusammenhang mit PEAR.
 

marce

Guru
Lt. Maillingeliste ist Horde noch nicht für php7 freigegeben.

Seit php7 gilt leider: "Req. > php 5.3" ist nicht automatisch "auch php 7".

Wei gesagt: alles an ext. Modulen, was so über pear, pecl, ... kommt ist "einzeln" zu prüfen, wie da der Stand ist.
 

panamajo

Guru
f.gruber schrieb:
Probleme macht eigentlich nur die Groupware Horde im Zusammenhang mit PEAR.

Das Problem ist dass nicht alle PEAR Pakete für PHP7 bereit stehen (als openSURE rpm), nur php7-pear und php7-pear-Archive_Tar. Wobei die Trennung zwischen php5 und php7 Paketen wenig Sinn ergibt... Weitere PEAR

Ich habe das Problem so "gelöst" indem ich in /usr/share/php7 einen Symlink auf ../php5/PEAR erstellt habe, damit bleiben PEAR Pakete (egal ob via rpm oder "pear install ..." installiert) für php7 verfügbar. Ob sie denn auch PHP7 kompatibel sind ist eine andere Frage...

Wie das mit Horde aussieht kann ich nicht sagen. Anfang Juli musste ich meine php Version von 7.1.7 auf 7.0.7 downgraden weil phpMyAdmin die mcrypt Extension verlangt, die gibt es ab 7.1.7 gar nicht mehr (ok, in 7.0 gibt es nur noch 50% der Funktionen).
 
OP
F

f.gruber

Hacker
panamajo schrieb:
...
Ich habe das Problem so "gelöst" indem ich in /usr/share/php7 einen Symlink auf ../php5/PEAR erstellt habe ...
Ich habe in den include_path von PHP sowohl /usr/share/php7/PEAR als auch /usr/share/php5/PEAR geschrieben, was in etwa den gleichen Effekt haben dürfte.

Code:
# /etc/php7/apache2/php.ini
include_path = ".:/usr/share/php7:/usr/share/php7/PEAR:/usr/share/php5/PEAR"

Damit funitioniert zumindest das laufende Horde in der Version 5.2.17.
Allerdings kann ich die Horde Groupware nicht mehr upgraden und der Aufruf der Konfigurationsseite im Webinterface führt zu Error Meldungen. :???:
 
Oben