Fatal error: Class 'PEAR' not found in /ho

2019-02-13 16:18发布

问题:

When trying to install PEAR by running go-pear.php (from the root of a cPanel GoDaddy hosted account), I get the following error:

Starting installation ... Loading zlib: ok

Bootstrapping Installer...................

Bootstrapping PEAR5.php............(remote) ok

Bootstrapping PEAR.php............(remote) ok

Bootstrapping Archive/Tar.php............(remote) ok

Bootstrapping Console/Getopt.php............(remote) ok

Fatal error: Class 'PEAR' not found in /home/alessio1/public_html/go-pear.php on line 697

line 697 is the following: PEAR::setErrorHandling(PEAR_ERROR_DIE, "\n%s\n");

The file go-pear.php was taken directly from http://pear.php.net/go-pear without any modification.

What am I doing wrong?

回答1:

I had the same error, and managed to solve it replacing the links stored in $bootstrap_files to :

$bootstrap_files = array(
    'PEAR5.php'            => 'https://raw.githubusercontent.com/pear/pear-core/master/PEAR5.php',
    'PEAR.php'             => 'https://raw.githubusercontent.com/pear/pear-core/master/PEAR.php',
    'Archive/Tar.php'      => 'https://raw.githubusercontent.com/pear/Archive_Tar/master/Archive/Tar.php',
    'Console/Getopt.php'   => 'https://raw.githubusercontent.com/pear/Console_Getopt/master/Console/Getopt.php',
);


回答2:

I also had this error and found that KevinD's fix didn't work for me, but was able to figure something out based on it. To solve the problem I replaced the line

'Console/Getopt.php'   => 'https://raw.github.com/pear/Console_Getopt/trunk/Console/Getopt.php',

with

'Console/Getopt.php'   => 'https://raw.githubusercontent.com/pear/Console_Getopt/trunk/Console/Getopt.php',

The install completed nearly instantly for me after this change.



回答3:

Use the .phar file: http://pear.php.net/go-pear.phar

It should work better.



回答4:

Pay attenction: Sometimes the problem is caused because of the blocking of fsocket() php function.
Server-to-server communication is sometimes used to commit abuses for example internet attacks.
Many free hosting companies block fsocket() function by default, and sometimes you have to authenticate yourself (providing information about you) to use this function.