Php fatal error uncaught error class pear not found in

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

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%sn»);

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

What am I doing wrong?

Alex Kulinkovich's user avatar

asked May 5, 2014 at 12:15

AlexY's user avatar

2

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',
);

Leandro Dimitrio's user avatar

answered May 27, 2014 at 12:23

KevinD's user avatar

KevinDKevinD

7217 silver badges14 bronze badges

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.

answered Jan 22, 2015 at 3:23

Cameron Vetter's user avatar

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.

answered Aug 30, 2015 at 18:57

Luca Favorido's user avatar

NEONovich

0 / 0 / 0

Регистрация: 07.09.2011

Сообщений: 13

1

17.06.2014, 14:25. Показов 3607. Ответов 8

Метки нет (Все метки)


Добрый день.
На боевом сервере отключили нативную функцию mail() из соображений безопасности. Как альтернативу предложили использовать smtp сервер для отправки сообщений. В связи с этим решил использовать PEAR пакет Mail.
На локальной машине под денвером все установилось (пир заработал, отрабатывает как нужно), пакет Mail поставился. Но вот незадача: используя стандартный скрипт из мануала на странице пакета Mail (http://pear.php.net/package/Mail, а конкретнее — отсюда http://pear.php.net/manual/en/… l.send.php) — он не работает.
Листинг скрипта:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ini_set('display_errors', 1);
error_reporting(E_ALL);
 
require_once "Mail.php";
 
$mailmsg = "Hello! How are you?'";
 
$recipients = "res@test.com";
$headers["From"] = "Tech <test@test.com>";
$headers["To"] = "Test <res@test.com>";
$headers["Subject"] = "Hello!";
$headers["Reply-To"] = "test@test.com";
$headers["Content-Type"] = "text/plain; charset=WINDOWS-1251";
$headers["Return-path"] = "test@test.com";
 
$smtpinfo["host"] = "localhost";
$smtpinfo["port"] = "25";
 
$mail_object = &Mail::factory("smtp", $smtpinfo);
 
$m = $mail_object->send($recipients, $headers, $mailmsg); 
 
if (PEAR::isError($m)) {
    echo("<p>" . $m->getMessage() . "</p>");
} else {
    echo("<p>Message successfully sent!</p>");
}

При исполнении скрипта выдает Fatal error: Class ‘Mail’ not found.
Прошелся по страничке проверки корректности подключения PEAR (http://pear.php.net/manual/en/… ecking.php), все шаги работают. Но скрипт упорно не видит класса Mail. Все же рекваирится, ошибок никаких, а как только юзать класс приходит пора — Class ‘Mail’ not found. Облазил кучу стаковерфловов и разных форумов,- ничего, что могло бы мне помочь, не нашел.
Может кто сталкивался с таким, кто знает в чем загвоздка. Буду рад любой помощи.
Спасибо.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



112 / 112 / 18

Регистрация: 24.09.2013

Сообщений: 509

17.06.2014, 14:44

2

попробуй добавить что-то типа: $smtpinfo[‘sendmail_path’] = ‘/usr/lib/sendmail’; как в примере у них



0



0 / 0 / 0

Регистрация: 07.09.2011

Сообщений: 13

17.06.2014, 15:08

 [ТС]

3

Цитата
Сообщение от Web_Master
Посмотреть сообщение

попробуй добавить что-то типа: $smtpinfo[‘sendmail_path’] = ‘/usr/lib/sendmail’; как в примере у них

Так в том то и дело, что я отправляю не через прогу на их серваке (в этом случае указывается драйвер sendmail, и параметры — путь к этой проге на машине), а через smtp, так как это единственный предоставляемый ими способ.
Увы, это решение из другой оперы. Но, все-равно, спасибо, что не остались равнодушны



0



Web_Master

112 / 112 / 18

Регистрация: 24.09.2013

Сообщений: 509

17.06.2014, 15:21

4

Тогда вот это может добавить?:

PHP
1
2
3
$smtpinfo["auth"] = true; 
$smtpinfo["username"] = "smtp_user"; 
$smtpinfo["password"] = "smtp_password";

Добавлено через 2 минуты
и & перед Mail убрать. там ниже в примере небыло его



0



NEONovich

0 / 0 / 0

Регистрация: 07.09.2011

Сообщений: 13

17.06.2014, 15:41

 [ТС]

5

Так на локальной машине все-равно нету никакой аутентификации, поэтому эти параметры лишние. Да и дело не в этом, дело в том, что не видит класса. Вот, например, если вначале добавить код:

PHP
1
2
require_once 'System.php';
var_dump(class_exists('System', false));

то вернет bool(true), что указывает на наличие класса System. Но Класса Mail не видит, рекваирит и не видит, хотя открывал лично тот файл, там описан класс Mail. Ну и как следствие, отказывается создавать объект.
Просто до передачи указанных Вами параметров даже не доходит.
Вот в чем для меня загадка,- почему же не видит класса?



0



112 / 112 / 18

Регистрация: 24.09.2013

Сообщений: 509

17.06.2014, 15:43

6

А директория в которой он лежит точно всё правильно там у тебя?



0



0 / 0 / 0

Регистрация: 07.09.2011

Сообщений: 13

17.06.2014, 15:48

 [ТС]

7

ну да, в include_path все прописано правильно, да и особенность функции require_once в том, что если б не грузнулось, то выполнение скрипта остановилось бы. Так что с путями все ок. И как подтверждение,- все же работает при классе System. А при классе Mail — не видит. Проверял — оба файла там лежат. В одном видит класс, в другом — нет.



0



112 / 112 / 18

Регистрация: 24.09.2013

Сообщений: 509

17.06.2014, 15:49

8

ну хз. попробуй заново скачать Mail.php может там потерялось что-то или скачалось криво



0



NEONovich

0 / 0 / 0

Регистрация: 07.09.2011

Сообщений: 13

17.06.2014, 16:47

 [ТС]

9

да, сейчас как раз все заново переустанавливаю, может какой косяк был. В любом случае отпишусь, может кому поможет.

Добавлено через 56 минут
Итак, вот в чем была загвоздка.
Include_path = . ; D:WebServersusrlocalphp5pear
Это два пути, разделенные точкой с запятой.
Ну и так как в

PHP
1
require_once "Mail.php";

путь не указывается (а иначе б Include_path игнорировался), то парсер пытается искать файл по каждому их путей. Первый из которых это «.»
И так как мой тестовый файл был назван «mail.php», то парсер думал, что вот он нашелся, и собственно игнорировался, так как сам себя не включает, ибо require_once. Вот почему клас из PEAR так упорно не вступал с действие.
Оказывается, параметры require_once регистронезависимые. Что «mail.php», что «Mail.php» — да все пофигу.
Проблема решена, теперь все работает.



0



  1. Привет всем. Проблема такая. Прописал в LocalSettings.php следующее:
    #MAIL#
    $wgSMTP = array(
    ‘host’ => «mail.afterlogic.com»,
    ‘IDHost’ => «afterlogic.com»,
    ‘port’ => 25,
    ‘auth’ => true,
    ‘username’ => «acheusov@afterlogic.com»,
    ‘password’ => «passwd»
    );

    Затем попробовал подтвердить электронную почту в настройках администратора mediawiki. Выдало следующее:
    Fatal exception of type MWException Error

    и ВСЁ! После этих манипуляций даже заглавная страница не открывается. В логах вот что:

    #0 /var/www/mediawiki-1.21.2/includes/User.php(3605): UserMailer::send(Object(MailAddress), Object(MailAddress), ‘Afterlogic Medi…’, ‘?
    #1 /var/www/mediawiki-1.21.2/includes/User.php(3583): User->sendMail(‘Afterlogic Medi…’, ‘??????-???? (??…’)
    #2 /var/www/mediawiki-1.21.2/includes/specials/SpecialConfirmemail.php(79): User->sendConfirmationMail()
    #3 /var/www/mediawiki-1.21.2/includes/specials/SpecialConfirmemail.php(54): EmailConfirmation->showRequestForm()
    #4 /var/www/mediawiki-1.21.2/includes/SpecialPage.php(613): EmailConfirmation->execute(NULL)
    #5 /var/www/mediawiki-1.21.2/includes/SpecialPageFactory.php(487): SpecialPage->run(NULL)
    #6 /var/www/mediawiki-1.21.2/includes/Wiki.php(291): SpecialPageFactory::executePath(Object(Title), Object(RequestContext))
    #7 /var/www/mediawiki-1.21.2/includes/Wiki.php(565): MediaWiki->performRequest()
    #8 /var/www/mediawiki-1.21.2/includes/Wiki.php(458): MediaWiki->main()
    #9 /var/www/mediawiki-1.21.2/index.php(59): MediaWiki->run()
    #10 {main}
    Class PEAR_Error not found; skipped loading
    OutputPage::sendCacheControl: no caching **

    PHP-PEAR установлен в системе.

    [root@mediawiki mediawiki]# yum install php-pear*
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    * base: mirror.logol.ru
    * extras: mirror.logol.ru
    * rpmforge: mirror.awanti.com
    * updates: mirror.logol.ru
    Setting up Install Process
    Package 1:php-pear-1.9.4-4.el6.noarch already installed and latest version
    Package php-pear-db-1.7.13-2.el6.rf.noarch already installed and latest version
    Nothing to do

    Последнее редактирование: 18 ноя 2013


  2. UksusoFF

    Оффлайн

    UksusoFF
    Moderator
    Команда форума

    Регистрация:
    13 май 2013
    Сообщения:
    1.718
    Симпатии:
    204
    Пол:
    Мужской
    Адрес:
    Самара

  3. А подробнее можно? Нашёл этот файл, но для чего он мне пока не понятно….
    Переустановил MediaWiki для того, чтобы пока пользователи просматривали странички…


  4. UksusoFF

    Оффлайн

    UksusoFF
    Moderator
    Команда форума

    Регистрация:
    13 май 2013
    Сообщения:
    1.718
    Симпатии:
    204
    Пол:
    Мужской
    Адрес:
    Самара

  5. В php.ini прописано:
    include_path=».:/usr/share/pear»
    собственно путь к System.php.
    Но письма всё равно не отправляются. Ошибка в браузере:
    [333ba8ad] 2013-11-17 22:48:06: Fatal exception of type MWException
    Ошибка в логах:
    #0 /var/www/mediawiki-1.21.2/includes/User.php(3605): UserMailer::send(Object(MailAddress), Object(MailAddress), ‘Afterlogic Medi…’, ‘?
    #1 /var/www/mediawiki-1.21.2/includes/User.php(3583): User->sendMail(‘Afterlogic Medi…’, ‘??????-???? (??…’)
    #2 /var/www/mediawiki-1.21.2/includes/specials/SpecialConfirmemail.php(79): User->sendConfirmationMail()
    #3 /var/www/mediawiki-1.21.2/includes/specials/SpecialConfirmemail.php(54): EmailConfirmation->showRequestForm()
    #4 /var/www/mediawiki-1.21.2/includes/SpecialPage.php(613): EmailConfirmation->execute(NULL)
    #5 /var/www/mediawiki-1.21.2/includes/SpecialPageFactory.php(487): SpecialPage->run(NULL)
    #6 /var/www/mediawiki-1.21.2/includes/Wiki.php(291): SpecialPageFactory::executePath(Object(Title), Object(RequestContext))
    #7 /var/www/mediawiki-1.21.2/includes/Wiki.php(565): MediaWiki->performRequest()
    #8 /var/www/mediawiki-1.21.2/includes/Wiki.php(458): MediaWiki->main()
    #9 /var/www/mediawiki-1.21.2/index.php(59): MediaWiki->run()
    #10 {main}
    Class PEAR_Error not found; skipped loading
    OutputPage::sendCacheControl: no caching **

    Последнее редактирование: 18 ноя 2013

Поделиться этой страницей


Форумы MediaWiki

Понравилась статья? Поделить с друзьями:
  • Pip install ssl error
  • Php fatal error class pdo not found
  • Php fatal error class imagick not found
  • Pip install r requirements txt ошибка
  • Php fatal error cannot use object of type stdclass as array in